model

A glTF mesh as a glasses-free 3D element — and a splat and a mesh sharing one scene.

First is addModel(): same options, same handle and same framing as addSplat(), so a catalogue switches a product between a captured splat and a vendor mesh by changing one word. Second is both at once, in a single three.js scene, sorting against each other — which is what makes a mixed catalogue possible instead of forcing every product into one representation. Third is the file a real catalogue actually holds: a Draco-compressed glTF.

glTF mesh

$64.00
loading…

mesh + splat, one scene

loading…

Draco-compressed glTF

loading…

This tile is the only one that needs anything extra of the PAGE. KHR_draco_mesh_compression needs a decoder, and the SDK will not fetch one from a CDN behind your back — an offline build must not depend on one — so the decoder files are served from this repo at /vendor/draco/ and the tile passes decoderPath. Copy three/examples/jsm/libs/draco/ into your own web root and do the same. Details: authoring guide → compressed glTF.

All samples · Get the DisplayXR Browser
Fox model © PixelMannen, CC0 1.0, via Khronos glTF-Sample-Assets. Duck (Draco variant) © Sony, CC0 1.0, via the same. Draco decoder files © The Draco Authors, Apache-2.0, from three.js. Splat is Spark's public demo asset.