source + landmarks
outer lip — · inner lip —
stabilised (head-local)
should sit still except the mouth · grey = held plate outline
dark green ghost = unshifted mouth when lead ≠ 0
dark green ghost = unshifted mouth when lead ≠ 0
flat render — 320×200 indexed
audio drives the clock — dropped frames, never drift
plate representation: B cycles · photo modes are registered into raster space, so tracing them lands on the mouth
plate representation: B cycles · photo modes are registered into raster space, so tracing them lands on the mouth
frames — green kept (gets its own drawing) · dim held from the last kept frame
← → step · X delete · K keep · B background ·
[ ] lead ·
click to select · double-click or shift-click to toggle ·
the mouth keeps every frame regardless
knobs
mouth lead shifts the performance tracks earlier (positive) against
the audio and the head. Averaging has no phase lag but it blurs onsets, so
an opening reads later than it is; animators also draw mouths a frame or
two ahead of the sound as standard practice. [ ].
contour avg 0 = off, 1 = ±1 frame. Removes per-frame landmark jitter. Push past 2 and it starts eating articulation.
anchor avg smooths the head transform only — never the contour.
teeth contrast gates on how far apart the cavity's dark and bright halves are — Otsu always returns some threshold, so this is what stops it inventing teeth in a dark mouth. cavity erode pulls the sampled region in from the lip edge; blob grow/erode resizes the found blob itself. tongue reject drops pixels that are red relative to their own brightness; prefer upper biases component choice toward the top of the cavity, where teeth are and the tongue is not. dwell is how many frames a presence change must persist.
suggest tolerance only affects the Suggest button: max head movement allowed before a new drawing is required.
contour avg 0 = off, 1 = ±1 frame. Removes per-frame landmark jitter. Push past 2 and it starts eating articulation.
anchor avg smooths the head transform only — never the contour.
teeth contrast gates on how far apart the cavity's dark and bright halves are — Otsu always returns some threshold, so this is what stops it inventing teeth in a dark mouth. cavity erode pulls the sampled region in from the lip edge; blob grow/erode resizes the found blob itself. tongue reject drops pixels that are red relative to their own brightness; prefer upper biases component choice toward the top of the cavity, where teeth are and the tongue is not. dwell is how many frames a presence change must persist.
suggest tolerance only affects the Suggest button: max head movement allowed before a new drawing is required.
teeth measurement
green = kept pixels · amber = extracted contour
palette
Flat indexed fills, no antialiasing — the rasteriser writes palette
indices, the way
csd_render_poly does.