arthur/js
Your Name dc0a3f34e6 Make the mouth lead legible and assertable
"It feels like it does nothing" is indistinguishable from "it does nothing",
and at 24fps a lead of 1 is 42ms - small enough to reasonably doubt. So the
shift is now provable and visible rather than taken on trust:

- shiftIndex is a pure exported function with assertions covering identity,
  both directions, and clamping at each end
- the frame label always shows the mouth frame, not only when shifted, so the
  number can be watched diverging from f; non-zero leads also report in ms
- the slider readout carries an explicit + sign
- the stabilised pane draws the unshifted contour as a dark-green ghost when a
  lead is set, so the offset is something you can see

Also: leadIndex called opts() on every invocation - ~14 DOM reads, once per
strip thumbnail, so ~1000 per redraw at 74 frames. It reads a cached scalar now.

The "different pose" assertion checks the whole track rather than one pair:
synthetic poses hold for nine-frame beats, so a single pair can legitimately be
identical while the shift works correctly.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-24 15:38:02 -04:00
..
app.js Make the mouth lead legible and assertable 2026-09-24 15:38:02 -04:00
interior.js Fix teeth vertex slider driving the lip vertex count 2026-09-24 15:36:04 -04:00
landmarks.js roto: video -> take file builder with interactive tuning 2026-09-24 14:38:07 -04:00
mathutil.js Frame removal for plates; mouth keeps every frame 2026-09-24 14:51:15 -04:00
pipeline.js Make the mouth lead legible and assertable 2026-09-24 15:38:02 -04:00
raster.js roto: video -> take file builder with interactive tuning 2026-09-24 14:38:07 -04:00
selftest.js Make the mouth lead legible and assertable 2026-09-24 15:38:02 -04:00
synth.js roto: video -> take file builder with interactive tuning 2026-09-24 14:38:07 -04:00
take.js Audio-clocked playback for judging sync 2026-09-24 14:53:09 -04:00
underlay.js Fix horizontal stretch from MediaPipe's anisotropic normalised space 2026-09-24 15:03:12 -04:00