3D models
Each tile is its own
Lightbox.Root with a single-item gallery — Three.js canvases in the trigger and Lightbox.Media. onBeforeOpen waits for the prepared lightbox canvas to paint a synced frame before the morph (spin stays live, like close). Rotate only (no zoom); orbit stays in sync with the grid tile. pullToClose={false} so vertical drag stays with orbit.See also: State & lifecycle · onBeforeOpen
Object studio
Khronos sample assets
Open any model. Orbit stays in sync with the grid tile.