feat(viewer): re-light + re-control baked GLBs from the scene graph

Add a GLB interactive layer (`GlbInteractive`) that re-creates the item
interactivity the parametric viewer has — point lights and the controls
overlay — on top of a baked artifact. Effects + controls come from the
DB scene graph (joined to baked nodes by `pascalId`, no sidecar); world
transforms come from the baked Object3Ds. Lights are portaled into their
item node so they ride level stacking, and intensity tracks the shared
`useInteractive` store so overlay dimming works. Baked scenes load "lit"
(toggles default on) for a showcase viewer feel.

Extract `ControlWidget` into its own module so the parametric
`InteractiveSystem` and the GLB overlay render identical controls.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Wassim SAMAD
2026-06-24 17:47:07 -04:00
co-authored by Claude Opus 4.8
parent 0e55d86416
commit d80ffd67d5
5 changed files with 373 additions and 85 deletions
+5
View File
@@ -18,6 +18,11 @@ export {
default as BVHEcctrl,
type MovementInput,
} from './components/viewer/bvh-ecctrl'
export {
buildGlbInteractiveItems,
GlbInteractive,
type GlbInteractiveItem,
} from './components/viewer/glb-interactive'
export {
type GlbHover,
type GlbIdentity,