Skip to content

feat(scaffold): production-value pass on the WorldAxes math-frame indicator (stub) #257

Description

@bradleypmartin

Surfaced from #225 PR1 (#250 / #254) headset smoke (Brad, 2026-05-22). Stub-only — direction TBD; capturing so the open question stays tracked rather than dropping it.

What headset smoke surfaced

"The world-axis X-Y-Z axis system indicator is also rather stale at this point, and needs some kind of tweaking and raise to its production value as well; not sure exactly what that looks like but we can stub out an issue for it anyway." — Brad

The current WorldAxes primitive renders three orthogonal arrows (AXIS_LENGTH = 0.15 m) at slot-origin with billboarded letter labels at each arrow tip. The construction is functional but reads as first-pass next to the staged-exhibit vocabulary that's landing under #221 — solo arrows in mid-air, basic cone tips, single-color shafts.

Direction (open)

Not pre-committing to a shape. Whatever lands should:

Open questions to surface at plan-doc / roundtable time:

  • Does this become an OBJECT rather than just three arrows (e.g., a small orienting cube with axis arrows emerging)?
  • How does it visually anchor to the plinth — embedded into the working surface, hovering above it, or attached differently?
  • Should the letter labels change rendering model along with feat(staging): rework section-tab + canonical-forms anchoring + label rendering on the plinth #255 (yaw-billboarded text on a tilted surface is the cross-cutting concern)?
  • Does the indicator integrate the existing axis-tint palette (vermillion / bluish-green / sky-blue) or extend it?

Code anchors

  • Primitive: src/scaffold/ui/WorldAxes.ts (AXIS_LENGTH = 0.15, per-axis arrow + letter-Text label, faceCamera on letter children only).
  • Plinth slot: src/exhibits/quadrics/index.tsPLINTH_AXIS_INDICATOR_X = 0.42, PLINTH_AXIS_INDICATOR_Y = 0.275, orientation: 'world'.
  • Per-scene consumers: all four cluster scenes (quadrics / tangent-planes / gradient-levels / saddle-extrema).

Refs

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions