Surfaced from #225 PR3 (#269 / #252) headset-smoke prep (Brad, 2026-05-23). Umbrella for the layout-finalization work the post-#260 / post-#269 plinth now needs — multiple quadrics-specific UI elements still don't have a satisfying home on the plinth, and the cluster's most-complex exhibit is also the one that defines the template for the rest.
The meta-insight
Quadrics has the most interactive elements of any cluster exhibit by a clear margin — four coefficient sliders, a 4-element vertical rack (canonical-forms heading + 3 SectionTabs), an equation readout, a WorldAxes indicator, an 8-button canonical-forms preset grid (when that section is active), and cross-sections toggles (when that section is active). Tangent-planes / gradient-levels / saddle-extrema each have a strict subset of those affordance types.
"if we figure out exactly how we want all this stuff laid out for v1.0, it SHOULD be easy to fit the other exhibits' interactive elements into the same-ish paradigm." — Brad
So solving the quadrics plinth holistically gives us a layout template the other three exhibits inherit cheaply (each is a strictly smaller layout problem). The other direction — solving each exhibit independently — risks divergent layout vocabularies across the cluster.
What's already homed on the plinth (post-#260, post-#269)
What's NOT yet homed (the open observations)
(A) Canonical-forms 8-preset grid floats in mid-air when enabled
When the user taps the "Canonical forms" section in the vertical rack, 8 preset buttons appear (ellipsoid, hyperboloid 1-sheet, hyperboloid 2-sheets, etc.). Per the #255 plan §3.3 mid-air carve-out, these sit at slot-Y 0.83/0.94 — above the plinth's back edge in mid-air, not on the working surface. Reads as a step backward from the post-plinth "knobs and dials sit on the surface" semantic the rest of the cluster's interactive UI has converged on.
Layout questions to resolve:
- Does the preset grid relocate ONTO the working surface (perhaps to the right of the slider rack, replacing whatever currently sits in that space, or below the rack)?
- Does it stay above the plinth but on a clear "preset shelf" that reads as deliberately separate ("here's the menu, distinct from the controls")?
- Does the 8-button arrangement stay as a single dense grid, or split into two rows of 4 / four rows of 2 / etc.?
- Per-section visibility: presets are only visible when the canonical-forms section is active — does the slot they occupy go BACK to empty when another section is active, or get repurposed for that section's affordances?
(B) Cross-sections toggles smoosh into the vertical rack's realm when enabled
When the user taps the "Cross sections" section, additional toggles appear (planar cross-section toggles — XY / YZ / XZ planes, the live cross-sections cluster). Currently these end up crowded into the same left-edge area where the vertical rack lives, competing visually with the SectionTab + canonical-forms stack.
Layout questions to resolve:
- Where do per-section conditional affordances live in general? The vertical rack's left-edge area is the section's BIO (the navigation), not its content area — content needs its own home.
- Is the right answer a dedicated "section content area" on the plinth (e.g., a right-edge column at slot-X +0.32 that swaps content per active section), or per-section dispersed across the surface?
- How does this generalize to the other three cluster exhibits? Tangent-planes / gradient-levels / saddle-extrema don't have a sections model today, but the layout choice here ("dedicated section-content area" vs "section-dispersed") informs whether they ever could.
Adjacent / related issues — what's NOT in scope for this umbrella
Template payoff for the other cluster exhibits
Once this umbrella resolves quadrics's full UI inventory on the plinth, the three sibling exhibits inherit cheaply:
- Tangent-planes — 2 sliders (θ, φ) + 1 readout. Strict subset of quadrics' inventory.
- Gradient-levels — 3 sliders (k + point) + 1 readout. Strict subset.
- Saddle-extrema — 2 sliders (CP-snap) + 5 presets + 1 readout. Closest in shape to quadrics (it has a preset row), so its preset-placement decision is directly informed by quadrics's (A).
So whatever pattern (A) lands on becomes the canonical "preset row placement" answer for saddle-extrema's preset row at slot-Y 0.55 (currently flagged in #255 §6 as a smoke-watch item for proximity to the back edge).
Sequencing
Likely a multi-PR plan-doc once the layout direction is locked, mirroring #225 / #255's sub-epic shape:
- Plan doc (
_private/plans/2XX-quadrics-plinth-layout-final.md) — run /roundtable-plan-review per the foundational-work memory.
- Inventory pass — concrete code-anchored list of every quadrics UI element + its current slot or floating position.
- Layout proposal — one canonical layout that homes every element, with explicit per-section visibility rules for the canonical-forms preset grid and cross-sections toggles.
- Implementation PR(s) — likely 2 PRs: (A) preset grid relocation, (B) section-content area + cross-sections toggle home.
- Template propagation — apply the same layout vocabulary to the three sibling exhibits in a follow-up.
Code anchors
- Quadrics index + slot manifest:
src/exhibits/quadrics/index.ts (PLINTH_* slot constants at file top).
- Preset grid construction:
src/exhibits/quadrics/index.ts (preset buttons array around the canonical-forms section).
- Section content visibility: quadrics SectionTab onChange handlers in
index.ts.
- Plinth slot model:
src/scaffold/staging/Plinth.ts (PlinthSlot interface; createPlinth reparents).
- Sister scene preset rows (for the template implication):
src/exhibits/saddle-extrema/index.ts preset row at slot-Y 0.55.
Refs
🤖 Generated with Claude Code
Surfaced from #225 PR3 (#269 / #252) headset-smoke prep (Brad, 2026-05-23). Umbrella for the layout-finalization work the post-#260 / post-#269 plinth now needs — multiple quadrics-specific UI elements still don't have a satisfying home on the plinth, and the cluster's most-complex exhibit is also the one that defines the template for the rest.
The meta-insight
Quadrics has the most interactive elements of any cluster exhibit by a clear margin — four coefficient sliders, a 4-element vertical rack (canonical-forms heading + 3 SectionTabs), an equation readout, a
WorldAxesindicator, an 8-button canonical-forms preset grid (when that section is active), and cross-sections toggles (when that section is active). Tangent-planes / gradient-levels / saddle-extrema each have a strict subset of those affordance types.So solving the quadrics plinth holistically gives us a layout template the other three exhibits inherit cheaply (each is a strictly smaller layout problem). The other direction — solving each exhibit independently — risks divergent layout vocabularies across the cluster.
What's already homed on the plinth (post-#260, post-#269)
What's NOT yet homed (the open observations)
(A) Canonical-forms 8-preset grid floats in mid-air when enabled
When the user taps the "Canonical forms" section in the vertical rack, 8 preset buttons appear (ellipsoid, hyperboloid 1-sheet, hyperboloid 2-sheets, etc.). Per the #255 plan §3.3 mid-air carve-out, these sit at slot-Y 0.83/0.94 — above the plinth's back edge in mid-air, not on the working surface. Reads as a step backward from the post-plinth "knobs and dials sit on the surface" semantic the rest of the cluster's interactive UI has converged on.
Layout questions to resolve:
(B) Cross-sections toggles smoosh into the vertical rack's realm when enabled
When the user taps the "Cross sections" section, additional toggles appear (planar cross-section toggles — XY / YZ / XZ planes, the live cross-sections cluster). Currently these end up crowded into the same left-edge area where the vertical rack lives, competing visually with the SectionTab + canonical-forms stack.
Layout questions to resolve:
Adjacent / related issues — what's NOT in scope for this umbrella
SceneTabcluster nav) still floats in mid-air above the plinth — that's a shell-owned cluster-wide concern, separately tracked. NOT this issue.Template payoff for the other cluster exhibits
Once this umbrella resolves quadrics's full UI inventory on the plinth, the three sibling exhibits inherit cheaply:
So whatever pattern (A) lands on becomes the canonical "preset row placement" answer for saddle-extrema's preset row at slot-Y 0.55 (currently flagged in #255 §6 as a smoke-watch item for proximity to the back edge).
Sequencing
Likely a multi-PR plan-doc once the layout direction is locked, mirroring #225 / #255's sub-epic shape:
_private/plans/2XX-quadrics-plinth-layout-final.md) — run/roundtable-plan-reviewper the foundational-work memory.Code anchors
src/exhibits/quadrics/index.ts(PLINTH_* slot constants at file top).src/exhibits/quadrics/index.ts(preset buttons array around the canonical-forms section).index.ts.src/scaffold/staging/Plinth.ts(PlinthSlot interface;createPlinthreparents).src/exhibits/saddle-extrema/index.tspreset row at slot-Y 0.55.Refs
_private/plans/225-control-plinth.md§3.5 (mid-air carve-out documented here)._private/plans/v1.0.md(layout-template implication for the other three exhibits is the v1.0 cluster-coherence story).🤖 Generated with Claude Code