feat(scaffold): extrude readout back-plate to a depth slab (#270) - #285
Merged
Conversation
Swap PanelReadout's PlaneGeometry back-plate for a thin BoxGeometry extruded behind the front face by a new READOUT_PANEL_DEPTH token (8mm first-pass; bracket [4mm, 16mm] in the token doc). Subclasses keep their existing localZ contract — semantically now "front-face z" rather than "plane z" — so text-vs-panel ordering is unchanged. Why: smoke verdict on #252 / PR #269 was "moved in the right direction, but the panel still suffers from being 2D and yawing non-presence-like with the viewer." Per [[feedback_static_orientation_ for_embossed_glyph]], yaw-billboarding a depthless surface amplifies the flatness — without a depth cue the motion reads as a sliding decal, not a solid object turning. Adding real Z-depth means yaw now exposes the slab's side faces, restoring the "solid screen turning" read while preserving readability (front face still faces the user). One dial per round per [[feedback_binary_search_visual_constants]]; bezel / rim-glow / material upgrades from #270 stay deferred for later rounds if depth alone doesn't get there.
|
Preview deploy ready — commit https://geometer-pr-285.1bradley-martin1.workers.dev Open this URL in the Quest browser to smoke-test in headset. |
Round 1 smoke verdict on this PR: "getting there but the depth cue isn't strong enough yet." Binary-search step up within the documented bracket [4mm, 16mm]; 12mm is the upper-midpoint. Next-step rules captured in the token doc comment per the per-round bisection pattern.
Round 2 smoke verdict: "right track but still not strong enough yet." Step up within the narrowed bracket [12mm, 16mm]; 14mm is the next midpoint. Next-step rules updated in the token doc — 16mm is the hard ceiling (plinth-top clipping risk at extreme yaw), so if 14mm is still subtle that's the last step before re-evaluating whether depth alone is the right vocabulary or whether bezel / rim-glow from #270's candidate list needs to compose with it.
This was referenced Jun 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #270
Summary
Swap
PanelReadout'sPlaneGeometryback-plate for a thinBoxGeometryextruded behind the front face by a newREADOUT_PANEL_DEPTHtoken (8mm first-pass; bracket[4mm, 16mm]in the token doc).Smoke verdict on #252 / PR #269 was "moved in the right direction, but the panel still suffers from being 2D and yawing non-presence-like with the viewer." Without a depth cue, the yaw-billboard motion reads as a sliding decal, not a solid object turning. Adding real Z-depth means yaw now exposes the slab's side faces while preserving readability (front face still faces the user). One dial per round — bezel / rim-glow / material upgrades from #270 stay deferred for later rounds if depth alone doesn't get there.
Subclasses keep their existing
localZcontract — semantically now "front-face z" rather than "plane z" — so text-vs-panel ordering is unchanged. No subclass touch needed.Test plan
npm test— 604/604 (PanelReadout suite updated for new geometry type + center-z math)npx tsc --noEmit— cleannpm run lint— cleanREADOUT_PANEL_DEPTHdown within the[4mm, 16mm]bracket; if the depth cue is too subtle, dial up.If smoke says depth alone is sufficient → close #270 once cluster polish lands. If smoke says depth helps but the panel still reads as a generic dark patch rather than an LCD-style display → spin a follow-up for the next #270 candidate (bezel or
LOCKED_113rim glow).