arthur/js
Your Name 9a11eeabc1 Teeth as an extracted blob contour, not a clipped band
The band filled the mouth because a band is the wrong reduction: the bright
region is a blob, and reading it as "everything above a line" throws the shape
away.

Extracting a contour reintroduces the vertex-correspondence problem that made
me avoid it, but for a blob there is a way out. Radial sampling from the
centroid along N fixed directions makes vertex k always mean "the extent in
direction k": correspondence holds by construction, the count is fixed, and
temporal smoothing cannot reorder anything. It also yields a star-shaped
reduction, which suits flat colour.

Tongue rejection, which the band had no way to express:
- pixels red relative to their own brightness are dropped (teeth are neutral)
- component choice is biased toward the top of the cavity, since area alone
  picks the tongue when the mouth is wide
- separate inner and outer controls: cavity erode pulls the sampled region off
  the lip edge, blob grow/erode resizes the found blob

Also: a knob wired in app.js but missing from index.html threw during wiring
and left a blank page with nothing useful in the console - which is exactly
what happened to teethDwell in the previous commit. el() now names the missing
id, and window.onerror surfaces it in the status line.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-24 15:24:52 -04:00
..
app.js Teeth as an extracted blob contour, not a clipped band 2026-09-24 15:24:52 -04:00
interior.js Teeth as an extracted blob contour, not a clipped band 2026-09-24 15:24:52 -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 Fix horizontal stretch from MediaPipe's anisotropic normalised space 2026-09-24 15:03:12 -04:00
raster.js roto: video -> take file builder with interactive tuning 2026-09-24 14:38:07 -04:00
selftest.js Teeth as an extracted blob contour, not a clipped band 2026-09-24 15:24:52 -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