You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Surfaced from #285 (PR for #270 round 3) headset smoke (Brad, 2026-06-01). Stub-only — direction TBD; capturing while fresh.
What headset smoke surfaced
#285 extruded the readout back-plate to a depth slab (final 14mm) which got the panel reading reasonably as a solid screen turning rather than a flat decal sliding. Two things still in the way of full presence:
Yaw axis still reads as detached from the plinth. The readout group yaws around a world-vertical Y through its own center — so even with depth, it reads as a free-floating monitor that happens to be near the plinth, not as something physically mounted to the plinth. Brad (paraphrased):
Instead of rotating the screen around a strict world- or math-z axis, would it be possible to 'attach' it via a post in the plane of the 'drafting board' part of the plinth (where the controls are), and then rotate it on the axis of the post?
Direction (open)
Not pre-committing to a shape. The general idea has two coupled pieces:
Render a physical post / stem / arm rooted on the plinth's drafting-board working surface, terminating at the readout's mount point. Kills any residual "floating in front of the plinth" read (the parent feat(staging): control plinth hosting interactive UI (sub-epic) #225 §3.5 v3 escape-ladder concern, but addressed by mounting rather than by counter-rotating to surface-tilt).
Yaw the readout around the post's axis rather than around world-vertical. Since the drafting board tilts ~20° forward toward the user (PLINTH_TILT_DEFAULT = 20° * π/180), a post perpendicular to the working surface tilts ~20° forward too. Yaw on that axis means the readout's face tracks lateral viewer motion with a slight nodding-toward-them quality — closer to the natural angle a viewer holds their head when looking down at a desk-height plinth than world-vertical-yaw is.
Open questions to surface at plan-doc / roundtable time:
Post visual vocabulary. Thin metal stem? Stubby pylon? Same body color family as the plinth (PLINTH_BASE_COLOR_RGB) or a distinct accent? Should the post itself have any chrome (segmenting, base flange) that reads as "this is mounting hardware"?
Mount-point geometry on the readout. Pin at the center-back of the slab? Off-center to suggest gimbal-style articulation? Centered on the slab's bottom edge (more "monitor on a stand" reading)?
Yaw range. Free 360° (matches current behavior — readout always faces user, never reads its own back), or capped to e.g. ±90° from a forward-facing rest pose (more "physical articulation, can be pointed away from you" semiotic)? Capping breaks readability if user walks behind the plinth — probably wrong call for the cluster's audition-context posture; flag for plan-doc.
Post anchor point on the drafting surface. Per-scene tunable, or scaffold-default behind the readout's footprint?
Single-scene first or all-four together. The four readout sizes differ (READOUT_PANEL_HALF_WIDTH_* per scene); the post-mount calibration is per-scene-aware. Likely start in one scene (quadrics is the template per feat(staging): control plinth hosting interactive UI (sub-epic) #225's locked pattern) then cluster-sweep.
Parent feat(staging): control plinth hosting interactive UI (sub-epic) #225 §3.5 v3 escape ladder. This is in that family but proposes a different end-state: yaw-on-tilted-axis rather than lock-to-surface-tilt-entirely. Worth re-reading §3.5 v3 at plan-doc time to make sure the framing carries.
Plinth working surface + tilt: src/scaffold/staging/Plinth.ts — PLINTH_TILT_DEFAULT = (20 * Math.PI) / 180, 'surface' slot orientation already tilts children with the working face.
Per-scene plinth slot for the readout: src/exhibits/quadrics/index.ts (and the three sibling exhibits) — slot localXYZ + orientation: 'surface' / 'world' are the inheritance hooks the post-mount design will likely extend.
Surfaced from #285 (PR for #270 round 3) headset smoke (Brad, 2026-06-01). Stub-only — direction TBD; capturing while fresh.
What headset smoke surfaced
#285 extruded the readout back-plate to a depth slab (final 14mm) which got the panel reading reasonably as a solid screen turning rather than a flat decal sliding. Two things still in the way of full presence:
Direction (open)
Not pre-committing to a shape. The general idea has two coupled pieces:
PLINTH_TILT_DEFAULT=20° * π/180), a post perpendicular to the working surface tilts ~20° forward too. Yaw on that axis means the readout's face tracks lateral viewer motion with a slight nodding-toward-them quality — closer to the natural angle a viewer holds their head when looking down at a desk-height plinth than world-vertical-yaw is.Open questions to surface at plan-doc / roundtable time:
READOUT_PANEL_HALF_WIDTH_*per scene); the post-mount calibration is per-scene-aware. Likely start in one scene (quadrics is the template per feat(staging): control plinth hosting interactive UI (sub-epic) #225's locked pattern) then cluster-sweep.Composition with adjacent work
READOUT_*slot tunables to include post anchor + length.Code anchors
src/scaffold/ui/PanelReadout.tsfaceCamera—group.rotation.set(0, Math.atan2(dx, dz), 0)(world-vertical Y).src/scaffold/staging/Plinth.ts—PLINTH_TILT_DEFAULT = (20 * Math.PI) / 180,'surface'slot orientation already tilts children with the working face.src/exhibits/quadrics/index.ts(and the three sibling exhibits) — slotlocalXYZ+orientation: 'surface'/'world'are the inheritance hooks the post-mount design will likely extend.Refs
_private/plans/225-control-plinth.md§3.5 v3.