feat(sim+player): scale-ring navigation (endless encoder) + cosmos/abyss scales #9
Reference in New Issue
Block a user
Delete Branch "feature/scale-ring-navigation"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Scale-ring navigation (simulator) — session 0011
Implements the scales-library design §3: an endless rotary-encoder control
(relative, vs the absolute 0–4 experience knobs) that walks a closed ring of
neutral "scales of nature" clips, with placeholder AI zoom/warp transitions
between adjacent scales and a small→large wrap (the infinite-zoom payoff).
What's in it
player/ring.py(new, canonical pure logic):ScaleRing+advance_ring— one transition clip per edge, forward zooming inward / reversed outward,
modulo wrap both ways, chained steps for a multi-detent spin.
load_ring+ serializers;GET /api/ring,POST /api/ring/advance(Python owns the step/wrap/transition math; the browser onlyplays the returned transition(s) then settles on the target scale).
scale readout, multi-clip active-scale selection, transition playback.
cosmos(NASA/Hubble) +
abyss(NOAA Ocean Exploration); provenance in the manifest,bytes generated as labelled placeholders by
setup_scales_media.py.Deferred (deliberately)
carry a raw base only until the ring is liked.
Verification
pytest215 passed / 2 skipped (+22 new:test_player_ring.py,ring cases in
test_clips.py/test_simulator_api.py)./api/ring+/api/ring/advancecorrect incl. wrap; media served;a headless-Chrome CDP drive walked cosmos → forest → abyss → (wrap) → cosmos
with the active clip reloading correctly.
Spec:
docs/superpowers/specs/2026-06-07-scales-library-and-right-axis-pipeline-design.md(§3)Plan:
docs/superpowers/plans/2026-06-07-scale-ring-navigation.md