diff --git a/src/pages/XRSession.tsx b/src/pages/XRSession.tsx
index d024b46..4402bb6 100644
--- a/src/pages/XRSession.tsx
+++ b/src/pages/XRSession.tsx
@@ -569,6 +569,26 @@ const XRSession = () => {
+
+ {/* In-world HUD — visible inside passthrough where DOM overlays cannot reach */}
+ setFreeMove(!freeMove)}
+ placementMode={placementMode}
+ onTogglePlacement={() => setPlacementMode(!placementMode)}
+ snapToPlanes={snapToPlanes}
+ onToggleSnap={() => setSnapToPlanes(!snapToPlanes)}
+ allowScale={allowScale}
+ onToggleAllowScale={() => setAllowScale(!allowScale)}
+ liveCode={liveCode}
+ liveViewers={liveViewers}
+ onStartLive={() => (window as unknown as { __trackSteelStartLive?: () => void }).__trackSteelStartLive?.()}
+ onStopLive={() => (window as unknown as { __trackSteelStopLive?: () => void }).__trackSteelStopLive?.()}
+ />
+
+ {/* Opaque mirror canvas used as the WebRTC source while in AR */}
+
+
{/* DEVKIT: fake controllers visible in scene + keyboard driver */}
{devkit && simXR && }
{/* DEVKIT: orbit camera in SimXR so you can navigate around the model */}