diff --git a/packages/viewer/src/components/viewer/glb-scene.tsx b/packages/viewer/src/components/viewer/glb-scene.tsx index e2e604dca..4d19c1c19 100644 --- a/packages/viewer/src/components/viewer/glb-scene.tsx +++ b/packages/viewer/src/components/viewer/glb-scene.tsx @@ -599,7 +599,9 @@ export function GlbScene({ const targetY = baseY + (exploded ? index * EXPLODED_GAP : 0) // Snap (not lerp) in walkthrough so the first-person collider, built from // these world positions, matches the stacked building immediately. - node.position.y = walkthroughMode ? targetY : lerp(node.position.y, targetY, delta * 12) + node.position.y = walkthroughMode + ? targetY + : lerp(node.position.y, targetY, Math.min(1, delta * 12)) // Solo: hidden levels above the soloed one keep casting shadows // (shadow-caster-only); below-levels can't block the sun, so plain-hide. const hidden =