3D Mesh Demo — renders the Khronos glTF DamagedHelmet sample model
Demonstrates:
blinc_canvas_kit::SceneKit3D— orbit camera + light rig wrapped around acanvaselement, with drag/scroll input wired for free.DrawContext::draw_mesh_data— the direct-render mesh path. The canvas closure just callsctx.draw_mesh_data(&mesh, transform); everything behind that (camera capture, pending-mesh queue, GpuPaintContext → GpuRenderer dispatch, PBR shading) is plumbing.- Inline glTF loading — no external
gltfcrate dep. The sample model has a fixed layout (single mesh, single primitive, packed f32 attributes at known bufferView offsets, u16 indices), so parsing is a handful of offset reads plus ablinc_image::ImageDatacall for the albedo texture. - Non-blocking asset loading. On desktop the mesh + HDR decode is
cheap and runs synchronously; on wasm the
WebAssetLoaderpreload is background-spawned by the wrapper, sobuild_uireturns before any asset is cached. Aspawn_localpolling loop waits for the preload, then populates a shared slot that the Stateful viewport wrapper swaps the loading overlay out for.
Tip: Some demos are best viewed in a full browser window. Click “Open in a new tab” below for the full experience.