Commit Graph

6 Commits

Author SHA1 Message Date
Michael Pilosov
dd01638110 compare: replace stem-link filename text with a new-tab arrow glyph 2026-04-22 14:33:18 -06:00
Michael Pilosov
8bc8b801dc compare: move control bar above the panels 2026-04-22 14:32:32 -06:00
Michael Pilosov
a976ba893a compare: slow base playback 4x (1x = 1600ms/frame, was 400ms) 2026-04-22 14:31:20 -06:00
Michael Pilosov
d0b026734a compare: interpolate between frames for smooth point-trajectory motion
Default is smooth (lerp each point between adjacent frames); a motion:step
toggle preserves the snap-to-frame behaviour. Points missing in either
adjacent frame are hidden during the transition to avoid pop-in.
2026-04-22 14:29:24 -06:00
Michael Pilosov
fc6aad5516 compare: side-by-side three.js animation with linked scrub, hover, and theme
- /compare page renders two ortho-camera panels fed by /api/runs/{stem}/frames.json
- shared controls: play/pause, scrubber, speed (0.5-4x), axes sync (independent/locked)
- linked hover: picks nearest point in one panel, highlights matching point_id in other
- add/remove-jitter nulls handled via per-frame packed positions + setDrawRange
- independent error states per panel; theme-aware colors via themechange event
2026-04-22 14:26:45 -06:00
Michael Pilosov
e680867f8b compare: selection UX on runs list + /compare placeholder page
- per-run checkbox when embedding HTML exists; cap at 2 selected
- sticky 'compare selected' button opens /compare?a=&b= in new tab
- selection state persists across the 3s htmx poll via a Set keyed by stem
- /compare stub validates stems, renders scaffolding (three.js UI next)
2026-04-22 14:19:26 -06:00