Sub-issue of #225 — fourth and final PR in the E1.4 sub-epic implementation chain under v1.0 staging epic #221. Follows PR3 (panel-backed readout visual).
Scope
Smoke-driven calibration sweep of the plinth's per-scene anchorWorldXYZ, workingSurfaceWidth, and workingSurfaceHeight (and possibly tilt) against both pancake and VR form factors. Likely 1–2 commits adjusting first-pass constants from PR1/PR2/PR3.
Approach
-
VR smoke (Quest 3S, Cloudflare PR-preview URL): each scene at default user pose — does the plinth feel reachable + comfortable? Is the working surface at usable height for sliders/presets? Does the surface tilt feel like a drafting table or like office equipment? Per the sub-epic plan, this is also where the obelisk alternative (the §3.2 escape hatch from PR1's drafting-table) gets revisited if the drafting-table verdict is negative.
-
Pancake smoke (desktop, default OrbitControls pose): plinth + math object framed together on first paint; no manual orbit required. Mouse hit targets work for every interactive primitive. ≥1080p one-third-viewport readout legibility (screen-share proxy per the v1.0 master plan's pancake quality bar).
-
Single per-scene anchor across both modes. The sub-epic plan locks one shared anchorWorldXYZ per scene for both pancake and VR (no per-mode anchors). If smoke shows pancake-vs-VR shared positioning fails, pancake wins the calibration — pancake is the v1.0 audition surface; VR adjusts. File a follow-up only if per-mode anchors actually become necessary.
Likely smoke-tunable knobs per scene
anchorWorldXYZ X/Y/Z (plinth's floor footprint)
workingSurfaceWidth (X-extent of the tilted top)
workingSurfaceHeight (along-tilted-face extent)
- Plinth
tilt angle (default ~20°; per-scene override possible if smoke shows different feel needed)
GRAB_RADIUS_MULTIPLIER_PLINTH if VR controller comfort falsifies pancake's 1.5× value (binary-search bracket [1.25, 2.0] documented in clusterRackTokens.ts)
Acceptance
Possible follow-ups (filed only if surfaced at smoke)
- Per-mode (pancake vs VR) plinth anchors — if single-anchor compromise breaks one form factor.
GRAB_RADIUS_MULTIPLIER_PLINTH retune — if PR3's value-locked-from-PR1 needs to change after the full cluster + panels are on plinth.
- Obelisk silhouette — if the drafting-table console doesn't survive in-headset evaluation.
PR4 acceptance completes E1.4 sub-epic. Closes #225 (all five children a/b/c/d/e shipped).
References
🤖 Generated with Claude Code
Sub-issue of #225 — fourth and final PR in the E1.4 sub-epic implementation chain under v1.0 staging epic #221. Follows PR3 (panel-backed readout visual).
Scope
Smoke-driven calibration sweep of the plinth's per-scene
anchorWorldXYZ,workingSurfaceWidth, andworkingSurfaceHeight(and possiblytilt) against both pancake and VR form factors. Likely 1–2 commits adjusting first-pass constants from PR1/PR2/PR3.Approach
VR smoke (Quest 3S, Cloudflare PR-preview URL): each scene at default user pose — does the plinth feel reachable + comfortable? Is the working surface at usable height for sliders/presets? Does the surface tilt feel like a drafting table or like office equipment? Per the sub-epic plan, this is also where the obelisk alternative (the §3.2 escape hatch from PR1's drafting-table) gets revisited if the drafting-table verdict is negative.
Pancake smoke (desktop, default OrbitControls pose): plinth + math object framed together on first paint; no manual orbit required. Mouse hit targets work for every interactive primitive. ≥1080p one-third-viewport readout legibility (screen-share proxy per the v1.0 master plan's pancake quality bar).
Single per-scene anchor across both modes. The sub-epic plan locks one shared
anchorWorldXYZper scene for both pancake and VR (no per-mode anchors). If smoke shows pancake-vs-VR shared positioning fails, pancake wins the calibration — pancake is the v1.0 audition surface; VR adjusts. File a follow-up only if per-mode anchors actually become necessary.Likely smoke-tunable knobs per scene
anchorWorldXYZX/Y/Z (plinth's floor footprint)workingSurfaceWidth(X-extent of the tilted top)workingSurfaceHeight(along-tilted-face extent)tiltangle (default ~20°; per-scene override possible if smoke shows different feel needed)GRAB_RADIUS_MULTIPLIER_PLINTHif VR controller comfort falsifies pancake's 1.5× value (binary-search bracket [1.25, 2.0] documented inclusterRackTokens.ts)Acceptance
Possible follow-ups (filed only if surfaced at smoke)
GRAB_RADIUS_MULTIPLIER_PLINTHretune — if PR3's value-locked-from-PR1 needs to change after the full cluster + panels are on plinth.Closes #225
PR4 acceptance completes E1.4 sub-epic. Closes #225 (all five children a/b/c/d/e shipped).
References
🤖 Generated with Claude Code