From e497e9ac4dd807b8b9348e148ec94dc70c14b6d5 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 24 Sep 2026 18:06:04 -0400 Subject: [PATCH 1/6] Eyes: lids, blinking, line of sight Three parts per eye, stacked the way the mouth is - dark lash ring, sclera inside it, iris inside that, square pupil in the iris. A blink then costs nothing: when the lid shuts the traced ring goes flat and the lash line collapses to a lens, which is a closed eye, drawn correctly, for free. Lids are a FEATURE, rotoscoped like the mouth: head-local, a key on every frame, the same contour avg knob. The iris is a PRIMITIVE - a disc at a quantised position - and that is where the stylisation lives. Line of sight. Gaze is the iris centre relative to the midpoint of the eye's two corners, in units of corner distance. Both corners are in RIGID, so the origin and the scale are immune to the performance being measured; against the lid ring's centroid instead, every blink would drag the origin down and fake a glance at the floor on exactly the frames where the eye is most visible. Both eyes share one gaze - at this size the difference between the two measurements is noise, not vergence, and independent per-eye noise reads as wall-eyed immediately. Openness stays per-eye so a wink survives. Gaze is then quantised to a pixel grid with a dwell, which is not a stylisation imposed on the truth: real eyes move in saccades, and the smooth drift left in the measurement is tracker noise plus head-compensation error. Snapping to a grid removes the noise and recovers the saccade in one operation. The iris is placed in the frame of the already-smoothed, already-subsampled lid ring - slots 0 and 8 of a 16-slot ring are the corners, and subsampling to any even budget keeps them at 0 and n/2 - so it cannot drift relative to its own eye. Size is authored from the take mean, never remeasured per frame: a radius that breathes by a fraction of a pixel flickers a pixel on and off around the whole silhouette. iris anchor toggles steady/free/locked, because how much the eye wanders turns out to be an aesthetic choice and not only a correctness one. Blinking gets hysteresis and a dwell like the teeth, plus one knob they do not have: blink hold. A blink is one frame at 12fps and a single frame of closed eye reads as a dropped frame, so once the eye shuts it stays shut long enough to be legible. Detection accuracy is not the problem; legibility is. The pupil is a square because at three pixels a circle is a plus sign with the corners gnawed off, and it changes shape as it moves. Drawn from a rounded centre shared with the iris so it is exactly its nominal size on every frame. Iris/pupil clip by colour key against the indexed buffer, the way Animator Pro would: the lid crops the iris at extreme gaze for free, so nothing has to clamp the gaze, which would flatten the performance at the extremes that carry it. Which iris block belongs to which eye is RESOLVED from geometry, not declared. A swap looks almost right - each eye still has a disc roughly where it belongs - so it survives an eyeball and then reads as a subtly wall-eyed character forever. Voted across every frame; the test feeds a deliberately swapped track. Also: exposure. Aesthetic sparseness was set by the extraction rate, which made the timing a property of a directory of PNGs - auditioning 12 against 24 meant re-ripping and re-detecting the whole clip. It is now a render-time grid, on 1s/2s/3s/4s, so the dense track keeps everything and the audio clock is untouched. The take format already carried an exposure field; it was never driven. Everything rides the same grid, because a head cutting on the odd frames while the mouth cuts on the even ones reads as two performances laid over each other. 41 -> 91 assertions. The load-bearing new ones: the iris pairing follows a swapped track, a blink does not fake a change of gaze, a stencilled disc cannot spill past its clip, a 3px pupil is 3x3 at every sub-pixel centre, and exposure never reads a pose from the future. Co-Authored-By: Claude Opus 5 --- README.md | 110 ++++++++++++- docs/design.md | 96 ++++++++++- index.html | 51 +++++- js/app.js | 428 +++++++++++++++++++++++++++++++++++++++++++++--- js/landmarks.js | 43 +++++ js/mathutil.js | 24 +++ js/pipeline.js | 241 ++++++++++++++++++++++++++- js/raster.js | 37 ++++- js/selftest.js | 276 ++++++++++++++++++++++++++++++- js/synth.js | 53 +++++- js/take.js | 25 ++- 11 files changed, 1342 insertions(+), 42 deletions(-) diff --git a/README.md b/README.md index 9f1503f..4cb8dda 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,13 @@ playback speed — neither gives a deterministic per-frame pass. assuming, because a guessed fps desynchronises audio from picture — and sync is the one thing this view exists to show. +**Exposure** decides how often the picture gets a new drawing: rip at 24 and +render `on 2s` for 12, `on 3s` for 8. The dense track and the audio are +untouched, so it is a dropdown rather than a re-rip, and the export emits keys +only on the grid instead of the same pose twice. Everything rides the same grid +— mouth, eyes, teeth, plate — because a head cutting on the odd frames while the +mouth cuts on the even ones reads as two performances laid over each other. + **Audio is the playback clock**: `frame = floor(audio.currentTime * fps)`. A slow render loop therefore drops frames instead of drifting, and ½x / ¼x work by setting `playbackRate` with the picture following for free. @@ -62,6 +69,7 @@ is hand-drawn head plates, which this tool does not yet do. | Knob | What it does | | --- | --- | | vertices | Lip vertex budget. The reduction past what the footage supports *is* the style. | +| exposure | How often the picture changes: on 1s, 2s, 3s, 4s. Rip dense, choose timing here. | | mouth lead ±f | Shifts the performance tracks earlier against the audio and the head. `[` `]`. | | contour avg ±f | Radius in frames. 0 off, 1 = ±1. Removes per-frame landmark jitter. | | anchor avg ±f | Radius on the four similarity parameters. Smooths the *transform*. | @@ -99,6 +107,100 @@ kept pixels green, extracted contour amber. Tune against that, not the numbers. brightness and biased low rather than high. Not implemented: it is not visible in the test footage, which reads as a dark cavity with a bright upper-teeth band. +## Eyes + +Three parts per eye, stacked the way the mouth is: a dark **lash ring**, the +**sclera** inside it, and the **iris** inside that, with a square **pupil** in +the iris. The dark ring outside a pale interior is what makes a flat shape read +as an opening rather than a blob, and it is why a blink costs nothing — when the +lid shuts, the traced ring goes flat and the lash line collapses to a lens, +which is a closed eye, drawn correctly, for free. + +The **lids are a feature**, rotoscoped like the mouth: head-local, a key on every +frame, the same `contour avg` knob. They track the face, because the face is what +they are attached to. + +The **iris is a primitive** — a disc at a quantised position — and that is where +the stylisation is. + +### Line of sight + +Gaze is the iris centre relative to the **midpoint of the eye's two corners**, +in units of corner distance. Both corners are in `RIGID`, which is the point: +the origin and the scale are built only from landmarks that do not move under +performance. Measure against the lid ring's centroid instead and every blink +drags that centroid down and fakes a glance at the floor, on exactly the frames +where the eye is most conspicuous. + +**Both eyes share one gaze.** At 320×200 an iris is a handful of pixels and its +centre comes from five landmarks on an eye twenty pixels wide, so the difference +between the two measurements is noise, not vergence — and independent per-eye +noise reads as wall-eyed immediately, which is the most expensive artefact on a +face. Openness stays per-eye, so a wink survives. + +Then the gaze is **quantised to a pixel grid with a dwell**, which is not a +stylisation imposed on the truth: real eyes move in saccades, holding a fixation +and then jumping. The smooth drift left in the measurement is tracker noise plus +head-compensation error, so snapping to a grid and requiring a dwell removes the +noise and recovers the saccade in one operation. The readout reports how many +distinct cells the iris ever occupies — three or four is a character who looks at +things, forty is an unquantised iris sliding around. + +The iris is drawn at the socket read back off the **already-smoothed, already- +subsampled lid ring** — slots 0 and 8 of a 16-slot ring are the corners, and +subsampling to any even budget keeps them at output indices 0 and `n/2`. So the +iris is placed in the frame of the exact polygon it sits inside and cannot drift +relative to its own eye. Size is authored from the take's mean eye width, not +remeasured per frame: a radius that breathes by a fraction of a pixel flickers a +pixel on and off around the whole silhouette. + +The iris is **stencilled to the sclera** and the pupil to the iris — the indexed +buffer is its own clip mask, the way Animator Pro would do it. So the lid crops +the iris at extreme gaze automatically, and nothing needs to clamp the gaze, +which would flatten the performance at exactly the extremes that carry it. + +### Blinking + +Openness is the lid gap over the corner distance — normalised, so one threshold +carries across takes and faces. It gets hysteresis and a dwell like the teeth, +plus one knob the teeth do not have: **blink hold**. A blink is 100–150ms, which +is one frame at 12fps, and a single frame of closed eye reads as a dropped frame +rather than as a blink. Animators draw a blink over two or three drawings for +that reason, so once the eye shuts it stays shut for `hold` frames. + +### The pupil is a square + +At this size a pupil is three pixels across, and a circle of radius 1.5 is not a +circle — it is a plus sign with the corners gnawed off, and it changes shape as +it moves. A square that size is a deliberate mark that stays the same mark +wherever it lands. It is drawn from a rounded centre shared with the iris, so it +is exactly its nominal size on every frame instead of spilling to the next pixel +on some and not others. + +### Which iris is which + +The refined mesh appends ten iris points, five per eye, and MediaPipe's own +left/right naming is viewer-relative in some places and subject-relative in +others. Getting it backwards swaps the irises, which looks *almost* right — each +eye still has a disc roughly where it belongs — so it survives an eyeball and +then reads as a subtly wall-eyed character forever. The pairing is therefore +**resolved from the geometry**, by voting each block's distance to each eye's +corner midpoint across every frame, and the selftest feeds it a track built the +other way round to prove it actually looks. + +| Knob | What it does | +| --- | --- | +| eye vertices | Lid ring vertex budget, off a 16-slot ring. | +| lash line | How far the dark ring sits outside the lid, in pixels. | +| blink cut | Openness below which the eye is shut. Normalised by corner distance. | +| blink hold | Minimum frames a blink stays on screen. A one-frame blink is a dropout. | +| blink dwell | Frames a change must persist. Usually 0 — unlike the teeth, a real blink *is* one frame. | +| gaze gain | Exaggerates or damps the throw. Measured excursion is small; a character usually wants more. | +| gaze step | The pixel grid the iris snaps to. 0 = off, and then dwell does nothing either. | +| gaze dwell | How long a new cell must hold before it takes. Together with step, this is what makes saccades. | +| iris size | Diameter as a percentage of eye width. | +| pupil | Square pupil in whole pixels. 0 = off. | + ## The plate is reference, not art The plate layer has several representations because its job changes. Cycle with @@ -131,6 +233,10 @@ error here. **Aesthetic** sparseness is set by the extraction rate — pick 12fp you have already chosen your timing. **Labour** sparseness is a human drawing each one, and it binds only on the plate. +Aesthetic sparseness is the **exposure** control, not the extraction rate — +making it a render-time grid means auditioning 12 against 24 costs a dropdown +instead of a re-rip and a full re-detection. + So the mouth keeps **every** frame: it is traced, and therefore free. In limited animation lip sync is routinely the densest element, on 1s, while heads hold on 2s and 3s. @@ -162,7 +268,7 @@ chromium --headless --virtual-time-budget=8000 --dump-dom \ http://127.0.0.1:8777/selftest.html | grep -oE '(PASS|FAIL) [0-9/]+' ``` -Or open `selftest.html`. 41 assertions over the stages below detection, plus a +Or open `selftest.html`. 88 assertions over the stages below detection, plus a wiring cross-check: every `el('id')` in `app.js` must exist in `index.html`. A knob wired in one but not the other throws during wiring, which aborts the rest of the module and leaves a blank page — a symptom that points nowhere near its @@ -176,7 +282,7 @@ eyeball. ## Not done yet -Eyes and irises; hand-drawn head plates and per-plate mouth slots (the strip +Brows; hand-drawn head plates and per-plate mouth slots (the strip decides *which frames need one*, but you cannot yet supply the drawing); real performer→character calibration (currently identity, fitting the face oval to the canvas); the override layer; anything on the Animator Pro side. The plate is a diff --git a/docs/design.md b/docs/design.md index a614389..bc7cdbe 100644 --- a/docs/design.md +++ b/docs/design.md @@ -70,9 +70,19 @@ avoidance. ## Two kinds of sparseness -Conflating these was the original design error. **Aesthetic** sparseness is set -by the extraction rate: pick 12fps and the timing is already chosen. **Labour** -sparseness is a human drawing each one, and it binds only on the plate. +Conflating these was the original design error. **Aesthetic** sparseness is the +rate the picture changes at. **Labour** sparseness is a human drawing each one, +and it binds only on the plate. + +Aesthetic sparseness used to be set by the extraction rate — rip at 12 and the +timing is chosen. That was wrong in a small way: it makes the timing a property +of a directory of PNGs, so auditioning 12 against 24 means re-ripping the clip +and re-running detection over the whole of it, and the decision you most want to +play with is the one that costs the most to change. Rip at the camera's rate and +quantise at render time instead — an **exposure** grid, on 1s, 2s, 3s — so the +dense track keeps everything, the audio clock is untouched, and the timing is a +dropdown rather than a re-rip. The take format already carried an `exposure` +field for this; it was simply never driven. So the mouth keeps **every** frame — it is traced, and therefore free. In limited animation lip sync is routinely the densest element, on 1s, while heads hold on @@ -136,6 +146,83 @@ Two escapes, both used: temporal smoothing is well defined, and the star-shaped result suits flat colour. +## Every part is measured in the frame of the thing it is attached to + +The mouth is expressed against the head. The iris is expressed against its own +eye — specifically against the midpoint of that eye's two corners, in units of +corner distance. Both corners are rigid landmarks, so the origin and the scale +of the measurement are immune to the performance being measured. Against the lid +ring's centroid instead, every blink would drag the origin down and fake a glance +at the floor on exactly the frames where the eye is most visible. + +The rule generalises: **measure a feature in a frame built only from landmarks +that do not move with it.** It is the same argument as "rigid landmarks only" for +the anchor fit, one level down. + +There is a tempting over-application. An eye can be pinned into a fixed socket +fitted to its corners' mean over the shot, which removes the residual wobble a +2D similarity cannot — and it is wrong. That residual is real motion of the eye +relative to the head, it is still there in the footage, and removing it leaves +the drawn eyes hanging still over a registered photo whose eyes are moving. A +part must track the face in the same space the underlay is drawn in. The wobble +is a job for the bounded contour average below, not for a second anchor. + +Placement follows from the same idea. The iris is drawn in the frame of the +already-smoothed, already-subsampled lid ring, read off the ring's own corner +vertices, so it cannot drift relative to the eye it sits inside and it inherits +the contour average for free. Size, by contrast, is authored from the take's +mean, never remeasured per frame: a radius that breathes by a fraction of a pixel +flickers a pixel on and off around the whole silhouette. + +## The indexed buffer is its own stencil + +Parts that nest — iris inside sclera, pupil inside iris — clip by colour key: +paint only where the buffer already holds the parent's index. This is how +Animator Pro would do it, it costs one comparison per pixel, and it composes +transitively, so a blink takes the right bite out of the pupil without anything +computing where. + +It also removes a temptation. Without a stencil the gaze has to be clamped to +keep the iris inside the lid, and a clamp flattens the performance at exactly the +extremes that carry it. + +## Quantisation can be the truthful choice + +Gaze snapped to a pixel grid with a dwell is the "Primitive — quantised" row of +the part table, and it looks like a stylisation imposed on a continuous +measurement. It is not. Real eyes move in saccades: hold a fixation, jump, hold. +The smooth drift left in the measured signal is tracker noise plus +head-compensation error. Snapping to a grid and requiring a dwell removes the +noise and recovers the saccade in the same operation — the rare case where the +aesthetic rule and the physiology agree. + +The count of distinct cells the iris ever occupies is the number the knobs exist +to control. Three or four is a character who looks at things; forty is an +unquantised iris sliding around. + +## Some thresholds need a minimum duration, not just a dwell + +A dwell delays a change until it has persisted, which is the right guard against +chatter and is what the teeth use. A blink needs the opposite guard as well. It +lasts 100–150ms — one frame at 12fps — and a single frame of closed eye reads as +a dropped frame rather than as a blink. Animators draw a blink over two or three +drawings for that reason, so once the eye shuts it must stay shut for a minimum +number of frames. Detection accuracy is not the problem; legibility is. + +## Resolve correspondences from data when a wrong guess is survivable + +The refined mesh appends ten iris points, five per eye, and the upstream +left/right naming is viewer-relative in some documentation and subject-relative +in others. Swapping them looks *almost* right — each eye still has a disc roughly +where it belongs — so the error survives inspection and then reads as a subtly +wall-eyed character for the life of the project. + +A hardcoded table is the wrong shape for a fact like that. Voting each block's +distance to each eye's corner midpoint across every frame settles it from the +geometry, cannot be got wrong, and keeps working if the model is renumbered. The +test feeds it a track built the other way round, because a resolver checked only +against the convention it was written for is checking nothing. + ## The bounded smoothing exception *Smooth the transform, never the contour* held while keys were sparse: sampling @@ -188,6 +275,7 @@ Current modules: | Module | Role | | --- | --- | | `landmarks.js` | Index tables. Ring arrays are ordered traversals: slot position *is* vertex identity. | +| `pipeline.js` | …also eye openness, gaze, blink resolution and the iris pairing vote. | | `mathutil.js` | Similarity fit, Procrustes mean, temporal smoothing. | | `pipeline.js` | Stabilise → subsample → key-select → frame-removal. | | `interior.js` | Teeth from image content: Otsu, morphology, components, radial contour. | @@ -202,7 +290,7 @@ Current modules: - **A paint surface.** The plates have nowhere to be drawn. This is the largest gap between "tool" and "suite": a pixel paint canvas with onion skin, palette constraint, and the registered underlay behind it. -- Eyes, irises, brows as parts. +- Brows as parts, and a tongue. - Plate libraries with per-plate mouth slots. - Real performer→character calibration (currently identity). - The override layer. diff --git a/index.html b/index.html index cb59dd6..5902f86 100644 --- a/index.html +++ b/index.html @@ -63,6 +63,21 @@ + + + @@ -86,18 +101,22 @@

source + landmarks

-
outer lip — · inner lip —
+
outer lip — · inner lip — · + lids — · iris —

stabilised (head-local)

-
should sit still except the mouth · grey = held plate outline
dark green ghost = unshifted mouth when lead ≠ 0
+
should sit still except the mouth and eyes · grey = held plate outline
+ dark green ghost = unshifted mouth when lead ≠ 0 · red lid ring = blink

flat render — 320×200 indexed

audio drives the clock — dropped frames, never drift
+ exposure holds the picture on a grid: rip at 24, render on 2s for + 12. The dense track and the audio are untouched, so it is reversible
plate representation: B cycles · photo modes are registered into raster space, so tracing them lands on the mouth
@@ -132,6 +151,16 @@ + + + + + + + + + +
mouth lead shifts the performance tracks earlier (positive) against @@ -150,10 +179,28 @@ 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.
+ blink cut is lid gap over corner distance — normalised, so one + value carries across takes. blink hold is the minimum length of a + blink: a real blink is one frame at 12fps and a single frame of closed + eye reads as a dropout, so it is extended to a beat. + pupil is a square, in whole pixels, 0 to turn it off: at this size + a circle of radius 1.5 is a plus sign with the corners gnawed off and it + changes shape as it moves, where a square stays the mark you drew.
+ gaze step is the grid the iris snaps to, in raster pixels, and + gaze dwell is how long a new cell must hold — together they turn + drift into saccades. gaze gain exaggerates or damps the throw; + measured excursion is small and a character usually wants more of it.
suggest tolerance only affects the Suggest button: max head movement allowed before a new drawing is required.
+
+

gaze field

+ +
+
green = every cell the iris visits in the take · + grey = raw · amber = where it is now, quantised
+

teeth measurement

diff --git a/js/app.js b/js/app.js index 752bac5..c52fac1 100644 --- a/js/app.js +++ b/js/app.js @@ -1,10 +1,12 @@ import { FaceLandmarker, FilesetResolver } from 'https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@1.0.1/vision_bundle.mjs'; -import { LIPS_OUTER, LIPS_INNER, FACE_OVAL } from './landmarks.js'; -import { stabilize, toRasterRing, smoothContours, suggestPlateFrames, heldFrame, shiftIndex } from './pipeline.js'; +import { LIPS_OUTER, LIPS_INNER, FACE_OVAL, + EYE_R_RING, EYE_L_RING, IRIS_A, IRIS_B } from './landmarks.js'; +import { stabilize, toRasterRing, smoothContours, suggestPlateFrames, heldFrame, shiftIndex, + exposeIndex, eyeSignals, gazeOrigin, quantizeGaze, resolveBlink } from './pipeline.js'; import { IndexedRaster } from './raster.js'; import { drawRegistered, posterizeInto } from './underlay.js'; import { extractTeeth } from './interior.js'; -import { applySim } from './mathutil.js'; +import { applySim, offsetRing } from './mathutil.js'; import { writeTake } from './take.js'; import { synthDense } from './synth.js'; @@ -16,8 +18,21 @@ const PALETTE = [ { name: 'skin_dark', hex: '#7a4f3a' }, { name: 'mouth_dark', hex: '#24161a' }, { name: 'teeth', hex: '#d9cfc2' }, + // Sclera is not white, and that is authored, not measured. A true white at + // 320x200 next to a warm skin ramp reads as a hole punched in the face; the + // eye sits in a socket, in shadow, so it is a dimmer and cooler tone than the + // teeth, which catch the light. The iris is one dark tone: at this size an + // iris is about five pixels across and a pupil inside it would be one, so the + // iris IS the pupil. Resolving it further would be drawing detail the format + // cannot hold. + { name: 'eye_white', hex: '#c9c3b4' }, + // Three tones for the eye - sclera, iris, pupil - which is the "two or three + // tones per part" budget, spent where it buys the most: an eye with no tonal + // step inside it reads as a hole. + { name: 'iris', hex: '#4a5468' }, + { name: 'pupil', hex: '#171a22' }, ]; -const IDX = { bg: 0, base: 1, dark: 2, mouth: 3, teeth: 4 }; +const IDX = { bg: 0, base: 1, dark: 2, mouth: 3, teeth: 4, white: 5, iris: 6, pupil: 7 }; const state = { dense: null, images: [], stab: null, xform: null, @@ -27,8 +42,11 @@ const state = { fps: 12, audio: null, // fps comes from manifest.json, never guessed aspect: 1, // imgW/imgH; converts MediaPipe's anisotropic space lead: 0, // performance-track offset in frames + exposure: 1, // 1 = on 1s, 2 = on 2s. Picture holds; audio does not. interior: null, // per-frame teeth measurement from image content teeth: null, // resolved per-frame {show, t} after knobs + eyes: null, // resolved per-frame lid rings, shut flags, iris discs + eyeSig: null, // raw eye measurement, kept for the gaze readout }; const el = (id) => { @@ -53,6 +71,19 @@ const opts = () => ({ contourSmooth: +el('contourSmooth').value, apertureThresh: +el('apertureThresh').value / 1000, tol: +el('tol').value / 1000, + exposure: +el('exposure').value, + irisAnchor: el('irisAnchor').value, + gazeOrigin: el('gazeOrigin').value, + eyeVerts: +el('eyeVerts').value, + lashPx: +el('lashPx').value, + irisSize: +el('irisSize').value / 100, + gazeGain: +el('gazeGain').value / 100, + gazeStep: +el('gazeStep').value, // whole raster pixels + pupilPx: +el('pupilPx').value, + gazeDwell: +el('gazeDwell').value, + blinkCut: +el('blinkCut').value / 1000, + blinkHold: +el('blinkHold').value, + blinkDwell: +el('blinkDwell').value, }); function status(msg, kind = '') { @@ -167,6 +198,7 @@ function rebuild(resetKeep) { if (!state.dense) return; const o = opts(); state.lead = o.lead; + state.exposure = o.exposure; const N = state.dense.length; state.stab = stabilize(state.dense, o.smoothWin, state.aspect); @@ -193,6 +225,7 @@ function rebuild(resetKeep) { state.extractKey = extractKey(o); } state.teeth = resolveTeeth(o); + state.eyes = buildEyes(o); // Plate outline per frame, so a kept frame shows its own head shape. state.plates = state.stab.oval.map((r) => r.map(state.xform)); @@ -220,6 +253,124 @@ function faceBoxes() { }); } +// Eyes: lid rings traced per frame, blinks resolved per eye, one gaze shared. +// +// Lids are a FEATURE in the part table - rotoscoped, open vocabulary, a key on +// every frame - so they get exactly the mouth's treatment, including the same +// bounded contour average. The iris is a PRIMITIVE: a disc whose position is +// quantised, which is where the stylisation lives. +function buildEyes(o) { + const st = state.stab, N = state.dense.length; + const sig = eyeSignals(st); + state.eyeSig = sig; + + const blink = { cut: o.blinkCut, dwell: o.blinkDwell, hold: o.blinkHold }; + const shutR = resolveBlink(sig.openR, blink); + const shutL = resolveBlink(sig.openL, blink); + + // Head-local, subsampled, contour-averaged - the identical chain the mouth + // takes, with the identical knob. The eye tracks the face, because the face + // is what it is attached to; what gets removed is per-frame detector jitter, + // not the motion. + const lidR = smoothContours( + st.lidR.map((r) => toRasterRing(r, EYE_R_RING, o.eyeVerts, state.xform)), o.contourSmooth); + const lidL = smoothContours( + st.lidL.map((r) => toRasterRing(r, EYE_L_RING, o.eyeVerts, state.xform)), o.contourSmooth); + + // Where the iris hangs. Three behaviours, because this turns out to be an + // aesthetic choice and not only a correctness one. + // + // STEADY (default) reads the socket back off the DRAWN ring. Slots 0 and 8 of + // a 16-slot lid ring are the two corners, and subsampling to any even budget n + // keeps them at output indices 0 and n/2 - so the ring that gets rendered + // carries its own corners with it. The iris is then placed in the frame of the + // exact polygon it sits inside, after smoothing, after subsampling: it cannot + // drift relative to its own eye, and it inherits the contour average for free. + // + // FREE reads the raw per-frame corners instead, jitter and all. It is what the + // eyes did before any of this, and it is not simply worse - the detector noise + // reads as liveliness, the eye never sits perfectly still, and against flat + // hand-drawn plates that restlessness can be the thing that sells it. It is + // also the honest baseline to compare the other two against. + // + // LOCKED pins the socket to the take's mean, so the eye never moves in the + // head at all. Watch it against a photo underlay and the drawn eyes hang still + // over a face whose eyes are moving - that is the registration cost, and it is + // real - but once the plate is a drawing rather than a photograph, nothing is + // being registered against and it reads as a deliberately locked-off stare. + const ringSocket = (ring) => { + const a = ring[0], b = ring[ring.length / 2]; + return { cx: (a.x + b.x) / 2, cy: (a.y + b.y) / 2, w: Math.hypot(a.x - b.x, a.y - b.y) }; + }; + const rawSocket = (corners, f) => { + const a = state.xform(corners[f][0]), b = state.xform(corners[f][1]); + return { cx: (a.x + b.x) / 2, cy: (a.y + b.y) / 2, w: Math.hypot(a.x - b.x, a.y - b.y) }; + }; + const meanSocket = (rings) => { + const acc = rings.reduce((a, r) => { + const k = ringSocket(r); + return { cx: a.cx + k.cx, cy: a.cy + k.cy, w: a.w + k.w }; + }, { cx: 0, cy: 0, w: 0 }); + const n = rings.length; + return { cx: acc.cx / n, cy: acc.cy / n, w: acc.w / n }; + }; + const socketFor = (rings, corners) => { + if (o.irisAnchor === 'locked') { const k = meanSocket(rings); return () => k; } + if (o.irisAnchor === 'free') return (f) => rawSocket(corners, f); + return (f) => ringSocket(rings[f]); + }; + const skR = socketFor(lidR, st.cornersR), skL = socketFor(lidL, st.cornersL); + const socket = (ring) => ringSocket(ring); + + // Iris radius comes from the take's MEAN eye width, not the current frame's. + // Size is authored; only position is tracked. A radius recomputed per frame + // would breathe by a fraction of a pixel as the fit's depth-scale wanders, + // and at this resolution a fraction of a pixel is a pixel flicking on and off + // around the whole silhouette. + const meanW = (rings) => rings.reduce((a, r) => a + ringSocket(r).w, 0) / rings.length; + const wR = meanW(lidR), wL = meanW(lidL), w = (wR + wL) / 2; + + // Calibrate against the neutral, apply the artist's gain, and only then + // quantise - the grid should be a grid of DRAWN positions, because that is + // what a viewer reads. Gain is an authored parameter: measured gaze excursion + // is small and a character's eye usually wants more throw than a performer's, + // which is a decision for a person and not for the detector. + const origin = gazeOrigin(sig.gazeRaw, o.gazeOrigin, state.neutral); + state.gazeOriginValue = origin; + const px = sig.gazeRaw.map((g) => ({ + x: (g.x - origin.x) * o.gazeGain * w, + y: (g.y - origin.y) * o.gazeGain * w, + })); + const gaze = quantizeGaze(px, o.gazeStep, o.gazeDwell); + + const eye = (sk, lids, shut, rad, f) => { + const e = sk(f); + return { + // The lash line is the lid ring pushed outward by a fixed number of + // pixels, exactly as the mouth's outer ring sits outside its inner one. + // When the eye shuts, the traced ring goes near-degenerate and this + // collapses to a lens - which is a closed eye, drawn correctly, for free. + lash: offsetRing(lids[f], o.lashPx), + lid: lids[f], + shut: shut[f], + // Rounded to whole pixels. The rasteriser quantises everything anyway, so + // this costs nothing - but it means the iris and the square pupil share + // one integer centre, so the pupil is exactly its nominal size on every + // frame instead of spilling to the next pixel on some and not others. + iris: { x: Math.round(e.cx + gaze[f].x), y: Math.round(e.cy + gaze[f].y), r: rad }, + pupil: o.pupilPx, + }; + }; + + return { + gazePx: px, gaze, shutR, shutL, hasIris: sig.hasIris, + frames: Array.from({ length: N }, (_, f) => ({ + r: eye(skR, lidR, shutR, (wR * o.irisSize) / 2, f), + l: eye(skL, lidL, shutL, (wL * o.irisSize) / 2, f), + })), + }; +} + // Presence gets hysteresis and a minimum dwell, the same treatment plate // selection gets: a teeth block that blinks on and off for single frames is // worse than one that is simply absent. Appearing needs a clear signal, staying @@ -275,7 +426,7 @@ function resolveTeeth(o) { // stand-in until a drawing exists. function renderFrame(f, mode = plateMode()) { const r = new IndexedRaster(RW, RH); - const pf = heldFrame(keptSorted(), f); // the plate frame on screen + const pf = plateIndex(f); // the plate frame on screen if (mode === 'posterize' && state.images[pf]) { posterizeInto(r, state.images[pf], state.stab.transforms[pf], state.xform, @@ -285,6 +436,12 @@ function renderFrame(f, mode = plateMode()) { if (mode === 'oval' || mode === 'oval+photo') r.fillPoly(state.plates[pf], IDX.base); } + // Eyes run on the CLOCK, not on the mouth lead. The lead is a lip-sync + // device: it exists because a mouth shape anticipates the sound it makes. + // Nothing about a blink or a glance is tied to the audio, so shifting the + // eyes would only slide them off the head that carries them. + if (state.eyes) drawEyes(r, state.eyes.frames[f]); + const mf = leadIndex(f); // performance frame, possibly ahead r.fillPoly(state.outer[mf], IDX.dark); // mouth keeps every frame if (!state.hidden[mf]) { @@ -295,13 +452,34 @@ function renderFrame(f, mode = plateMode()) { return r; } +// Lash ring, then sclera, then iris - the same three-layer structure the mouth +// has, for the same reason: the dark ring outside the pale interior is what +// makes a flat shape read as an opening rather than a blob. +// +// The iris is stencilled to the sclera it was just drawn over, so the lid crops +// it automatically. Nothing needs to clamp the gaze to keep the iris inside the +// eye, which matters because a clamp would flatten the performance at exactly +// the extremes that carry it. +function drawEyes(r, e) { + for (const s of [e.r, e.l]) { + r.fillPoly(s.lash, IDX.dark); + if (s.shut) continue; // a shut eye IS the lash line, alone + r.fillPoly(s.lid, IDX.white); + r.fillDisc(s.iris.x, s.iris.y, s.iris.r, IDX.iris, IDX.white); + // Stencilled to the iris, which is itself stencilled to the sclera - so the + // pupil is cropped by the lid transitively, and a blink or an extreme gaze + // takes the right bite out of it without anything having to compute where. + if (s.pupil) r.fillRect(s.iris.x, s.iris.y, s.pupil, IDX.pupil, IDX.iris); + } +} + const plateMode = () => el('plateMode').value; // Photo modes composite under the indexed layer, so the flat shapes stay exactly // as they render while the reference sits behind them. function compositeRender(canvas, f, zoom) { const mode = plateMode(); - const pf = heldFrame(keptSorted(), f); + const pf = plateIndex(f); const img = state.images[pf]; const showPhoto = img && (mode === 'photo' || mode === 'photo-dim' || mode === 'oval+photo'); @@ -347,11 +525,22 @@ const keptSorted = () => [...state.keep].sort((a, b) => a - b); // Positive lead = the mouth arrives earlier. Only performance parts shift; the // head stays with the audio, because it is the mouth that should anticipate. function leadIndex(f) { - // Reads a cached scalar, not opts(): this runs once per strip thumbnail, and + // Reads cached scalars, not opts(): this runs once per strip thumbnail, and // calling opts() here meant ~14 DOM reads x 74 frames on every redraw. - return shiftIndex(f, state.lead, state.dense.length); + // + // Exposure first, then lead. The grid decides WHICH frames get a new drawing; + // the lead then shifts which pose that drawing carries, by whole frames of the + // original track. Applying them the other way round would put the changes on + // the wrong beats - the picture would update on the odd frames instead of + // holding on the twos. + return shiftIndex(exposeIndex(f, state.exposure), state.lead, state.dense.length); } +// The plate rides the same grid, so the whole picture updates together. On 2s +// means on 2s - a head that cut on the odd frames while the mouth cut on the +// even ones would read as two performances laid over each other. +const plateIndex = (f) => heldFrame(keptSorted(), exposeIndex(f, state.exposure)); + function blit(canvas, raster, zoom) { canvas.width = RW * zoom; canvas.height = RH * zoom; canvas.getContext('2d').putImageData(raster.toImageData(PALETTE.map((p) => p.hex), zoom), 0, 0); @@ -372,21 +561,42 @@ function drawReadout() { el('readout').textContent = `${state.dense.length} frames → ${kept.length} drawings · ` + `teeth on ${teethFrames}f · ` + + `${blinkRuns(state.eyes.shutR).length}/${blinkRuns(state.eyes.shutL).length} blinks R/L · ` + + `${gazeCells(state.eyes.gaze)} gaze cells · ` + + (state.exposure > 1 + ? `on ${state.exposure}s = ${(state.fps / state.exposure).toFixed(4).replace(/\.?0+$/, '')}fps · ` + : '') + (lead ? `mouth leads ${lead}f (${(lead / state.fps * 1000).toFixed(0)}ms) · ` : '') + `holds ${Math.min(...runs)}–${Math.max(...runs)} frames · ` + `neutral f${state.neutral} · residual ` + `${(state.stab.residual.reduce((a, b) => a + b, 0) / state.dense.length).toFixed(4)}`; } +// Blinks as RUNS, not as shut frames: a three-frame blink is one blink, and the +// count is only useful as "did the performer blink six times or sixty". +function blinkRuns(shut) { + const runs = []; + for (let f = 0; f < shut.length; f++) { + if (shut[f] && !shut[f - 1]) runs.push(f); + } + return runs; +} + +// How many distinct positions the iris ever occupies. This is the number the +// gaze knobs exist to control: two or three is a character who looks at things, +// forty is an unquantised iris sliding around, which is what the grid is for. +const gazeCells = (gaze) => new Set(gaze.map((g) => `${g.x},${g.y}`)).size; + function drawPanes() { const f = state.frame, kept = keptSorted(); - const pf = heldFrame(kept, f); + const pf = plateIndex(f); // The mouth frame is always shown, not only when shifted, so the number can be // watched diverging from f rather than taken on trust. const lead = state.lead; el('framelabel').textContent = `f ${f} / ${state.dense.length - 1} · ${(f / state.fps).toFixed(2)}s · ` + `plate f${pf} · mouth f${leadIndex(f)}` + + (state.exposure > 1 && f % state.exposure ? ' (held)' : '') + (lead ? ` (${lead > 0 ? '+' : ''}${lead} = ${(lead / state.fps * 1000).toFixed(0)}ms)` : '') + (state.keep.has(f) ? ' · KEPT' : ' · held'); @@ -404,12 +614,14 @@ function drawPanes() { const map = (p) => ({ x: dx + (p.x * im.naturalWidth - sx) * s, y: dy + (p.y * im.naturalHeight - sy) * s }); strokePts(g1, LIPS_OUTER.map((i) => map(state.dense[f][i])), '#4ade80'); strokePts(g1, LIPS_INNER.map((i) => map(state.dense[f][i])), '#f87171'); + drawEyeOverlay(g1, map, f); } else { g1.fillStyle = '#555'; g1.font = '13px system-ui'; g1.fillText('synthetic — no source frames', 14, 24); const sc = (p) => ({ x: p.x * c1.width, y: p.y * c1.height }); strokePts(g1, LIPS_OUTER.map((i) => sc(state.dense[f][i])), '#4ade80'); strokePts(g1, LIPS_INNER.map((i) => sc(state.dense[f][i])), '#f87171'); + drawEyeOverlay(g1, sc, f); } const c2 = el('cv-stab'), g2 = c2.getContext('2d'); @@ -426,9 +638,18 @@ function drawPanes() { if (mf !== f) strokePts(g2, z(state.outer[f]), '#2f6b46'); strokePts(g2, z(state.outer[mf]), '#4ade80'); if (!state.hidden[mf]) strokePts(g2, z(state.inner[mf]), '#f87171'); + for (const e of [state.eyes.frames[f].r, state.eyes.frames[f].l]) { + strokePts(g2, z(e.lid), e.shut ? '#f87171' : '#60a5fa'); + if (e.shut) continue; + g2.strokeStyle = '#fbbf24'; + g2.beginPath(); + g2.arc(e.iris.x * ZOOM, e.iris.y * ZOOM, e.iris.r * ZOOM, 0, Math.PI * 2); + g2.stroke(); + } compositeRender(el('cv-render'), f, ZOOM); drawInteriorDebug(f); + drawGazeDebug(f); } // What the teeth measurement actually saw: sampled region, pixels above @@ -458,6 +679,78 @@ function drawInteriorDebug(fRaw) { `area ${m.area}px · ${te.show ? 'SHOWN' : 'hidden'}`; } +// Lid rings and the iris, on the raw frame. Landmark overlays are how you tell +// a tracking failure from a knob set wrong, and the eyes need it more than the +// mouth does: an iris that has latched onto an eyebrow looks, in the flat +// render alone, exactly like a gaze gain that is too high. +function drawEyeOverlay(g, map, f) { + const lm = state.dense[f]; + for (const ring of [EYE_R_RING, EYE_L_RING]) { + strokePts(g, ring.map((i) => map(lm[i])), '#60a5fa'); + } + if (!state.eyes.hasIris) return; + for (const iris of [IRIS_A, IRIS_B]) { + strokePts(g, iris.slice(1).map((i) => map(lm[i])), '#fbbf24'); + } +} + +// The gaze field: every position the iris takes over the whole take, plus where +// it is now. Tune against this, not against the numbers - "4 cells" tells you +// the quantisation is working, but only the picture tells you whether the four +// are the four looks the performance actually has. +function drawGazeDebug(f) { + const cv = el('cv-gaze'), S = 150; + cv.width = S; cv.height = S; + const g = cv.getContext('2d'); + g.fillStyle = '#0d0f16'; g.fillRect(0, 0, S, S); + + const ex = state.eyes; + // Scale so the widest excursion in the take fills the box, with a floor so a + // nearly-still gaze does not get magnified into a light show. + let m = 2; + for (const p of ex.gazePx) m = Math.max(m, Math.abs(p.x), Math.abs(p.y)); + const k = (S / 2 - 8) / m; + const X = (v) => S / 2 + v * k, Y = (v) => S / 2 + v * k; + + const o = opts(); + if (o.gazeStep > 0) { + g.strokeStyle = '#1b2030'; g.lineWidth = 1; + for (let i = -20; i <= 20; i++) { + const v = i * o.gazeStep; + if (Math.abs(v) > m) continue; + g.beginPath(); g.moveTo(X(v), 0); g.lineTo(X(v), S); g.stroke(); + g.beginPath(); g.moveTo(0, Y(v)); g.lineTo(S, Y(v)); g.stroke(); + } + } + g.strokeStyle = '#2a2f3e'; + g.beginPath(); g.moveTo(S / 2, 0); g.lineTo(S / 2, S); + g.moveTo(0, S / 2); g.lineTo(S, S / 2); g.stroke(); + + g.fillStyle = '#2f6b46'; + for (const p of ex.gaze) g.fillRect(X(p.x) - 1.5, Y(p.y) - 1.5, 3, 3); + + const raw = ex.gazePx[f], q = ex.gaze[f]; + g.fillStyle = '#8891a5'; + g.fillRect(X(raw.x) - 1, Y(raw.y) - 1, 2, 2); + g.fillStyle = '#fbbf24'; + g.beginPath(); g.arc(X(q.x), Y(q.y), 4, 0, Math.PI * 2); g.fill(); + + const sig = state.eyeSig, fr = state.eyes.frames[f]; + const og = state.gazeOriginValue; + // Per-eye raw gaze is the diagnostic for a wrong-looking eyeline. If the two + // agree and both point the wrong way, the ORIGIN is wrong. If they disagree in + // a sustained way, it is out-of-plane head rotation biasing the projection, + // which no 2D measurement can undo. + const sgn = (v) => `${v >= 0 ? '+' : ''}${v.toFixed(3)}`; + el('eyeinfo').textContent = + `open R ${sig.openR[f].toFixed(3)} L ${sig.openL[f].toFixed(3)} / cut ${o.blinkCut.toFixed(3)}\n` + + `${fr.r.shut ? 'R SHUT ' : ''}${fr.l.shut ? 'L SHUT' : ''}${!fr.r.shut && !fr.l.shut ? 'both open' : ''}\n` + + `gaze ${q.x >= 0 ? '+' : ''}${q.x.toFixed(1)}, ${q.y >= 0 ? '+' : ''}${q.y.toFixed(1)} px\n` + + `raw R ${sgn(sig.gazeR[f].x)} L ${sgn(sig.gazeL[f].x)} (x, eye widths)\n` + + `origin ${o.gazeOrigin} ${sgn(og.x)}, ${sgn(og.y)}` + + (ex.hasIris ? '' : ' — no iris landmarks'); +} + function strokePts(g, pts, color, lw = 1) { g.strokeStyle = color; g.lineWidth = lw; g.beginPath(); @@ -538,12 +831,57 @@ function drawWorksheet() { /* ---------- export ---------- */ +// Six parts, three per eye, mirroring the mouth's lash/interior/content stack. +// `clip` is what tells the renderer the iris is stencilled by the sclera rather +// than merely drawn after it - without it an extreme gaze would put the iris on +// the cheek. +function eyeParts(grid) { + const out = []; + // Eyes ride the exposure grid but NOT the mouth lead: the lead is a lip-sync + // device and nothing about a blink is tied to the audio. + const src = (f) => exposeIndex(f, state.exposure); + [['r', 20], ['l', 23]].forEach(([side, z]) => { + const at = (f) => state.eyes.frames[src(f)][side]; + out.push( + { name: `eye_${side}`, kind: 'poly', z, color: 'skin_dark', interp: 'hold', + keys: grid.map((f) => ({ f, src: src(f), pts: at(f).lash })) }, + { name: `eye_${side}_in`, kind: 'poly', z: z + 1, color: 'eye_white', interp: 'hold', + parent: `eye_${side}`, + keys: grid.map((f) => + (at(f).shut ? { f, hidden: true } : { f, src: src(f), pts: at(f).lid })) }, + { name: `iris_${side}`, kind: 'disc', z: z + 2, color: 'iris', interp: 'hold', + parent: `eye_${side}_in`, clip: `eye_${side}_in`, + keys: grid.map((f) => { + const e = at(f); + return e.shut ? { f, hidden: true } + : { f, src: src(f), c: { x: e.iris.x, y: e.iris.y }, r: e.iris.r }; + }) }, + ); + if (!state.eyes.frames[0].r.pupil) return; + out.push( + { name: `pupil_${side}`, kind: 'rect', z: z + 3, color: 'pupil', interp: 'hold', + parent: `iris_${side}`, clip: `iris_${side}`, + keys: grid.map((f) => { + const e = at(f); + return e.shut ? { f, hidden: true } + : { f, src: src(f), c: { x: e.iris.x, y: e.iris.y }, size: e.pupil }; + }) }, + ); + }); + return out; +} + function exportTake() { const kept = keptSorted(); const N = state.dense.length; + // Output frames that actually carry a key. Everything between them is a hold, + // which the take format already expresses, so on 2s emits half the keys rather + // than emitting each pose twice. + const grid = []; + for (let f = 0; f < N; f += state.exposure) grid.push(f); const take = { name: el('takename').value || 'line_01', - frames: N, width: RW, height: RH, exposure: 1, fps: state.fps, + frames: N, width: RW, height: RH, exposure: state.exposure, fps: state.fps, palette: PALETTE, slot: { x: RW / 2, y: RH / 2 }, parts: [ @@ -554,14 +892,19 @@ function exportTake() { // key f carries the pose from source frame f+lead - so the renderer never // needs to know about it. { name: 'mouth', kind: 'poly', z: 30, color: 'skin_dark', interp: 'hold', - keys: state.outer.map((_, f) => ({ f, src: leadIndex(f), pts: state.outer[leadIndex(f)] })) }, + keys: grid.map((f) => ({ f, src: leadIndex(f), pts: state.outer[leadIndex(f)] })) }, { name: 'mouth_in', kind: 'poly', z: 31, color: 'mouth_dark', interp: 'hold', parent: 'mouth', - keys: state.inner.map((_, f) => { + keys: grid.map((f) => { const m = leadIndex(f); return state.hidden[m] ? { f, hidden: true } : { f, src: m, pts: state.inner[m] }; }) }, + // Eyes. The lids are traced, so like the mouth they cost nothing and keep + // every frame. The iris is a primitive: its quantised position means the + // key stream is dense but the VALUES change only on saccades, so a + // hold-interpolating renderer cuts between fixations by itself. + ...eyeParts(grid), { name: 'teeth', kind: 'poly', z: 32, color: 'teeth', interp: 'hold', parent: 'mouth_in', - keys: state.teeth.map((_, f) => { + keys: grid.map((f) => { const m = leadIndex(f), te = state.teeth[m]; return te.show && te.pts ? { f, src: m, pts: te.pts } : { f, hidden: true }; }) }, @@ -577,7 +920,9 @@ function exportTake() { a.href = URL.createObjectURL(new Blob([text], { type: 'text/plain' })); a.download = `${take.name}.take`; a.click(); - status(`exported — ${kept.length} plate drawings, ${N} mouth frames`, 'ok'); + status(`exported — ${kept.length} plate drawings, ${grid.length} mouth keys` + + (state.exposure > 1 ? ` on ${state.exposure}s` : '') + ', ' + + `${blinkRuns(state.eyes.shutR).length + blinkRuns(state.eyes.shutL).length} blinks`, 'ok'); } /* ---------- wiring ---------- */ @@ -605,6 +950,7 @@ async function runFrames() { state.interior = measureAll(images, dense, opts()); el('scrub').max = dense.length - 1; state.frame = 0; + labelExposure(); rebuild(true); const dur = (dense.length / state.fps).toFixed(2); status(`${images.length} frames · ${images[0].naturalWidth}x${images[0].naturalHeight} · ` + @@ -626,24 +972,44 @@ function runSynthetic() { state.dense = synthDense(72); el('scrub').max = 71; state.frame = 0; + labelExposure(); rebuild(true); status('synthetic — exercises everything below detection', 'ok'); } +// How each slider's raw value reads out. A table rather than the conditional +// chain this used to be: that chain grew a branch per knob and was one ternary +// away from being unreadable. +const FMT = { + apertureThresh: (v) => (v / 1000).toFixed(3), + tol: (v) => (v / 1000).toFixed(3), + blinkCut: (v) => (v / 1000).toFixed(3), + teethOn: (v) => (v / 100).toFixed(2), + teethErode: (v) => (v / 100).toFixed(2), + tongueReject: (v) => (v / 100).toFixed(2), + topBias: (v) => (v / 100).toFixed(2), + irisSize: (v) => `${v}%`, + gazeGain: (v) => (v / 100).toFixed(2), + gazeStep: (v) => (v ? `${v}px` : 'off'), + pupilPx: (v) => (v ? `${v}px` : 'off'), + lashPx: (v) => `${v}px`, + lead: (v) => (v > 0 ? `+${v}` : String(v)), +}; + for (const id of ['verts', 'smoothWin', 'contourSmooth', 'apertureThresh', 'tol', 'teethOn', 'teethDwell', 'teethErode', 'tongueReject', 'blobGrow', - 'topBias', 'teethVerts', 'teethSmooth', 'lead']) { + 'topBias', 'teethVerts', 'teethSmooth', 'lead', + 'eyeVerts', 'lashPx', 'irisSize', 'pupilPx', 'gazeGain', + 'gazeStep', 'gazeDwell', 'blinkCut', 'blinkHold', 'blinkDwell']) { + const show = () => { + el(id + 'v').textContent = FMT[id] ? FMT[id](+el(id).value) : el(id).value; + }; el(id).addEventListener('input', () => { - el(id + 'v').textContent = id === 'apertureThresh' || id === 'tol' - ? (+el(id).value / 1000).toFixed(3) - : ['teethOn', 'teethErode', 'tongueReject', 'topBias'].includes(id) - ? (+el(id).value / 100).toFixed(2) - : id === 'lead' && +el(id).value > 0 ? `+${el(id).value}` - : el(id).value; + show(); if (id === 'tol') return; // tol only matters when you ask for a suggestion rebuild(false); }); - el(id + 'v').textContent = el(id).value; + show(); } function seekTo(f) { @@ -657,6 +1023,22 @@ el('btn-frames').onclick = runFrames; el('btn-synth').onclick = runSynthetic; el('btn-export').onclick = exportTake; el('plateMode').addEventListener('change', () => { if (state.dense) drawAll(); }); +el('exposure').addEventListener('change', () => { if (state.dense) rebuild(false); }); +for (const id of ['irisAnchor', 'gazeOrigin']) { + el(id).addEventListener('change', () => { if (state.dense) rebuild(false); }); +} + +// Label the exposure options in the only units that mean anything here: the +// rate the picture actually changes at, which depends on the clip's own rate. +// "on 2s" is the animator's name for it and the number is what you hear against +// the audio, so the menu says both. +function labelExposure() { + for (const opt of el('exposure').options) { + const n = +opt.value; + const rate = (state.fps / n).toFixed(4).replace(/\.?0+$/, ''); + opt.textContent = `${rate} fps · on ${n}s`; + } +} el('btn-saveframe').onclick = () => { if (!state.dense) return; const cv = document.createElement('canvas'); @@ -775,3 +1157,5 @@ else if (location.hash === '#frames') runFrames(); else status('ready — Load frames, then step with \u2190 \u2192 and delete with X'); window.__roto = state; // headless smoke test reads this +window.__render = compositeRender; // ...and renders arbitrary frames off-screen +window.__lead = leadIndex; // ...and resolves the performance frame diff --git a/js/landmarks.js b/js/landmarks.js index 8251e6b..ee0094b 100644 --- a/js/landmarks.js +++ b/js/landmarks.js @@ -52,3 +52,46 @@ export function subsampleSlots(len, n) { export function subsampleRing(ring, n) { return subsampleSlots(ring.length, n).map((s) => ring[s]); } + +// ---- eyes ---- +// +// Eyelid rings, under the same contract as the lip rings: ORDERED traversals +// where slot position IS vertex identity. Both eyes start at the OUTER corner +// and go over the UPPER lid first, so slot k means the same anatomy on both +// sides. On a 16-slot ring that puts the four cardinals exactly on the four +// quarter slots - 0 outer corner, 4 upper lid centre, 8 inner corner, 12 lower +// lid centre - so every even vertex budget lands on real landmarks. +// +// The two rings traverse opposite directions on screen, because they are +// mirrored anatomy described the same way. Nothing downstream cares: an +// even-odd fill has no winding, and ring SIMPLICITY is what is asserted. +export const EYE_R_RING = [ + 33, 246, 161, 160, 159, 158, 157, 173, + 133, 155, 154, 153, 145, 144, 163, 7, +]; +export const EYE_L_RING = [ + 263, 466, 388, 387, 386, 385, 384, 398, + 362, 382, 381, 380, 374, 373, 390, 249, +]; + +// Outer, inner corner per eye. All four are also in RIGID, and that is the +// point: the eye's reference frame is built only from landmarks that do not +// move under performance, so a blink cannot be mistaken for a change of gaze. +export const EYE_R_CORNERS = [33, 133]; +export const EYE_L_CORNERS = [263, 362]; + +// Upper and lower lid centres. Their separation over the corner distance is the +// openness signal that decides whether the eye is shut - the same shape of +// measurement as APERTURE is for the mouth, but normalised, so one threshold +// carries across takes and faces. +export const EYE_R_LIDS = [159, 145]; +export const EYE_L_LIDS = [386, 374]; + +// The two iris blocks the refined mesh appends: centre first, then four ring +// points. WHICH BLOCK BELONGS TO WHICH EYE IS NOT DECLARED HERE - MediaPipe's +// own "left"/"right" is viewer-relative in some docs and subject-relative in +// others, and a swap looks almost right, so it would survive an eyeball and +// then read as a permanently wall-eyed character. pipeline.js resolves it from +// the geometry instead. +export const IRIS_A = [468, 469, 470, 471, 472]; +export const IRIS_B = [473, 474, 475, 476, 477]; diff --git a/js/mathutil.js b/js/mathutil.js index 310eb8c..b49c51c 100644 --- a/js/mathutil.js +++ b/js/mathutil.js @@ -108,3 +108,27 @@ export function smoothTransforms(tfs, radius) { theta: Math.atan2(sn[i], c[i]), s: s[i], tx: tx[i], ty: ty[i], })); } + +// Push a ring outward from its centroid by a FIXED distance, not by a scale +// factor. +// +// Scaling collapses with the shape: a shut eyelid scaled by 1.1 is still a shut +// eyelid, so the lash line - the only thing left to draw when the eye is closed +// - would vanish exactly on the frames where it is the whole drawing. A fixed +// radial offset gives a band of roughly constant thickness that survives the +// ring going degenerate, and it keeps a star-shaped ring simple, which +// docs/design.md requires of every cut part. +export function offsetRing(pts, d) { + if (!d) return pts; + let cx = 0, cy = 0; + for (const p of pts) { cx += p.x; cy += p.y; } + cx /= pts.length; cy /= pts.length; + return pts.map((p) => { + const dx = p.x - cx, dy = p.y - cy; + const m = Math.hypot(dx, dy); + // A vertex sitting exactly on the centroid has no outward direction. Leave + // it where it is rather than emitting NaN and poisoning the whole ring. + return m < 1e-9 ? { x: p.x, y: p.y } + : { x: p.x + (dx / m) * d, y: p.y + (dy / m) * d }; + }); +} diff --git a/js/pipeline.js b/js/pipeline.js index 2e1155c..e004e72 100644 --- a/js/pipeline.js +++ b/js/pipeline.js @@ -2,7 +2,9 @@ // All policy lives here, never in the renderer. See docs/design.md, // "The take is the contract". -import { RIGID, LIPS_OUTER, LIPS_INNER, APERTURE, FACE_OVAL, EYE_INNER, subsampleSlots } from './landmarks.js'; +import { RIGID, LIPS_OUTER, LIPS_INNER, APERTURE, FACE_OVAL, EYE_INNER, + EYE_R_RING, EYE_L_RING, EYE_R_CORNERS, EYE_L_CORNERS, + EYE_R_LIDS, EYE_L_LIDS, IRIS_A, IRIS_B, subsampleSlots } from './landmarks.js'; import { fitSimilarity, applySimAll, applySim, fitResidual, procrustesMean, smoothTransforms, movingAverage } from './mathutil.js'; // MediaPipe normalises x by image WIDTH and y by image HEIGHT, so its normalised @@ -25,6 +27,13 @@ export function stabilize(dense, smoothRadius, aspect = 1) { const raw = rigid.map((r) => fitSimilarity(r, ref)); const tfs = smoothTransforms(raw, smoothRadius); + // The refined mesh appends ten iris points to the 468 face points, but a + // plain mesh does not, and synthetic or hand-fed tracks need not. Checked + // rather than assumed: reading past the end would surface as NaN gaze deep + // downstream instead of as "this track carries no iris". + const hasIris = dense.every((f) => f && f.length > IRIS_B[IRIS_B.length - 1]); + const map = (table) => dense.map((f, i) => applySimAll(tfs[i], pick(f, table, aspect))); + return { ref, transforms: tfs, @@ -43,9 +52,221 @@ export function stabilize(dense, smoothRadius, aspect = 1) { const a = applySimAll(tfs[i], pick(f, APERTURE, aspect)); return Math.hypot(a[0].x - a[1].x, a[0].y - a[1].y); }), + // Eyes. Lid rings are a feature and get traced like the mouth; corners and + // lid centres are the measurement frame; the iris blocks are raw until + // pairIrises decides which is which. + lidR: map(EYE_R_RING), lidL: map(EYE_L_RING), + cornersR: map(EYE_R_CORNERS), cornersL: map(EYE_L_CORNERS), + lidsR: map(EYE_R_LIDS), lidsL: map(EYE_L_LIDS), + irisA: hasIris ? map(IRIS_A) : null, + irisB: hasIris ? map(IRIS_B) : null, }; } +/* ---------- eyes ---------- */ + +const mid = (a, b) => ({ x: (a.x + b.x) / 2, y: (a.y + b.y) / 2 }); +const dist = (a, b) => Math.hypot(a.x - b.x, a.y - b.y); + +// Which iris block belongs to which eye is RESOLVED FROM THE DATA, not declared +// in a table. +// +// The naming in MediaPipe's own material is viewer-relative in some places and +// subject-relative in others, and the two blocks are otherwise +// indistinguishable. Getting it backwards swaps the irises, which looks almost +// right - each eye still has a disc in roughly the right place - so it survives +// a casual eyeball and then reads as a subtly wall-eyed character for the rest +// of the project. Proximity to the eye's corner midpoint settles it in one +// comparison, is impossible to get wrong, and keeps working if the model is +// ever renumbered. +// +// Voted across every frame rather than read off frame zero: one bad detection +// should not decide the whole shot. +export function pairIrises(stab) { + if (!stab.irisA) return null; + let votes = 0; + for (let f = 0; f < stab.irisA.length; f++) { + const cR = mid(stab.cornersR[f][0], stab.cornersR[f][1]); + votes += dist(stab.irisA[f][0], cR) < dist(stab.irisB[f][0], cR) ? 1 : -1; + } + return votes > 0 ? { right: 'irisA', left: 'irisB' } + : { right: 'irisB', left: 'irisA' }; +} + +// Per-frame eye measurements, in units of eye width. Measurement only - every +// threshold and every stylisation is applied by the callers. +// +// Everything here stays in HEAD-LOCAL space, which is the same space the mouth +// lives in and the same space the registered photo underlay is drawn in. An +// earlier version pinned each eye into a fixed socket fitted to its corners' +// mean over the shot. That does remove the wobble, but it removes too much: the +// residual from out-of-plane rotation is real motion of the eye relative to the +// head, it is still there in the footage, and pinning it away leaves the drawn +// eyes hanging still over a photo whose eyes are moving. The eye has to track +// the face exactly as the mouth does. +// +// The wobble the socket was aimed at is dealt with the way docs/design.md deals +// with it everywhere else - the bounded contour average, the same knob and the +// same radius the mouth uses - and by placing the iris in the frame of the +// ALREADY-SMOOTHED lid ring, so the iris cannot jitter independently of the eye +// it sits in. See buildEyes in app.js. +export function eyeSignals(stab) { + const N = stab.transforms.length; + const pairing = pairIrises(stab); + const openR = [], openL = [], gazeRaw = [], gazeR = [], gazeL = []; + + for (let f = 0; f < N; f++) { + const cR = mid(stab.cornersR[f][0], stab.cornersR[f][1]); + const cL = mid(stab.cornersL[f][0], stab.cornersL[f][1]); + const wR = dist(stab.cornersR[f][0], stab.cornersR[f][1]); + const wL = dist(stab.cornersL[f][0], stab.cornersL[f][1]); + + // Openness is the lid gap over the CORNER distance. Normalising by the + // corners rather than by anything derived from the lids keeps the + // denominator rigid, so the ratio measures the lid and nothing else, and + // one threshold carries across takes, faces and framings. + openR.push(dist(stab.lidsR[f][0], stab.lidsR[f][1]) / wR); + openL.push(dist(stab.lidsL[f][0], stab.lidsL[f][1]) / wL); + + if (!pairing) { + gazeRaw.push({ x: 0, y: 0 }); gazeR.push({ x: 0, y: 0 }); gazeL.push({ x: 0, y: 0 }); + continue; + } + const iR = stab[pairing.right][f][0], iL = stab[pairing.left][f][0]; + // Gaze is the iris centre relative to the CORNER MIDPOINT, in eye widths - + // a pure offset WITHIN the eye, with the eye's own position divided out, so + // that quantising it quantises the glance and not the head motion carrying + // it. + // + // Measuring against the lid ring's centroid instead would track the lid: + // every blink pulls that centroid down and would fake a glance at the + // floor, on precisely the frames where the eye is most conspicuous. The + // corners are in RIGID, so this origin and this denominator are both immune + // to the performance they are measuring. + const gR = { x: (iR.x - cR.x) / wR, y: (iR.y - cR.y) / wR }; + const gL = { x: (iL.x - cL.x) / wL, y: (iL.y - cL.y) / wL }; + + // ONE gaze for both eyes, and deliberately so. At 320x200 an iris is a + // handful of pixels and its centre comes from five landmarks on an eye + // twenty pixels wide, so the difference between the two measurements is + // noise, not vergence - and independent per-eye noise reads as wall-eyed + // immediately, which is the most expensive artefact on a face. Openness + // stays per-eye, because a wink is real performance and should survive. + gazeRaw.push({ x: (gR.x + gL.x) / 2, y: (gR.y + gL.y) / 2 }); + // Kept separately purely as a diagnostic. The two eyes should agree; when + // they disagree in a sustained way rather than frame to frame, that is not + // noise but out-of-plane head rotation biasing the projected iris offset, + // and no 2D measurement can undo it. + gazeR.push(gR); gazeL.push(gL); + } + return { openR, openL, gazeRaw, gazeR, gazeL, hasIris: !!pairing }; +} + +// Where "not looking anywhere in particular" sits on THIS face. Everything the +// character does is measured as a departure from it, so getting it wrong does +// not bias the gaze slightly - it re-points the whole performance. +// +// `median` is the default and the safe one: the middle of the take, per axis. +// docs/design.md already gives this rule for the anchor fit - the reference is +// the MEAN configuration over the shot, not one frame - and gaze needs it for +// the same reason. The median rather than the mean because a couple of frames +// of hard glance should not drag the rest-point after them. +// +// `neutral` reads the origin off the take's neutral frame instead, which is +// only correct when there genuinely is a held neutral to read. That frame is +// chosen by MINIMUM MOUTH APERTURE, and a closed mouth says nothing whatever +// about where the eyes are pointed - so on footage with no deliberate neutral +// at the top it is an arbitrary frame, and whichever way the performer happened +// to glance on it becomes "straight ahead" for the entire shot. It is kept +// because it is right when the take was shot for this tool, and because being +// able to switch is how you find out that it was not. +export function gazeOrigin(gazeRaw, mode = 'median', neutral = 0, radius = 2) { + if (mode === 'neutral') { + let sx = 0, sy = 0, n = 0; + // A window, not a single frame: one frame of a five-landmark iris centre is + // worth about a pixel of noise, and that pixel would become a permanent + // squint in the output. + for (let f = neutral - radius; f <= neutral + radius; f++) { + const k = Math.min(gazeRaw.length - 1, Math.max(0, f)); + sx += gazeRaw[k].x; sy += gazeRaw[k].y; n++; + } + return { x: sx / n, y: sy / n }; + } + const mid1 = (vals) => { + const v = vals.slice().sort((a, b) => a - b); + return v.length % 2 ? v[(v.length - 1) / 2] + : (v[v.length / 2 - 1] + v[v.length / 2]) / 2; + }; + return { x: mid1(gazeRaw.map((g) => g.x)), y: mid1(gazeRaw.map((g) => g.y)) }; +} + +// Snap gaze onto a grid, then require a new cell to hold before it takes. +// +// This is the "Primitive - quantised" row of the part table in docs/design.md, +// and it is not a stylisation imposed on the truth: real eyes move in saccades, +// holding a fixation and then jumping. The smooth drift left in the measurement +// is tracker noise plus head-compensation error, so snapping to a grid and +// requiring a dwell removes the noise and recovers the saccade in the same +// operation - the rare case where the aesthetic rule and the physiology agree. +// +// The dwell is what stops a gaze parked on a cell boundary from chattering +// between two cells forever. It is meaningless without a grid, because +// continuous values never repeat, so step 0 short-circuits both. +export function quantizeGaze(gaze, step, dwell) { + if (!(step > 0)) return gaze.map((g) => ({ x: g.x, y: g.y })); + const q = gaze.map((g) => ({ + x: Math.round(g.x / step) * step, + y: Math.round(g.y / step) * step, + })); + if (dwell <= 0 || !q.length) return q; + + const out = []; + let live = q[0], pend = q[0], run = 0; + for (const g of q) { + if (g.x === pend.x && g.y === pend.y) run++; + else { pend = g; run = 1; } + if (run > dwell && (pend.x !== live.x || pend.y !== live.y)) live = pend; + out.push(live); + } + return out; +} + +// Resolve openness into a shut/open decision per frame. +// +// `dwell` is the same guard the teeth get: a lid hovering at the threshold must +// commit before the state changes, so it cannot flicker. +// +// `hold` is the one that is NOT like the teeth, and it is the whole reason +// blinks are worth special-casing. A blink is 100-150ms, which at 12fps is one +// frame and at 24fps is two or three - and a single frame of closed eye reads +// as a dropped frame, not as a blink. Animators draw a blink over two or three +// drawings for exactly that reason. So once the eye shuts it stays shut for +// `hold` frames, which turns an unreadable flicker into a beat. +// +// The hysteresis runs the other way from the teeth: shutting needs a clear +// signal, and once shut the eye is given the benefit of the doubt on reopening, +// because the lid landmarks are least reliable mid-blink. +export function resolveBlink(open, { cut, dwell, hold }) { + const N = open.length; + const shut = new Array(N).fill(false); + let live = false; // current state + let run = 0; // frames the opposing reading has persisted + let held = 0; // frames spent in the current state + for (let f = 0; f < N; f++) { + const reading = live ? open[f] < cut * 1.35 : open[f] < cut; + if (reading === live) run = 0; + else { + run++; + // Leaving a blink additionally requires the blink to have been on screen + // long enough to be legible; entering one never waits. + if (run > dwell && (!live || held >= hold)) { live = reading; held = 0; run = 0; } + } + held++; + shut[f] = live; + } + return shut; +} + // Stage 4: fixed-index subsample of a stabilised ring, then map from normalised // face space into character raster space. export function toRasterRing(stabRing, ringTable, n, xform) { @@ -178,6 +399,24 @@ export function heldFrame(kept, f) { return hit; } +// Hold every output frame back onto an exposure grid: 1 = on 1s, 2 = on 2s, and +// so on. Frame 5 at exposure 2 reads the pose from frame 4. +// +// This is where "aesthetic sparseness" belongs. docs/design.md used to put it at +// the extraction rate - pick 12fps and the timing is already chosen - but that +// makes the timing a property of a directory of PNGs, so auditioning 12 against +// 24 means re-ripping the clip and re-running detection over all of it. Rip +// dense once and quantise here instead: the dense track stays at the camera's +// rate, the decision stays reversible, and the audio clock is untouched, so +// sync cannot drift while you try timings. +// +// Floor, never round. Rounding would let an output frame read a pose from the +// FUTURE, which is a lead - a separate control, applied after this one, for a +// separate reason. +export function exposeIndex(f, exposure) { + return exposure > 1 ? Math.floor(f / exposure) * exposure : f; +} + // Shift a performance track against the clock, clamped at the ends. // // Pure and exported so the shift can actually be asserted: "the slider feels diff --git a/js/raster.js b/js/raster.js index 477e63f..987fbe8 100644 --- a/js/raster.js +++ b/js/raster.js @@ -46,14 +46,47 @@ export class IndexedRaster { } } - fillDisc(cx, cy, r, index) { + // `over` is an optional stencil: when given, only pixels that currently hold + // that index are written. The indexed buffer is its own clip mask, which is + // how Animator Pro would do it - and it is what keeps the iris inside the + // eye. A disc clipped by the sclera cannot spill past the lid at any gaze or + // any radius, including mid-blink when the opening is a two-pixel sliver, so + // the lid crops the iris for free instead of the gaze range needing a + // clamp that would flatten the performance at the extremes. + fillDisc(cx, cy, r, index, over = null) { const rr = r * r; const y0 = Math.max(0, Math.floor(cy - r)), y1 = Math.min(this.h - 1, Math.ceil(cy + r)); const x0 = Math.max(0, Math.floor(cx - r)), x1 = Math.min(this.w - 1, Math.ceil(cx + r)); for (let y = y0; y <= y1; y++) { for (let x = x0; x <= x1; x++) { const dx = x + 0.5 - cx, dy = y + 0.5 - cy; - if (dx * dx + dy * dy <= rr) this.buf[y * this.w + x] = index; + if (dx * dx + dy * dy > rr) continue; + const o = y * this.w + x; + if (over === null || this.buf[o] === over) this.buf[o] = index; + } + } + } + + // An exactly size x size block of pixels, snapped to the pixel grid, with the + // same optional stencil as fillDisc. + // + // The pupil is a SQUARE because at 320x200 it is three pixels across, and a + // circle of radius 1.5 is not a circle - it is a plus sign with the corners + // gnawed off, and it changes shape as it moves. A square that size is a + // deliberate mark that stays the same mark wherever it lands, which is the + // whole argument for flat shapes at this resolution. + // + // The top-left is rounded rather than the centre, so the block is size x size + // on every frame. Round the extents instead and a fractional centre gives you + // three pixels on one frame and four on the next, which reads as the pupil + // breathing. + fillRect(cx, cy, size, index, over = null) { + if (size < 1) return; + const x0 = Math.round(cx - size / 2), y0 = Math.round(cy - size / 2); + for (let y = Math.max(0, y0); y < Math.min(this.h, y0 + size); y++) { + for (let x = Math.max(0, x0); x < Math.min(this.w, x0 + size); x++) { + const o = y * this.w + x; + if (over === null || this.buf[o] === over) this.buf[o] = index; } } } diff --git a/js/selftest.js b/js/selftest.js index 026c476..ed58aa4 100644 --- a/js/selftest.js +++ b/js/selftest.js @@ -7,9 +7,12 @@ // as blocks meeting at corners. It is invisible at some vertex counts and obvious // at others, so it needs an assertion rather than an eyeball. -import { LIPS_OUTER, LIPS_INNER, FACE_OVAL, RIGID, subsampleSlots, subsampleRing } from './landmarks.js'; -import { fitSimilarity, applySim, procrustesMean, smoothTransforms } from './mathutil.js'; -import { stabilize, toRasterRing, selectKeys, activeKey, shiftIndex } from './pipeline.js'; +import { LIPS_OUTER, LIPS_INNER, FACE_OVAL, RIGID, subsampleSlots, subsampleRing, + EYE_R_RING, EYE_L_RING, EYE_R_CORNERS, EYE_L_CORNERS, + EYE_R_LIDS, EYE_L_LIDS } from './landmarks.js'; +import { fitSimilarity, applySim, procrustesMean, smoothTransforms, offsetRing } from './mathutil.js'; +import { stabilize, toRasterRing, smoothContours, selectKeys, activeKey, shiftIndex, + exposeIndex, eyeSignals, pairIrises, gazeOrigin, quantizeGaze, resolveBlink } from './pipeline.js'; import { IndexedRaster, hexToRgb } from './raster.js'; import { writeTake } from './take.js'; import { otsuForTest, scaleRing } from './interior.js'; @@ -206,6 +209,25 @@ export function run() { ok('activeKey holds between keys', activeKey(sel.keys, sel.keys[1].f - 1).f === sel.keys[0].f); + // exposure: rip dense, choose the timing here. On 2s every odd frame must + // reuse the even frame's pose, and the grid must never read from the future - + // that direction is the lead, which is a different control for a reason. + ok('exposure 1 is identity', [0, 1, 7, 71].every((f) => exposeIndex(f, 1) === f)); + ok('on 2s holds each pose for two frames', + [0, 1, 2, 3, 4, 5].map((f) => exposeIndex(f, 2)).join(',') === '0,0,2,2,4,4'); + ok('on 3s holds each pose for three frames', + [0, 1, 2, 3, 4, 5, 6].map((f) => exposeIndex(f, 3)).join(',') === '0,0,0,3,3,3,6'); + ok('exposure never reads a pose from the future', + [0, 1, 2, 3, 4, 5, 6, 7].every((f) => exposeIndex(f, 3) <= f)); + { + // Exposure then lead, in that order: the picture must change on the grid + // beats and carry a pose shifted by whole frames of the original track. + const N = 72, at = (f) => shiftIndex(exposeIndex(f, 2), 1, N); + ok('exposure and lead compose without moving the beats', + at(0) === 1 && at(1) === 1 && at(2) === 3 && at(3) === 3, + [0, 1, 2, 3].map(at).join(',')); + } + // mouth lead: a shift that "feels like it does nothing" is indistinguishable // from one that does nothing, so assert the arithmetic directly. ok('lead 0 is identity', [0, 5, 71].every((f) => shiftIndex(f, 0, 72) === f)); @@ -288,6 +310,241 @@ export function run() { (tt.mBright - tt.mDark) / 255 > 0.4, `sep ${((tt.mBright - tt.mDark) / 255).toFixed(4)}`); } + /* ---- eyes ---- */ + + ok('eye rings have 16 distinct ids each', + new Set(EYE_R_RING).size === 16 && new Set(EYE_L_RING).size === 16); + ok('the two eye rings share no landmark', + !EYE_R_RING.some((i) => EYE_L_RING.includes(i))); + + // The cardinal contract, asserted rather than trusted: on a 16-slot ring the + // quarter slots must be the four anatomical cardinals, which is what makes + // every even vertex budget land on real landmarks instead of between them. + ok('eye ring slot 0/4/8/12 are outer, upper, inner, lower', + EYE_R_RING[0] === EYE_R_CORNERS[0] && EYE_R_RING[8] === EYE_R_CORNERS[1] && + EYE_R_RING[4] === EYE_R_LIDS[0] && EYE_R_RING[12] === EYE_R_LIDS[1] && + EYE_L_RING[0] === EYE_L_CORNERS[0] && EYE_L_RING[8] === EYE_L_CORNERS[1] && + EYE_L_RING[4] === EYE_L_LIDS[0] && EYE_L_RING[12] === EYE_L_LIDS[1]); + + // The gaze origin and denominator are built from the eye corners, so if a + // corner were not rigid a blink could move it and fake a glance. + ok('every eye corner is a rigid landmark', + [...EYE_R_CORNERS, ...EYE_L_CORNERS].every((i) => RIGID.includes(i))); + + // Same simplicity requirement as the lips, and for the same reason: a cut + // part with a self-intersecting ring renders as blocks meeting at corners. + // Checked on blink frames too, where the ring is nearly degenerate. + for (const [label, table] of [['right', EYE_R_RING], ['left', EYE_L_RING]]) { + let worst = null; + for (let n = 4; n <= 12 && !worst; n += 2) { + const slots = subsampleSlots(table.length, n); + for (let f = 0; f < dense.length; f++) { + const hits = ringSelfIntersections(slots.map((sl) => dense[f][table[sl]])); + if (hits.length) { worst = `verts=${n} frame=${f} edges ${JSON.stringify(hits[0])}`; break; } + } + } + ok(`${label} eye ring is simple at every vertex budget`, !worst, worst || ''); + } + + // offsetRing must grow by a FIXED amount and survive a degenerate ring - the + // shut eyelid is exactly the degenerate case, and it is the frame where the + // lash line is the entire drawing. + { + const sq = [{ x: -1, y: 0 }, { x: 0, y: -1 }, { x: 1, y: 0 }, { x: 0, y: 1 }]; + const g = offsetRing(sq, 2); + ok('offsetRing pushes every vertex out by exactly d', + g.every((p, i) => Math.abs(Math.hypot(p.x, p.y) - (Math.hypot(sq[i].x, sq[i].y) + 2)) < 1e-9)); + ok('offsetRing(0) is identity', offsetRing(sq, 0) === sq); + // A shut lid: a flat sliver. The offset must still open it into a band. + const shutLid = [{ x: -10, y: 0 }, { x: 0, y: -0.02 }, { x: 10, y: 0 }, { x: 0, y: 0.02 }]; + const band = offsetRing(shutLid, 1.5); + const h = Math.max(...band.map((p) => p.y)) - Math.min(...band.map((p) => p.y)); + ok('offsetRing gives a shut lid a visible lash band', h > 2.9, `height ${h.toFixed(3)}`); + ok('offsetRing keeps the shut lid simple', ringSelfIntersections(band).length === 0); + } + + { + const stE = stabilize(dense, 2); + const sig = eyeSignals(stE); + ok('synthetic track carries iris landmarks', sig.hasIris); + + // THE load-bearing eye assertion. The pairing is resolved from geometry + // rather than declared, so the test feeds a track built the OTHER way round + // and demands the resolver follow the data. A resolver only ever checked + // against the convention it was written for is checking nothing. + const pairA = pairIrises(stE); + const pairB = pairIrises(stabilize(synthDense(72, { swapIris: true }), 2)); + ok('iris pairing is resolved from the data, not assumed', + pairA.right === 'irisA' && pairB.right === 'irisB', + `normal ${pairA.right}, swapped ${pairB.right}`); + + // The eye must TRACK the face, not sit in a fixed socket. An earlier + // version pinned each eye to its corners' mean over the shot, which does + // kill the wobble but leaves the drawn eyes hanging still over a registered + // photo whose eyes are moving. Head-local is the same space the mouth and + // the underlay live in, so the eye moves with the head exactly as they do. + { + const spread = (arr, sel) => { + const v = arr.map(sel); + return Math.max(...v) - Math.min(...v); + }; + const w = Math.hypot(stE.cornersR[0][0].x - stE.cornersR[0][1].x, + stE.cornersR[0][0].y - stE.cornersR[0][1].y); + const moves = Math.max(spread(stE.lidR, (r) => r[0].x), spread(stE.lidR, (r) => r[0].y)); + ok('the eye stays in head-local space and tracks the face', moves / w > 0.02, + `corner travels ${(moves / w * 100).toFixed(1)}% of an eye width`); + + // Subsampling a 16-slot ring to any even budget must keep the two corners + // at output indices 0 and n/2. That is what lets the socket be read back + // off the drawn polygon instead of measured separately, which is what + // stops the iris drifting relative to the eye it sits in. + let bad = null; + for (let n = 4; n <= 12; n += 2) { + const sl = subsampleSlots(16, n); + if (sl[0] !== 0 || sl[n / 2] !== 8) bad = `n=${n} -> ${sl.join(',')}`; + } + ok('the drawn lid ring carries its own corners at 0 and n/2', !bad, bad || ''); + + // The contour average is what removes the jitter, and it is the mouth's + // knob doing the mouth's job - no second mechanism for the eyes. + const ring = (rad) => smoothContours( + stE.lidR.map((r) => toRasterRing(r, EYE_R_RING, 8, (p) => ({ x: p.x * 600, y: p.y * 600 }))), rad); + const jitter = (rings) => { + let acc = 0; + for (let f = 1; f < rings.length; f++) { + const a = rings[f], b = rings[f - 1]; + acc += Math.hypot((a[0].x + a[4].x) / 2 - (b[0].x + b[4].x) / 2, + (a[0].y + a[4].y) / 2 - (b[0].y + b[4].y) / 2); + } + return acc / (rings.length - 1); + }; + ok('contour averaging steadies the eye without pinning it', + jitter(ring(1)) < jitter(ring(0)) * 0.8, + `${jitter(ring(0)).toFixed(3)} -> ${jitter(ring(1)).toFixed(3)} px/frame`); + } + + // Blink: synth shuts the lids for exactly one frame every 19. + const lo = Math.min(...sig.openR), hi = Math.max(...sig.openR); + ok('openness collapses on a blink and not otherwise', lo < hi * 0.2, + `${lo.toFixed(3)} .. ${hi.toFixed(3)}`); + + const shut = resolveBlink(sig.openR, { cut: hi * 0.3, dwell: 0, hold: 3 }); + const runs = []; + for (let f = 0; f < shut.length; f++) if (shut[f] && !shut[f - 1]) runs.push(f); + const lens = runs.map((a) => { let n = 0; while (shut[a + n]) n++; return n; }); + ok('blinks are found', runs.length >= 3, `${runs.length} runs at ${runs.join(',')}`); + // The knob that is not like the teeth: a one-frame blink reads as a dropped + // frame, so `hold` must stretch it into something legible. + ok('a one-frame blink is held to the minimum length', + lens.every((n) => n >= 3), `run lengths ${lens.join(',')}`); + ok('a shorter hold leaves the blink shorter', + resolveBlink(sig.openR, { cut: hi * 0.3, dwell: 0, hold: 1 }).filter(Boolean).length < + shut.filter(Boolean).length); + + // Gaze, against ground truth: synth commands +0.16 eye widths at f12 and + // -0.16 at f23, holding each for eleven frames. + const org = gazeOrigin(sig.gazeRaw, 'neutral', 0); + const gx = (f) => (sig.gazeRaw[f].x - org.x); + ok('gaze recovers the commanded direction', + gx(12) > 0.12 && gx(12) < 0.20 && gx(23) < -0.12 && gx(23) > -0.20, + `f12 ${gx(12).toFixed(3)}, f23 ${gx(23).toFixed(3)}`); + + // Measuring gaze against the lid centroid instead of the corner midpoint + // would drag the iris down on every blink and fake a glance at the floor, + // on exactly the frames where the eye is most conspicuous. + const gy = (f) => (sig.gazeRaw[f].y - org.y); + ok('a blink does not fake a change of gaze', + Math.abs(gy(19) - gy(18)) < 0.02, `f18 ${gy(18).toFixed(4)} -> f19 ${gy(19).toFixed(4)}`); + + // Quantisation is what turns drift into saccades: four commanded + // fixations must come back as a handful of cells, not one per frame. + // The origin re-points the whole performance, so a wrong one does not bias + // the gaze slightly - it makes the character look the other way. The median + // must sit inside the range it summarises; the neutral-frame origin need + // not, which is exactly the failure mode it has on footage with no + // deliberate neutral at the top. + { + const med = gazeOrigin(sig.gazeRaw, 'median'); + const xs = sig.gazeRaw.map((g) => g.x); + ok('the median origin lies inside the take\'s own gaze range', + med.x > Math.min(...xs) && med.x < Math.max(...xs), + `${med.x.toFixed(3)} in ${Math.min(...xs).toFixed(3)}..${Math.max(...xs).toFixed(3)}`); + // Synth looks left as much as right, so the rest point is near zero. + ok('the median origin finds the rest point, not a glance', + Math.abs(med.x) < 0.08, `median x ${med.x.toFixed(3)}`); + ok('the two origins actually differ, so the toggle is a real A/B', + Math.abs(med.x - gazeOrigin(sig.gazeRaw, 'neutral', 12).x) > 0.02); + } + + const px = sig.gazeRaw.map((g) => ({ x: (g.x - org.x) * 30, y: (g.y - org.y) * 30 })); + const cells = (a) => new Set(a.map((g) => `${g.x},${g.y}`)).size; + ok('quantisation collapses drift into a few fixations', + cells(quantizeGaze(px, 2, 2)) <= 6 && cells(px) > 40, + `${cells(px)} raw -> ${cells(quantizeGaze(px, 2, 2))} cells`); + ok('gaze step 0 leaves the track untouched', + quantizeGaze(px, 0, 2).every((g, i) => g.x === px[i].x && g.y === px[i].y)); + ok('quantised values land on the grid', + quantizeGaze(px, 2, 0).every((g) => Math.abs(g.x % 2) < 1e-9 && Math.abs(g.y % 2) < 1e-9)); + // A one-frame excursion is noise; the dwell must swallow it. + { + const spike = [{ x: 0, y: 0 }, { x: 0, y: 0 }, { x: 4, y: 0 }, { x: 0, y: 0 }, { x: 0, y: 0 }]; + ok('the dwell suppresses a one-frame gaze spike', + quantizeGaze(spike, 2, 1).every((g) => g.x === 0)); + ok('a sustained move still gets through', + quantizeGaze([...spike, { x: 4, y: 0 }, { x: 4, y: 0 }, { x: 4, y: 0 }], 2, 1).pop().x === 4); + } + } + + // The iris is stencilled by the sclera and the pupil by the iris, which is + // what keeps both inside the lid at any gaze without clamping the gaze itself. + { + const rr = new IndexedRaster(40, 40); + rr.clear(0); + rr.fillPoly([{ x: 10, y: 10 }, { x: 30, y: 10 }, { x: 30, y: 20 }, { x: 10, y: 20 }], 1); + rr.fillDisc(28, 15, 9, 2, 1); // a disc reaching well past the "lid" + let spill = 0, inside = 0; + for (let y = 0; y < 40; y++) for (let x = 0; x < 40; x++) { + const v = rr.buf[y * 40 + x]; + if (v !== 2) continue; + if (x >= 10 && x < 30 && y >= 10 && y < 20) inside++; else spill++; + } + ok('a stencilled disc cannot spill past its clip', spill === 0 && inside > 20, + `${inside} in, ${spill} out`); + rr.fillDisc(5, 35, 3, 3); // no stencil: writes freely + ok('an unstencilled disc still writes anywhere', rr.buf.includes(3)); + + // The stencil chain: pupil over iris over sclera. A pupil placed where the + // iris has already been cropped must be cropped the same way. + rr.fillRect(28, 15, 5, 4, 2); + let pSpill = 0; + for (let y = 0; y < 40; y++) for (let x = 0; x < 40; x++) { + if (rr.buf[y * 40 + x] === 4 && !(x >= 10 && x < 30 && y >= 10 && y < 20)) pSpill++; + } + ok('the pupil inherits the iris clip transitively', pSpill === 0); + } + + // A square pupil is only worth having if it is the SAME square every frame: + // exactly its nominal size at any centre, or it breathes as the gaze moves. + { + const sizes = []; + for (const [cx, cy] of [[20, 20], [20.5, 20.5], [20.49, 19.51], [21, 20]]) { + const rr = new IndexedRaster(40, 40); + rr.clear(0); + rr.fillRect(cx, cy, 3, 1); + let n = 0, minX = 99, maxX = -1, minY = 99, maxY = -1; + for (let y = 0; y < 40; y++) for (let x = 0; x < 40; x++) { + if (rr.buf[y * 40 + x] !== 1) continue; + n++; minX = Math.min(minX, x); maxX = Math.max(maxX, x); + minY = Math.min(minY, y); maxY = Math.max(maxY, y); + } + sizes.push(`${maxX - minX + 1}x${maxY - minY + 1}:${n}`); + } + ok('a 3px pupil is 3x3 at every centre', sizes.every((v) => v === '3x3:9'), sizes.join(' ')); + const rr = new IndexedRaster(40, 40); + rr.clear(0); rr.fillRect(20, 20, 0, 1); + ok('pupil size 0 draws nothing', !rr.buf.includes(1)); + } + // take writer round-trip const take = { name: 'test', frames: 72, width: 320, height: 200, exposure: 2, @@ -297,6 +554,12 @@ export function run() { { name: 'head', kind: 'plate', z: 0, interp: 'hold', keys: [{ f: 0, plate: 0 }] }, { name: 'mouth', kind: 'poly', z: 30, color: 'skin', interp: 'hold', keys: sel.keys.map((k) => ({ f: k.f, src: k.src, pts: shapes[k.src] })) }, + { name: 'iris_r', kind: 'disc', z: 22, color: 'iris', interp: 'hold', + parent: 'eye_r_in', clip: 'eye_r_in', + keys: [{ f: 0, src: 0, c: { x: 120.4, y: 88.7 }, r: 5.5 }, { f: 2, hidden: true }] }, + { name: 'pupil_r', kind: 'rect', z: 23, color: 'pupil', interp: 'hold', + parent: 'iris_r', clip: 'iris_r', + keys: [{ f: 0, src: 0, c: { x: 120, y: 89 }, size: 3 }] }, ], }; const text = writeTake(take); @@ -309,6 +572,13 @@ export function run() { }), `${keyLines.length} key lines`); ok('take declares a plate and a part table', /^plate\s+0/m.test(text) && /^part\s+mouth/m.test(text)); + ok('a disc part declares its clip', /^part\s+iris_r.*clip=eye_r_in/m.test(text)); + ok('a disc key is three integers', /^key\s+iris_r\s+f=0\s+src=0\s+disc=120,89,6$/m.test(text), + (text.split('\n').find((l) => l.startsWith('key iris_r')) || '').trim()); + ok('a hidden disc key emits hidden', /^key\s+iris_r\s+f=2\s+hidden$/m.test(text)); + ok('a pupil key is a square, not a tessellated polygon', + /^key\s+pupil_r\s+f=0\s+src=0\s+rect=120,89,3$/m.test(text) && + /^part\s+pupil_r.*clip=iris_r/m.test(text)); ok('coordinates are integers', !/-?\d+\.\d/.test(text.split('\n').filter((l) => l.startsWith('key')).join(''))); return results; diff --git a/js/synth.js b/js/synth.js index bf736be..6de5606 100644 --- a/js/synth.js +++ b/js/synth.js @@ -5,11 +5,16 @@ // verified without a video file. A synthetic face is also the only way to test // stabilisation against a KNOWN head motion, since real footage gives no ground // truth to compare against. -import { LIPS_OUTER, LIPS_INNER, FACE_OVAL, RIGID, EYE_INNER } from './landmarks.js'; +import { LIPS_OUTER, LIPS_INNER, FACE_OVAL, RIGID, + EYE_R_RING, EYE_L_RING, IRIS_A, IRIS_B } from './landmarks.js'; const NUM = 478; -export function synthDense(nFrames = 72) { +// `swapIris` places the two iris blocks on the opposite eyes. It exists so the +// pairing resolver can be tested against a track it actually disagrees with: +// a resolver checked only against the convention it was written for is checking +// nothing at all. +export function synthDense(nFrames = 72, { swapIris = false } = {}) { const frames = []; for (let t = 0; t < nFrames; t++) { const pts = new Array(NUM); @@ -35,11 +40,49 @@ export function synthDense(nFrames = 72) { const openAmt = target[beat]; const wide = 0.10 + (beat === 1 ? 0.012 : beat === 3 ? -0.008 : 0); - place(RIGID[0], -0.075, -0.045); place(RIGID[1], -0.028, -0.043); - place(RIGID[2], 0.028, -0.043); place(RIGID[3], 0.075, -0.045); place(RIGID[4], 0.000, -0.050); place(RIGID[5], 0.000, -0.020); place(RIGID[6], 0.000, 0.012); - place(EYE_INNER[0], -0.028, -0.043); place(EYE_INNER[1], 0.028, -0.043); + + // Eyes. The corners (RIGID[0..3]) are placed BY the lid rings rather than + // separately, because they are slots 0 and 8 of those rings: writing them + // twice is how the mouth grew a bowtie, and a corner that disagrees with + // its own ring would make the eye self-intersect at some vertex budgets + // and not others. + // + // A blink is ONE frame, which is the honest hard case: at 12fps that is + // what a real blink costs, and it is exactly the length that reads as a + // dropped frame rather than as a blink unless `hold` extends it. + const blink = t > 5 && t % 19 === 0; + const openness = blink ? 0.05 : 1; + + // Gaze holds and then jumps, the way gaze actually behaves, with a little + // jitter on top so quantisation has noise to remove and the dwell has + // something to suppress. + const LOOK = [[0, 0], [0.16, 0.0], [-0.16, 0.05], [0.0, -0.09]]; + const [gx, gy] = LOOK[Math.floor(t / 11) % LOOK.length]; + const jit = () => (Math.random() - 0.5) * 0.012; + + // Half the corner separation, and the lid half-height at full open. + const EYE_RX = 0.0235, EYE_RY = 0.011, EYE_Y = -0.044; + const eye = (ring, cx, dir, iris) => { + const n = ring.length; + for (let k = 0; k < n; k++) { + // dir flips the traversal so each ring runs the direction its real + // table does: slot 0 outer corner, 4 upper lid, 8 inner, 12 lower. + const a = dir > 0 ? Math.PI + (k / n) * Math.PI * 2 : -(k / n) * Math.PI * 2; + place(ring[k], cx + EYE_RX * Math.cos(a), + EYE_Y + EYE_RY * openness * Math.sin(a)); + } + // Iris: centre first, then four ring points, as the refined mesh emits. + const ix = cx + (gx + jit()) * EYE_RX * 2, iy = EYE_Y + (gy + jit()) * EYE_RX * 2; + place(iris[0], ix, iy); + for (let k = 1; k < iris.length; k++) { + const a = ((k - 1) / (iris.length - 1)) * Math.PI * 2; + place(iris[k], ix + 0.008 * Math.cos(a), iy + 0.008 * Math.sin(a)); + } + }; + eye(EYE_R_RING, -0.0515, 1, swapIris ? IRIS_B : IRIS_A); + eye(EYE_L_RING, 0.0515, -1, swapIris ? IRIS_A : IRIS_B); // Lip rings as ellipse arcs, traversed so ring ORDER matches the tables: // slot 0 = right corner, 5 = top centre, 10 = left corner, 15 = bottom diff --git a/js/take.js b/js/take.js index 8a87b09..97929f3 100644 --- a/js/take.js +++ b/js/take.js @@ -15,7 +15,12 @@ export function writeTake(take) { // v1 emits a single frozen plate derived from the face oval. A real project // replaces this with hand-drawn angles referenced by cel frame; the record // shape is the same either way. - L.push(`plate 0 kind=poly slot_mouth=${r(take.slot.x)},${r(take.slot.y)} scale=1.00 rot=0 squash=1.00`); + L.push(`plate 0 kind=poly slot_mouth=${r(take.slot.x)},${r(take.slot.y)}` + + (take.eyeSlots + ? ` slot_eye_r=${r(take.eyeSlots.r.cx)},${r(take.eyeSlots.r.cy)},${r(take.eyeSlots.r.w)}` + + ` slot_eye_l=${r(take.eyeSlots.l.cx)},${r(take.eyeSlots.l.cy)},${r(take.eyeSlots.l.w)}` + : '') + + ` scale=1.00 rot=0 squash=1.00`); L.push(''); for (const part of take.parts) { const bits = [`part ${part.name.padEnd(9)} kind=${part.kind} z=${part.z}`]; @@ -23,6 +28,10 @@ export function writeTake(take) { if (part.kind === 'poly') bits.push('closed=1 fill=1'); bits.push(`interp=${part.interp}`); if (part.parent) bits.push(`parent=${part.parent}`); + // `clip` names a part this one is stencilled by, not merely drawn after. + // The iris needs it: at an extreme gaze the disc reaches past the lid, and + // ordering alone would put it on the cheek. + if (part.clip) bits.push(`clip=${part.clip}`); L.push(bits.join(' ')); } L.push(''); @@ -30,6 +39,20 @@ export function writeTake(take) { for (const k of part.keys) { if (k.hidden) { L.push(`key ${part.name.padEnd(9)} f=${k.f} hidden`); continue; } if (part.kind === 'plate') { L.push(`key ${part.name.padEnd(9)} f=${k.f} plate=${k.plate}`); continue; } + // A disc is three numbers, so it gets its own key shape rather than being + // pre-tessellated into a polygon here: the renderer draws a real circle + // with hard edges, and a five-pixel iris approximated by a polygon would + // lose a pixel off its silhouette on some frames and not others. + // A square, in whole pixels, at an integer centre. Same argument as the + // disc: the renderer is told the shape, not a polygon approximating it. + if (part.kind === 'rect') { + L.push(`key ${part.name.padEnd(9)} f=${k.f} src=${k.src} rect=${r(k.c.x)},${r(k.c.y)},${k.size}`); + continue; + } + if (part.kind === 'disc') { + L.push(`key ${part.name.padEnd(9)} f=${k.f} src=${k.src} disc=${r(k.c.x)},${r(k.c.y)},${r(k.r)}`); + continue; + } const pts = k.pts.map((p) => `${r(p.x)},${r(p.y)}`).join(' '); // f is authoritative (what renders); src is the pre-snap extreme frame, // kept only as a tuning signal - a key dragged far means the minimum-hold From 2e4406d579a926a10d82a9735a1c6c356547e327 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 24 Sep 2026 18:06:09 -0400 Subject: [PATCH 2/6] Swap the test clip for the diner take 105 frames at 24fps from a screen recording, replacing IMG_8486. Ripped dense on purpose now that exposure chooses the timing at render time. Near-frontal this is not - it is a 3/4 view, so residual will run high and it is the case the design doc says wants hand-drawn plates. That makes it the better test clip for the eyes: there is real gaze movement in it, and the out-of-plane bias on the projected iris offset is visible rather than hypothetical. frames/ is gitignored and regenerable: ./extract.sh 24 Co-Authored-By: Claude Opus 5 --- audio.wav | Bin 273352 -> 383454 bytes manifest.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/audio.wav b/audio.wav index 9c39a319a7a3dd9ceb2779a43c33e9ac24a76378..f5793b0e12f005cbf27a03179032446f0f954f4d 100644 GIT binary patch literal 383454 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

  • ^v&^qm8j2O~ty~N?aq}L;LGOxAYAv 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 z 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 literal 273352 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

    =t{wqf>C)gyi3+58yl6rLXGLZ4wt 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

    source + landmarks

    outer lip — · inner lip — · - lids — · iris —
    + lids — · iris — · + brows —

    b9w)7W&;rE3xTTXDycMNfihPAPR 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 Date: Thu, 24 Sep 2026 18:11:25 -0400 Subject: [PATCH 3/6] Brows: traced ring, quantised raise A brow at 320x200 is fourteen pixels wide and three tall. Its shape carries almost nothing at that size; its height above the eye carries the expression, and a brow raise is the most legible beat on a face. So the ring is traced and the height is quantised - the split the eyes already got, where the lid is a traced feature and the iris a quantised primitive. The decomposition is the point. The traced ring already contains the real height, so adding a quantised raise on top would move the brow twice. The height is measured OUT of the ring, quantised, and put back, so the shape that renders is his at a height that snaps between a few levels and holds. Measured at both ends rather than as one number, because raise and tilt are different expressions out of one mechanism: both ends up is surprise, inner up alone is worry, inner down is anger. They share a dwell - the gaze quantiser, renamed quantizeSnap now that it has two callers - so the brow hits its pose in one frame instead of crawling into it with one end arriving before the other. Measured against the eye's corner midpoint, never its lid. Same trap the gaze origin has and worth avoiding twice: brows and lids move together constantly, so a brow that jumped on every blink would read as a tic. Rest pose from the take median rather than the neutral frame, for the reason gaze learned the hard way - that frame is picked by minimum mouth aperture and says nothing about the brows. Two correspondences resolved from geometry, not declared: which ring is which brow, and which end is the outer one. The second matters more - backwards, the tilt mirrors and worry renders as its own opposite, which reads as a directed performance choice rather than a bug and would never be questioned. Which EDGE is upper is deliberately left unresolved: it traverses the same ring the other way, an even-odd fill has no winding, and both ends still land on fixed slots. Also fixes a bug from the exposure work: the live render applied exposure to the plate and the mouth but not to the eyes, so on 2s the preview and the export disagreed. A preview that disagrees with the export is the one bug this tool cannot afford. perfIndex now exists as a named thing so the two paths cannot drift apart again. 91 -> 105 assertions. Ground truth on all four synthetic brow poses, tilt separating worry from anger by sign, a blink not faking a raise, and a shared dwell never emitting a half-raised brow. Co-Authored-By: Claude Opus 5 --- README.md | 45 +++++++++++++++++- docs/design.md | 12 ++++- index.html | 14 +++++- js/app.js | 123 +++++++++++++++++++++++++++++++++++++++++++++--- js/landmarks.js | 31 ++++++++++++ js/pipeline.js | 86 +++++++++++++++++++++++++++++++-- js/selftest.js | 110 +++++++++++++++++++++++++++++++++++++++---- js/synth.js | 24 +++++++++- 8 files changed, 419 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 4cb8dda..009e817 100644 --- a/README.md +++ b/README.md @@ -201,6 +201,47 @@ other way round to prove it actually looks. | iris size | Diameter as a percentage of eye width. | | pupil | Square pupil in whole pixels. 0 = off. | +## Brows + +A brow at 320×200 is about fourteen pixels wide and three tall. Its **shape** +carries almost nothing at that size; its **height above the eye** carries the +expression, and a brow raise is the most legible beat on a face. So the ring is +traced and the height is quantised — the same split the eyes got, where the lid +is a traced feature and the iris a quantised primitive. + +The decomposition matters. The traced ring already contains the real height, so +adding a quantised raise on top would move the brow twice. Instead the height is +measured *out* of the ring, quantised, and put back: the shape that renders is +his, at a height that snaps between a few levels and holds. + +Height is measured at **both ends**, not as one number, because raise and tilt +are different expressions out of one mechanism — both ends up is surprise, inner +up alone is worry, inner down is anger. They share a dwell, so the brow hits its +pose in one frame instead of crawling into it with one end arriving first. + +It is measured against the eye's **corner midpoint**, never its lid — the same +trap the gaze origin has, and worth avoiding twice: brows and lids move together +constantly, so a brow that jumped on every blink would read as a tic. The rest +pose comes from the take **median**, not the neutral frame, for the same reason +gaze does: that frame is chosen by minimum mouth aperture and says nothing +whatever about the brows. + +Two correspondences are resolved from geometry rather than declared: which ring +is which brow, and which end of a ring is the outer one. The second matters more +— get it backwards and the tilt mirrors, so worry renders as its own opposite, +which reads as a directed performance choice and would never be questioned. +Which *edge* of the brow is the upper one is deliberately left unresolved: it +traverses the same ring the other way round, an even-odd fill has no winding, +and the two ends still land on fixed slots either way. + +| Knob | What it does | +| --- | --- | +| brow vertices | Ring vertex budget, off a 10-slot ring. | +| brow weight | Thickens the ring outward. It needs it at three pixels tall. | +| brow raise gain | Exaggerates or damps the raise. | +| brow step | The pixel grid the height snaps to. 0 = off. | +| brow dwell | How long a new height must hold. Shared across both ends. | + ## The plate is reference, not art The plate layer has several representations because its job changes. Cycle with @@ -268,7 +309,7 @@ chromium --headless --virtual-time-budget=8000 --dump-dom \ http://127.0.0.1:8777/selftest.html | grep -oE '(PASS|FAIL) [0-9/]+' ``` -Or open `selftest.html`. 88 assertions over the stages below detection, plus a +Or open `selftest.html`. 105 assertions over the stages below detection, plus a wiring cross-check: every `el('id')` in `app.js` must exist in `index.html`. A knob wired in one but not the other throws during wiring, which aborts the rest of the module and leaves a blank page — a symptom that points nowhere near its @@ -282,7 +323,7 @@ eyeball. ## Not done yet -Brows; hand-drawn head plates and per-plate mouth slots (the strip +Hand-drawn head plates and per-plate mouth slots (the strip decides *which frames need one*, but you cannot yet supply the drawing); real performer→character calibration (currently identity, fitting the face oval to the canvas); the override layer; anything on the Animator Pro side. The plate is a diff --git a/docs/design.md b/docs/design.md index bc7cdbe..9fd57d9 100644 --- a/docs/design.md +++ b/docs/design.md @@ -52,9 +52,17 @@ artist or a fixed authored table. | Kind | Source | Vocabulary | Interp | | --- | --- | --- | --- | | **Plate** — head, hair, body | Hand-drawn | Closed: a few drawings per character | hold | -| **Feature** — mouth, lids | Rotoscoped from landmarks | Open: derived from this take | hold | +| **Feature** — mouth, lids, brows | Rotoscoped from landmarks | Open: derived from this take | hold | | **Interior** — mouth interior, teeth | Image content within a feature | Open | hold | | **Primitive** — iris | Landmark centroid as a disc | Quantised | hold | +| **Scalar** — brow raise, gaze | One number out of a feature | Quantised | hold | + +The last row took the longest to see. A brow is a feature *and* a scalar: the +ring is traced because the shape should be his, but at three pixels tall the +shape carries almost nothing while the height above the eye carries the +expression. So the height is measured out of the traced ring, quantised, and put +back. Extracting the scalar without removing it first would move the part twice, +because the traced ring already contains the height. The asymmetry is deliberate, and it is the opposite choice in each case. @@ -290,7 +298,7 @@ Current modules: - **A paint surface.** The plates have nowhere to be drawn. This is the largest gap between "tool" and "suite": a pixel paint canvas with onion skin, palette constraint, and the registered underlay behind it. -- Brows as parts, and a tongue. +- A tongue. - Plate libraries with per-plate mouth slots. - Real performer→character calibration (currently identity). - The override layer. diff --git a/index.html b/index.html index 5902f86..9df6db8 100644 --- a/index.html +++ b/index.html @@ -102,7 +102,8 @@

  • stabilised (head-local)

    @@ -161,6 +162,11 @@ + + + + +
    mouth lead shifts the performance tracks earlier (positive) against @@ -183,6 +189,12 @@ value carries across takes. blink hold is the minimum length of a blink: a real blink is one frame at 12fps and a single frame of closed eye reads as a dropout, so it is extended to a beat. + brow step and brow dwell quantise the brow's HEIGHT above + the eye, not its shape — the traced ring is his, the height snaps between + a few levels and holds. Both ends move independently, so raise and tilt + come out of one control: both up is surprise, inner up is worry, inner + down is anger. brow weight thickens the ring, which it needs at + three pixels tall.
    pupil is a square, in whole pixels, 0 to turn it off: at this size a circle of radius 1.5 is a plus sign with the corners gnawed off and it changes shape as it moves, where a square stays the mark you drew.
    diff --git a/js/app.js b/js/app.js index c52fac1..266ca86 100644 --- a/js/app.js +++ b/js/app.js @@ -1,8 +1,10 @@ import { FaceLandmarker, FilesetResolver } from 'https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@1.0.1/vision_bundle.mjs'; import { LIPS_OUTER, LIPS_INNER, FACE_OVAL, - EYE_R_RING, EYE_L_RING, IRIS_A, IRIS_B } from './landmarks.js'; + EYE_R_RING, EYE_L_RING, IRIS_A, IRIS_B, + BROW_A_RING, BROW_B_RING } from './landmarks.js'; import { stabilize, toRasterRing, smoothContours, suggestPlateFrames, heldFrame, shiftIndex, - exposeIndex, eyeSignals, gazeOrigin, quantizeGaze, resolveBlink } from './pipeline.js'; + exposeIndex, eyeSignals, gazeOrigin, quantizeSnap, resolveBlink, + browSignals } from './pipeline.js'; import { IndexedRaster } from './raster.js'; import { drawRegistered, posterizeInto } from './underlay.js'; import { extractTeeth } from './interior.js'; @@ -31,8 +33,12 @@ const PALETTE = [ // step inside it reads as a hole. { name: 'iris', hex: '#4a5468' }, { name: 'pupil', hex: '#171a22' }, + // Brows get their own entry rather than sharing skin_dark with the lash line. + // They are hair, not shadow: when hair plates exist they want to match those, + // and tying them to the lash means you cannot change one without the other. + { name: 'brow', hex: '#3a2a22' }, ]; -const IDX = { bg: 0, base: 1, dark: 2, mouth: 3, teeth: 4, white: 5, iris: 6, pupil: 7 }; +const IDX = { bg: 0, base: 1, dark: 2, mouth: 3, teeth: 4, white: 5, iris: 6, pupil: 7, brow: 8 }; const state = { dense: null, images: [], stab: null, xform: null, @@ -46,6 +52,7 @@ const state = { interior: null, // per-frame teeth measurement from image content teeth: null, // resolved per-frame {show, t} after knobs eyes: null, // resolved per-frame lid rings, shut flags, iris discs + brows: null, // resolved per-frame brow rings after quantised raise eyeSig: null, // raw eye measurement, kept for the gaze readout }; @@ -72,6 +79,11 @@ const opts = () => ({ apertureThresh: +el('apertureThresh').value / 1000, tol: +el('tol').value / 1000, exposure: +el('exposure').value, + browVerts: +el('browVerts').value, + browWeight: +el('browWeight').value, + browGain: +el('browGain').value / 100, + browStep: +el('browStep').value, + browDwell: +el('browDwell').value, irisAnchor: el('irisAnchor').value, gazeOrigin: el('gazeOrigin').value, eyeVerts: +el('eyeVerts').value, @@ -226,6 +238,7 @@ function rebuild(resetKeep) { } state.teeth = resolveTeeth(o); state.eyes = buildEyes(o); + state.brows = buildBrows(o); // Plate outline per frame, so a kept frame shows its own head shape. state.plates = state.stab.oval.map((r) => r.map(state.xform)); @@ -341,7 +354,7 @@ function buildEyes(o) { x: (g.x - origin.x) * o.gazeGain * w, y: (g.y - origin.y) * o.gazeGain * w, })); - const gaze = quantizeGaze(px, o.gazeStep, o.gazeDwell); + const gaze = quantizeSnap(px, o.gazeStep, o.gazeDwell); const eye = (sk, lids, shut, rad, f) => { const e = sk(f); @@ -371,6 +384,70 @@ function buildEyes(o) { }; } +// Brows: ring traced every frame, HEIGHT quantised. +// +// The decomposition is the point. The traced ring already contains the brow's +// real height, so adding a quantised raise on top would move it twice. Instead +// the height is measured out of the ring, quantised, and put back - the shape +// that renders is his, at a height that snaps between a few authored levels and +// holds. That is the same split the eyes got: lid traced as a feature, iris +// position quantised as a primitive. +// +// Two ends, not one height, warped linearly between them. Raise and tilt are +// different expressions out of one mechanism: both ends up is surprise, inner +// up alone is worry, inner down is anger. +function buildBrows(o) { + const st = state.stab, N = state.dense.length; + const sig = browSignals(st); + state.browSig = sig; + + const ringOf = (side) => (side === 'R' ? sig.pairing.right : sig.pairing.left); + const table = (side) => (ringOf(side) === 'browA' ? BROW_A_RING : BROW_B_RING); + + const build = (side, corners) => { + const rings = smoothContours( + st[ringOf(side)].map((r) => toRasterRing(r, table(side), o.browVerts, state.xform)), + o.contourSmooth); + + // Eye width in raster pixels, so the raise converts from eye widths into the + // units the grid is expressed in and the knob means the same on any framing. + const wpx = (f) => { + const a = state.xform(corners[f][0]), b = state.xform(corners[f][1]); + return Math.hypot(a.x - b.x, a.y - b.y); + }; + const meanW = st.cornersR.reduce((a, _, f) => a + wpx(f), 0) / N; + + // Rest pose from the take MEDIAN, never from the neutral frame. That frame + // is chosen by minimum mouth aperture and says nothing about the brows, and + // the same mistake on the gaze origin re-pointed an entire performance. + const rest = gazeOrigin(sig[side], 'median'); + const px = sig[side].map((g) => ({ + x: (g.x - rest.x) * o.browGain * meanW, + y: (g.y - rest.y) * o.browGain * meanW, + })); + const q = quantizeSnap(px, o.browStep, o.browDwell); + + const frames = rings.map((ring, f) => { + // Raise is measured upward but y grows downward, so a positive raise is a + // negative y offset. + const dOuter = -(q[f].x - px[f].x), dInner = -(q[f].y - px[f].y); + const a = state.xform(corners[f][0]), b = state.xform(corners[f][1]); + const span = b.x - a.x; + const warped = ring.map((p) => { + // Position along the brow's own axis, outer end to inner end. Taken from + // x against the eye corners rather than from ring slots, because + // subsampling does not keep the end slots at any given budget. + const t = span === 0 ? 0 : Math.min(1, Math.max(0, (p.x - a.x) / span)); + return { x: p.x, y: p.y + dOuter + (dInner - dOuter) * t }; + }); + return offsetRing(warped, o.browWeight); + }); + return { frames, px, q }; + }; + + return { R: build('R', st.cornersR), L: build('L', st.cornersL), pairing: sig.pairing }; +} + // Presence gets hysteresis and a minimum dwell, the same treatment plate // selection gets: a teeth block that blinks on and off for single frames is // worse than one that is simply absent. Appearing needs a clear signal, staying @@ -440,7 +517,14 @@ function renderFrame(f, mode = plateMode()) { // device: it exists because a mouth shape anticipates the sound it makes. // Nothing about a blink or a glance is tied to the audio, so shifting the // eyes would only slide them off the head that carries them. - if (state.eyes) drawEyes(r, state.eyes.frames[f]); + // Eyes and brows ride the exposure grid but NOT the mouth lead: the lead is a + // lip-sync device and nothing about a blink or a brow is tied to the audio. + const ef = perfIndex(f); + if (state.eyes) drawEyes(r, state.eyes.frames[ef]); + if (state.brows) { + r.fillPoly(state.brows.R.frames[ef], IDX.brow); + r.fillPoly(state.brows.L.frames[ef], IDX.brow); + } const mf = leadIndex(f); // performance frame, possibly ahead r.fillPoly(state.outer[mf], IDX.dark); // mouth keeps every frame @@ -541,6 +625,12 @@ function leadIndex(f) { // even ones would read as two performances laid over each other. const plateIndex = (f) => heldFrame(keptSorted(), exposeIndex(f, state.exposure)); +// Performance tracks that do not take the mouth lead still ride the grid. This +// existing as a named thing is what stopped the eyes holding on 1s in the +// preview while the export held them on 2s - a preview that disagrees with the +// export is the one bug this tool cannot afford. +const perfIndex = (f) => exposeIndex(f, state.exposure); + function blit(canvas, raster, zoom) { canvas.width = RW * zoom; canvas.height = RH * zoom; canvas.getContext('2d').putImageData(raster.toImageData(PALETTE.map((p) => p.hex), zoom), 0, 0); @@ -563,6 +653,7 @@ function drawReadout() { `teeth on ${teethFrames}f · ` + `${blinkRuns(state.eyes.shutR).length}/${blinkRuns(state.eyes.shutL).length} blinks R/L · ` + `${gazeCells(state.eyes.gaze)} gaze cells · ` + + `${gazeCells(state.brows.R.q)} brow poses · ` + (state.exposure > 1 ? `on ${state.exposure}s = ${(state.fps / state.exposure).toFixed(4).replace(/\.?0+$/, '')}fps · ` : '') + @@ -688,6 +779,9 @@ function drawEyeOverlay(g, map, f) { for (const ring of [EYE_R_RING, EYE_L_RING]) { strokePts(g, ring.map((i) => map(lm[i])), '#60a5fa'); } + for (const ring of [BROW_A_RING, BROW_B_RING]) { + strokePts(g, ring.map((i) => map(lm[i])), '#c084fc'); + } if (!state.eyes.hasIris) return; for (const iris of [IRIS_A, IRIS_B]) { strokePts(g, iris.slice(1).map((i) => map(lm[i])), '#fbbf24'); @@ -839,7 +933,7 @@ function eyeParts(grid) { const out = []; // Eyes ride the exposure grid but NOT the mouth lead: the lead is a lip-sync // device and nothing about a blink is tied to the audio. - const src = (f) => exposeIndex(f, state.exposure); + const src = perfIndex; [['r', 20], ['l', 23]].forEach(([side, z]) => { const at = (f) => state.eyes.frames[src(f)][side]; out.push( @@ -871,6 +965,16 @@ function eyeParts(grid) { return out; } +// Brows are a traced ring like the lids, so they keep every frame on the grid. +// The quantised raise is already baked into the points - the renderer is handed +// a polygon, not a shape plus an offset it would have to recombine. +function browParts(grid) { + return [['r', 26, 'R'], ['l', 27, 'L']].map(([name, z, side]) => ({ + name: `brow_${name}`, kind: 'poly', z, color: 'brow', interp: 'hold', + keys: grid.map((f) => ({ f, src: perfIndex(f), pts: state.brows[side].frames[perfIndex(f)] })), + })); +} + function exportTake() { const kept = keptSorted(); const N = state.dense.length; @@ -903,6 +1007,7 @@ function exportTake() { // key stream is dense but the VALUES change only on saccades, so a // hold-interpolating renderer cuts between fixations by itself. ...eyeParts(grid), + ...browParts(grid), { name: 'teeth', kind: 'poly', z: 32, color: 'teeth', interp: 'hold', parent: 'mouth_in', keys: grid.map((f) => { const m = leadIndex(f), te = state.teeth[m]; @@ -991,6 +1096,9 @@ const FMT = { irisSize: (v) => `${v}%`, gazeGain: (v) => (v / 100).toFixed(2), gazeStep: (v) => (v ? `${v}px` : 'off'), + browStep: (v) => (v ? `${v}px` : 'off'), + browWeight: (v) => `${v}px`, + browGain: (v) => (v / 100).toFixed(2), pupilPx: (v) => (v ? `${v}px` : 'off'), lashPx: (v) => `${v}px`, lead: (v) => (v > 0 ? `+${v}` : String(v)), @@ -1000,7 +1108,8 @@ for (const id of ['verts', 'smoothWin', 'contourSmooth', 'apertureThresh', 'tol' 'teethOn', 'teethDwell', 'teethErode', 'tongueReject', 'blobGrow', 'topBias', 'teethVerts', 'teethSmooth', 'lead', 'eyeVerts', 'lashPx', 'irisSize', 'pupilPx', 'gazeGain', - 'gazeStep', 'gazeDwell', 'blinkCut', 'blinkHold', 'blinkDwell']) { + 'gazeStep', 'gazeDwell', 'blinkCut', 'blinkHold', 'blinkDwell', + 'browVerts', 'browWeight', 'browGain', 'browStep', 'browDwell']) { const show = () => { el(id + 'v').textContent = FMT[id] ? FMT[id](+el(id).value) : el(id).value; }; diff --git a/js/landmarks.js b/js/landmarks.js index ee0094b..e8e7b4a 100644 --- a/js/landmarks.js +++ b/js/landmarks.js @@ -95,3 +95,34 @@ export const EYE_L_LIDS = [386, 374]; // the geometry instead. export const IRIS_A = [468, 469, 470, 471, 472]; export const IRIS_B = [473, 474, 475, 476, 477]; + +// ---- brows ---- +// +// Each brow is two five-point chains, an upper edge and a lower edge, which +// close into a ten-point ring: out along one edge from the outer end to the +// inner, back along the other. +// +// WHICH EDGE IS UPPER IS DELIBERATELY NOT DECLARED, and unlike the iris it does +// not need to be. Swapping them traverses the same ring the other way round, +// and an even-odd fill has no winding, so the shape is identical either way. +// What the ring guarantees instead is that the two ENDS land on fixed slots: +// 0 and 9 are one end, 4 and 5 the other. Averaging a pair therefore gives the +// brow's height at that end whichever edge is on top, which is all the raise +// and tilt measurement needs. +// +// Which end is the OUTER one is resolved from geometry in pipeline.js, because +// getting it backwards mirrors the tilt - inner-up "worried" would render as +// outer-up - and that is a expression error, not a glitch, so it would read as +// a directed performance choice rather than as a bug. +export const BROW_A_RING = [ + 70, 63, 105, 66, 107, + 55, 65, 52, 53, 46, +]; +export const BROW_B_RING = [ + 300, 293, 334, 296, 336, + 285, 295, 282, 283, 276, +]; + +// The slots at each end of a brow ring, as pairs to average. +export const BROW_END_0 = [0, 9]; +export const BROW_END_1 = [4, 5]; diff --git a/js/pipeline.js b/js/pipeline.js index e004e72..85bfd30 100644 --- a/js/pipeline.js +++ b/js/pipeline.js @@ -4,7 +4,8 @@ import { RIGID, LIPS_OUTER, LIPS_INNER, APERTURE, FACE_OVAL, EYE_INNER, EYE_R_RING, EYE_L_RING, EYE_R_CORNERS, EYE_L_CORNERS, - EYE_R_LIDS, EYE_L_LIDS, IRIS_A, IRIS_B, subsampleSlots } from './landmarks.js'; + EYE_R_LIDS, EYE_L_LIDS, IRIS_A, IRIS_B, + BROW_A_RING, BROW_B_RING, BROW_END_0, BROW_END_1, subsampleSlots } from './landmarks.js'; import { fitSimilarity, applySimAll, applySim, fitResidual, procrustesMean, smoothTransforms, movingAverage } from './mathutil.js'; // MediaPipe normalises x by image WIDTH and y by image HEIGHT, so its normalised @@ -60,9 +61,81 @@ export function stabilize(dense, smoothRadius, aspect = 1) { lidsR: map(EYE_R_LIDS), lidsL: map(EYE_L_LIDS), irisA: hasIris ? map(IRIS_A) : null, irisB: hasIris ? map(IRIS_B) : null, + browA: map(BROW_A_RING), browB: map(BROW_B_RING), }; } +/* ---------- brows ---------- */ + +// Two correspondences resolved from geometry, for the same reason the iris +// pairing is: a wrong guess here is survivable enough to escape notice. +// +// Which ring is which brow follows MediaPipe's left/right naming, which is the +// naming that would have put the irises on the wrong eyes. Which END of a ring +// is the OUTER one matters more: get it backwards and the tilt mirrors, so +// inner-up "worried" renders as outer-up, which is a different expression +// rather than a broken one. It would read as a directed performance choice and +// never be questioned. +// +// Both are decided by voting across every frame against landmarks already known +// to be rigid, so one bad detection cannot swing them. +export function pairBrows(stab) { + const N = stab.browA.length; + const cen = (ring) => { + let x = 0; + for (const p of ring) x += p.x; + return x / ring.length; + }; + let side = 0, ends = 0; + for (let f = 0; f < N; f++) { + const cR = mid(stab.cornersR[f][0], stab.cornersR[f][1]).x; + const cL = mid(stab.cornersL[f][0], stab.cornersL[f][1]).x; + side += Math.abs(cen(stab.browA[f]) - cR) < Math.abs(cen(stab.browA[f]) - cL) ? 1 : -1; + + // EYE_R_CORNERS is [outer, inner], so this asks whether slot 0 of the ring + // sits nearer the eye's outer corner than its inner one. + const ring = side > 0 ? stab.browA[f] : stab.browB[f]; + const co = side > 0 ? stab.cornersR[f] : stab.cornersL[f]; + const s0 = ring[BROW_END_0[0]]; + ends += Math.abs(s0.x - co[0].x) < Math.abs(s0.x - co[1].x) ? 1 : -1; + } + return { + right: side > 0 ? 'browA' : 'browB', + left: side > 0 ? 'browB' : 'browA', + outerAtSlot0: ends > 0, + }; +} + +// Brow height above its own eye, at each end, in eye widths. +// +// Measured against the eye's CORNER MIDPOINT, not the lid: the corners are +// rigid, so a blink cannot read as a brow raise. That is the same trap the gaze +// origin has and it is worth avoiding twice - brows and lids move together +// constantly, and a brow that jumped on every blink would look like a tic. +// +// Two ends rather than one height, because raise and tilt are different +// expressions built from the same measurement: both ends up is surprise, inner +// up alone is worry, inner down is anger. One number could not tell them apart. +export function browSignals(stab) { + const N = stab.browA.length; + const pairing = pairBrows(stab); + const endOuter = pairing.outerAtSlot0 ? BROW_END_0 : BROW_END_1; + const endInner = pairing.outerAtSlot0 ? BROW_END_1 : BROW_END_0; + const out = { R: [], L: [], pairing }; + + for (let f = 0; f < N; f++) { + for (const [side, corners] of [['R', stab.cornersR], ['L', stab.cornersL]]) { + const ring = stab[pairing[side === 'R' ? 'right' : 'left']][f]; + const c = mid(corners[f][0], corners[f][1]); + const w = dist(corners[f][0], corners[f][1]); + const at = (pair) => (ring[pair[0]].y + ring[pair[1]].y) / 2; + // y grows downward, so a brow ABOVE the eye gives a positive raise. + out[side].push({ x: (c.y - at(endOuter)) / w, y: (c.y - at(endInner)) / w }); + } + } + return out; +} + /* ---------- eyes ---------- */ const mid = (a, b) => ({ x: (a.x + b.x) / 2, y: (a.y + b.y) / 2 }); @@ -200,7 +273,10 @@ export function gazeOrigin(gazeRaw, mode = 'median', neutral = 0, radius = 2) { return { x: mid1(gazeRaw.map((g) => g.x)), y: mid1(gazeRaw.map((g) => g.y)) }; } -// Snap gaze onto a grid, then require a new cell to hold before it takes. +// Snap a two-channel track onto a grid, then require a new cell to hold before +// it takes. Gaze uses it for (x, y); brows use it for (outer raise, inner raise), +// where sharing the dwell is the point - a brow whose inner end arrived a frame +// before its outer end would crawl instead of snapping. // // This is the "Primitive - quantised" row of the part table in docs/design.md, // and it is not a stylisation imposed on the truth: real eyes move in saccades, @@ -212,9 +288,9 @@ export function gazeOrigin(gazeRaw, mode = 'median', neutral = 0, radius = 2) { // The dwell is what stops a gaze parked on a cell boundary from chattering // between two cells forever. It is meaningless without a grid, because // continuous values never repeat, so step 0 short-circuits both. -export function quantizeGaze(gaze, step, dwell) { - if (!(step > 0)) return gaze.map((g) => ({ x: g.x, y: g.y })); - const q = gaze.map((g) => ({ +export function quantizeSnap(track, step, dwell) { + if (!(step > 0)) return track.map((g) => ({ x: g.x, y: g.y })); + const q = track.map((g) => ({ x: Math.round(g.x / step) * step, y: Math.round(g.y / step) * step, })); diff --git a/js/selftest.js b/js/selftest.js index ed58aa4..3ddf456 100644 --- a/js/selftest.js +++ b/js/selftest.js @@ -9,10 +9,12 @@ import { LIPS_OUTER, LIPS_INNER, FACE_OVAL, RIGID, subsampleSlots, subsampleRing, EYE_R_RING, EYE_L_RING, EYE_R_CORNERS, EYE_L_CORNERS, - EYE_R_LIDS, EYE_L_LIDS } from './landmarks.js'; + EYE_R_LIDS, EYE_L_LIDS, BROW_A_RING, BROW_B_RING, + BROW_END_0, BROW_END_1 } from './landmarks.js'; import { fitSimilarity, applySim, procrustesMean, smoothTransforms, offsetRing } from './mathutil.js'; import { stabilize, toRasterRing, smoothContours, selectKeys, activeKey, shiftIndex, - exposeIndex, eyeSignals, pairIrises, gazeOrigin, quantizeGaze, resolveBlink } from './pipeline.js'; + exposeIndex, eyeSignals, pairIrises, gazeOrigin, quantizeSnap, resolveBlink, + browSignals, pairBrows } from './pipeline.js'; import { IndexedRaster, hexToRgb } from './raster.js'; import { writeTake } from './take.js'; import { otsuForTest, scaleRing } from './interior.js'; @@ -479,19 +481,111 @@ export function run() { const px = sig.gazeRaw.map((g) => ({ x: (g.x - org.x) * 30, y: (g.y - org.y) * 30 })); const cells = (a) => new Set(a.map((g) => `${g.x},${g.y}`)).size; ok('quantisation collapses drift into a few fixations', - cells(quantizeGaze(px, 2, 2)) <= 6 && cells(px) > 40, - `${cells(px)} raw -> ${cells(quantizeGaze(px, 2, 2))} cells`); + cells(quantizeSnap(px, 2, 2)) <= 6 && cells(px) > 40, + `${cells(px)} raw -> ${cells(quantizeSnap(px, 2, 2))} cells`); ok('gaze step 0 leaves the track untouched', - quantizeGaze(px, 0, 2).every((g, i) => g.x === px[i].x && g.y === px[i].y)); + quantizeSnap(px, 0, 2).every((g, i) => g.x === px[i].x && g.y === px[i].y)); ok('quantised values land on the grid', - quantizeGaze(px, 2, 0).every((g) => Math.abs(g.x % 2) < 1e-9 && Math.abs(g.y % 2) < 1e-9)); + quantizeSnap(px, 2, 0).every((g) => Math.abs(g.x % 2) < 1e-9 && Math.abs(g.y % 2) < 1e-9)); // A one-frame excursion is noise; the dwell must swallow it. { const spike = [{ x: 0, y: 0 }, { x: 0, y: 0 }, { x: 4, y: 0 }, { x: 0, y: 0 }, { x: 0, y: 0 }]; ok('the dwell suppresses a one-frame gaze spike', - quantizeGaze(spike, 2, 1).every((g) => g.x === 0)); + quantizeSnap(spike, 2, 1).every((g) => g.x === 0)); ok('a sustained move still gets through', - quantizeGaze([...spike, { x: 4, y: 0 }, { x: 4, y: 0 }, { x: 4, y: 0 }], 2, 1).pop().x === 4); + quantizeSnap([...spike, { x: 4, y: 0 }, { x: 4, y: 0 }, { x: 4, y: 0 }], 2, 1).pop().x === 4); + } + } + + /* ---- brows ---- */ + + ok('brow rings have 10 distinct ids each', + new Set(BROW_A_RING).size === 10 && new Set(BROW_B_RING).size === 10); + ok('the brow rings share no landmark with each other, RIGID, or the lids', + !BROW_A_RING.some((i) => BROW_B_RING.includes(i)) && + ![...BROW_A_RING, ...BROW_B_RING].some((i) => + RIGID.includes(i) || EYE_R_RING.includes(i) || EYE_L_RING.includes(i)), + 'a brow in RIGID would bleed expression into the stabilisation'); + + { + let bad = null; + for (const [label, table] of [['A', BROW_A_RING], ['B', BROW_B_RING]]) { + for (let n = 4; n <= 10 && !bad; n += 2) { + const slots = subsampleSlots(table.length, n); + for (let f = 0; f < dense.length; f++) { + if (ringSelfIntersections(slots.map((sl) => dense[f][table[sl]])).length) { + bad = `${label} verts=${n} frame=${f}`; break; + } + } + } + } + ok('brow rings are simple at every vertex budget', !bad, bad || ''); + } + + { + const stB = stabilize(dense, 2); + const pr = pairBrows(stB); + ok('brow-to-eye pairing is resolved from geometry', + pr.right === 'browA' && pr.left === 'browB', JSON.stringify(pr)); + // Getting this backwards mirrors the tilt, so inner-up "worried" renders as + // outer-up. That is a different expression, not a broken one, which is + // exactly why it needs an assertion rather than an eyeball. + ok('the outer end of the brow ring is resolved from geometry', pr.outerAtSlot0 === true); + + // Both ends land on fixed slots whichever edge of the brow is on top, which + // is what lets the upper/lower ambiguity go unresolved without consequence. + ok('brow end slots are disjoint and cover both ends', + !BROW_END_0.some((i) => BROW_END_1.includes(i)) && + BROW_END_0.length === 2 && BROW_END_1.length === 2); + + // Ground truth: synth commands rest, surprise, worry and anger as heights + // above the eye centre in eye widths, holding each for thirteen frames. + const b = browSignals(stB); + const at = (f) => [b.R[f].x, b.R[f].y]; + const near = (v, want) => Math.abs(v - want) < 0.02; + ok('brow raise recovers the commanded rest pose', near(at(0)[0], 0.30) && near(at(0)[1], 0.30), + at(0).map((v) => v.toFixed(3)).join(', ')); + ok('brow raise recovers surprise - both ends up', + near(at(14)[0], 0.46) && near(at(14)[1], 0.46), at(14).map((v) => v.toFixed(3)).join(', ')); + ok('brow raise recovers worry - inner end only', + near(at(27)[0], 0.30) && near(at(27)[1], 0.44), at(27).map((v) => v.toFixed(3)).join(', ')); + ok('brow raise recovers anger - inner end down', + near(at(40)[0], 0.30) && near(at(40)[1], 0.18), at(40).map((v) => v.toFixed(3)).join(', ')); + + // Tilt must be a signed quantity that separates worry from anger. If the + // outer/inner resolution were mirrored these two would swap. + ok('tilt separates worry from anger by sign', + (at(27)[1] - at(27)[0]) > 0.08 && (at(40)[1] - at(40)[0]) < -0.08, + `worry ${(at(27)[1] - at(27)[0]).toFixed(3)}, anger ${(at(40)[1] - at(40)[0]).toFixed(3)}`); + + // A blink must not read as a brow raise: the raise is measured against the + // eye's rigid corners, not its lid, which is the same trap the gaze origin + // has and worth avoiding twice. + const dR = Math.abs(b.R[19].x - b.R[18].x); + ok('a blink does not fake a brow raise', dR < 0.01, `f18 -> f19 delta ${dR.toFixed(4)}`); + + // Quantisation: four sustained poses must come back as a handful of levels. + const rest = gazeOrigin(b.R, 'median'); + const px = b.R.map((g) => ({ x: (g.x - rest.x) * 60, y: (g.y - rest.y) * 60 })); + const cells = (a) => new Set(a.map((g) => `${g.x},${g.y}`)).size; + ok('brow quantisation collapses drift into a few poses', + cells(quantizeSnap(px, 2, 2)) <= 6 && cells(px) > 20, + `${cells(px)} raw -> ${cells(quantizeSnap(px, 2, 2))} poses`); + // The dwell is SHARED across both channels, and that is the whole reason + // brows reuse the gaze quantiser rather than running two independent ones. + // Here the outer end moves one frame before the inner: with a shared dwell + // the half-raised pose (2,0) is transient and never commits, so the brow + // snaps once. Two independent dwells would emit it and the brow would crawl + // into position over two frames instead of hitting it. + { + const staggered = [ + { x: 0, y: 0 }, { x: 0, y: 0 }, { x: 2, y: 0 }, + { x: 2, y: 2 }, { x: 2, y: 2 }, { x: 2, y: 2 }, + ]; + const out = quantizeSnap(staggered, 2, 1); + ok('a shared dwell never emits a half-raised brow', + !out.some((g) => g.x === 2 && g.y === 0), + out.map((g) => `${g.x},${g.y}`).join(' ')); } } diff --git a/js/synth.js b/js/synth.js index 6de5606..84252ba 100644 --- a/js/synth.js +++ b/js/synth.js @@ -6,7 +6,8 @@ // stabilisation against a KNOWN head motion, since real footage gives no ground // truth to compare against. import { LIPS_OUTER, LIPS_INNER, FACE_OVAL, RIGID, - EYE_R_RING, EYE_L_RING, IRIS_A, IRIS_B } from './landmarks.js'; + EYE_R_RING, EYE_L_RING, IRIS_A, IRIS_B, + BROW_A_RING, BROW_B_RING } from './landmarks.js'; const NUM = 478; @@ -84,6 +85,27 @@ export function synthDense(nFrames = 72, { swapIris = false } = {}) { eye(EYE_R_RING, -0.0515, 1, swapIris ? IRIS_B : IRIS_A); eye(EYE_L_RING, 0.0515, -1, swapIris ? IRIS_A : IRIS_B); + // Brows, held in four sustained poses so raise quantisation has genuine + // plateaux to find: rest, surprise (both ends up), worry (inner up only), + // anger (inner down). Commanded in eye widths above the eye centre so the + // measurement can be checked against a number rather than an eyeball. + const BROW = [[0.30, 0.30], [0.46, 0.46], [0.30, 0.44], [0.30, 0.18]]; + const [bOut, bIn] = BROW[Math.floor(t / 13) % BROW.length]; + const EYE_W = EYE_RX * 2, HALF = 0.006; // ring half-thickness + const brow = (ring, cx, outerSign) => { + // Slots 0-4 are one edge outer->inner, 5-9 the other inner->outer, so the + // ends land on {0,9} and {4,5} exactly as the table promises. + const n = ring.length, half = n / 2; + for (let k = 0; k < n; k++) { + const along = k < half ? k / (half - 1) : (n - 1 - k) / (half - 1); + const rise = bOut + (bIn - bOut) * along; + place(ring[k], cx + outerSign * (EYE_RX - along * EYE_W) * 1.05, + EYE_Y - rise * EYE_W + (k < half ? -HALF : HALF)); + } + }; + brow(BROW_A_RING, -0.0515, -1); + brow(BROW_B_RING, 0.0515, 1); + // Lip rings as ellipse arcs, traversed so ring ORDER matches the tables: // slot 0 = right corner, 5 = top centre, 10 = left corner, 15 = bottom // centre, with y growing downward. Getting this convention wrong swaps two From 9d516a03ac12c458c1f12d2fd6b0510c3c407532 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 24 Sep 2026 19:08:07 -0400 Subject: [PATCH 4/6] Paint: vector background cels on the kept frames A sketch, and labelled as one. It exists to test whether the aesthetic holds when a human draws the background rather than the tracker deriving it, and it is meant to be replaced by a real paint surface with onion skin and undo. Kept to one dependency-free module so throwing it away is a delete, not surgery. Cels are drawn on the frames that get their own drawing and hold until the next one - the same rule the plate follows, and literally the same lookup, so the two cannot disagree about what is on screen. Editing always targets the cel you can see, so you can scrub anywhere and keep drawing. Pen places vertices and closes on the first one. Edit drags vertices or whole shapes, shift-click inserts, alt-click removes. Layers stack front-at-top with per-layer colour, show/hide and reorder. Drag a strip thumbnail onto the canvas to seed this cel from that one, every layer, as a deep copy - sharing the point arrays would make two cels silently edit each other. Two rules are enforced rather than left to discipline: Colours are PALETTE INDICES, never RGB. Sampling colour from the source is the one move docs/design.md calls irrecoverable, and a paint tool is exactly where that discipline would leak, so the picker cannot express a colour outside the ramp. Vertices snap to the 320x200 grid. On a hard-edged indexed rasteriser a shape nudged by 0.4px moves an edge by a whole pixel or not at all depending on where it happens to land, so sub-pixel vertices shimmer instead of holding still. Drawings autosave to localStorage per take name. They are the only thing here a person made by hand; everything else regenerates. Not in the .take export yet. Also adds serve.py, a no-store dev server. python3 -m http.server sends Last-Modified and browsers cache ES modules on it hard enough that a reload serves a stale app.js against a fresh index.html: the new knobs appear, nothing wires them, no error fires, and it reads as "your feature does not work". That cost real time this session. Co-Authored-By: Claude Opus 5 --- README.md | 43 ++++++- index.html | 43 +++++++ js/app.js | 102 +++++++++++++++- js/paint.js | 345 ++++++++++++++++++++++++++++++++++++++++++++++++++++ serve.py | 28 +++++ 5 files changed, 558 insertions(+), 3 deletions(-) create mode 100644 js/paint.js create mode 100755 serve.py diff --git a/README.md b/README.md index 009e817..30a3d39 100644 --- a/README.md +++ b/README.md @@ -17,10 +17,15 @@ modern conveniences belong in the workflow, not the output. See ## Run ```sh -python3 -m http.server 8777 # from this directory -# open http://127.0.0.1:8777 +python3 serve.py # from this directory, then open 127.0.0.1:8777 ``` +Use `serve.py`, not `python3 -m http.server`. The latter sends `Last-Modified` +and browsers cache ES modules on it hard enough that a reload serves a stale +`js/app.js` against a fresh `index.html` — new knobs appear in the markup, nothing +wires them, no error is raised, and the symptom reads as "the feature does not +work". `serve.py` is the same server with `no-store`. + Static files and ES modules — no build step, no dependencies beyond MediaPipe's wasm, which is fetched from a CDN on first use. @@ -267,6 +272,40 @@ egg by construction, and no landmark precision fixes that. Hence the photo. **Save frame 4x** writes the current registered composite as a 1280×800 PNG to draw on. +## Paint — background cels + +**A sketch.** It exists to test whether the aesthetic holds when a human draws +the background instead of the tracker deriving it, and it is meant to be +replaced by a real paint surface with onion skin and undo. It is one dependency- +free module, `js/paint.js`, so throwing it away is a delete rather than surgery. + +Cels are drawn on the frames that get their own drawing and **hold until the +next one** — the same rule the plate follows, and literally the same lookup. You +can scrub anywhere and keep drawing on the cel you can see; the header says +which one you are editing and how far it holds. + +- **pen** — click to place vertices, click the green box on the first one (or + Enter / double-click) to close. +- **edit** — click a shape to select, drag a vertex or the whole shape, + Shift-click an edge to insert a vertex, Alt-click one to + remove it, Del to delete the layer. +- **Layers** stack Photoshop-style, front at the top, with per-layer colour, + show/hide and reorder. +- **Drag a frame** from the strip onto the canvas to seed this cel from that + one, every layer, as a deep copy. **Copy previous** does the same for the + previous kept frame, which is the case you reach for constantly. + +Two rules are enforced rather than left to discipline. Colours are **palette +indices**, so you cannot pick one that is not in the ramp — sampling colour from +the source is the one move `docs/design.md` says is irrecoverable. And vertices +**snap to the 320×200 grid**, because on a hard-edged indexed rasteriser a shape +nudged by 0.4px moves an edge by a whole pixel or not at all depending on where +it lands, which shimmers instead of holding. + +Drawings autosave to `localStorage` per take name. They are the only thing in +the tool a person made by hand; everything else regenerates. They are not in the +`.take` export yet. + ## Two kinds of sparseness Sparseness has two unrelated causes, and conflating them was the original design diff --git a/index.html b/index.html index 9df6db8..579e043 100644 --- a/index.html +++ b/index.html @@ -52,6 +52,19 @@ .sw { display:flex; align-items:center; gap:5px; color:var(--dim); font-size:11px; } .sw input { width:26px; height:20px; padding:0; border:1px solid var(--line); background:none; } .legend { color:var(--dim); font-size:11px; margin-top:6px; } + /* paint: a sketch, see js/paint.js */ + #cv-paint { border:1px solid var(--line); cursor:crosshair; touch-action:none; } + #cv-paint.drop { border-color:var(--ok); } + #paintlayers { flex:0 0 280px; max-height:600px; overflow:auto; } + .lay { display:flex; align-items:center; gap:5px; padding:3px 4px; border-radius:3px; + border:1px solid transparent; cursor:pointer; } + .lay.sel { border-color:var(--accent); background:#1c2130; } + .lay i { width:12px; height:12px; border-radius:2px; border:1px solid #0006; flex:0 0 auto; } + .lay b { flex:1; font-weight:400; color:var(--dim); font-size:11px; } + .lay.sel b { color:var(--fg); } + .lay select { font:inherit; font-size:10px; background:#1c2130; color:var(--dim); + border:1px solid var(--line); border-radius:2px; padding:1px 2px; max-width:88px; } + .lay button { padding:0 5px; font-size:11px; line-height:18px; } kbd { background:#1c2130; border:1px solid var(--line); border-radius:2px; padding:0 4px; color:var(--fg); font-size:11px; } @@ -229,6 +242,36 @@
    +
    +

    paint — background cels, drawn on the frames that get their own drawing

    +
    + + + + + +
    +
    + +
    +
    +
    +
    + pen click to place vertices · click the green box on the first one, or + Enter / double-click, to close · Esc cancels · + Backspace drops the last point
    + edit click a shape to select · drag a vertex or the shape itself · + Shift-click an edge inserts a vertex · Alt-click a vertex + removes it · Del deletes the layer
    + drag a frame from the strip onto the canvas to copy its drawing, every + layer. Vertices snap to the 320×200 grid, and colours are palette indices — + you cannot pick one that is not in the ramp. +
    +
    +

    drawings needed — registered reference per kept frame, with the range it holds

    diff --git a/js/app.js b/js/app.js index 266ca86..ea4eb46 100644 --- a/js/app.js +++ b/js/app.js @@ -11,6 +11,7 @@ import { extractTeeth } from './interior.js'; import { applySim, offsetRing } from './mathutil.js'; import { writeTake } from './take.js'; import { synthDense } from './synth.js'; +import { PaintUI, drawCel, cloneCel, newCel } from './paint.js'; const RW = 320, RH = 200, ZOOM = 2, THUMB = 92; @@ -53,6 +54,7 @@ const state = { teeth: null, // resolved per-frame {show, t} after knobs eyes: null, // resolved per-frame lid rings, shut flags, iris discs brows: null, // resolved per-frame brow rings after quantised raise + cels: new Map(), // kept frame -> hand-painted background layers eyeSig: null, // raw eye measurement, kept for the gaze readout }; @@ -510,7 +512,14 @@ function renderFrame(f, mode = plateMode()) { PALETTE.map((p) => p.hex)); } else { r.clear(IDX.bg); - if (mode === 'oval' || mode === 'oval+photo') r.fillPoly(state.plates[pf], IDX.base); + } + // Painted cels sit BEHIND the face and hold on the same frames the plate + // does - pf is already "the most recent kept frame at or before f", which is + // exactly the rule the user draws against: a cel holds until the next frame + // that has its own drawing. + drawCel(r, state.cels.get(pf), (i) => i); + if (mode !== 'posterize' && (mode === 'oval' || mode === 'oval+photo')) { + r.fillPoly(state.plates[pf], IDX.base); } // Eyes run on the CLOCK, not on the mouth lead. The lead is a lip-sync @@ -641,6 +650,7 @@ function drawAll() { drawStrip(); drawWorksheet(); drawReadout(); + drawPaint(); } function drawReadout() { @@ -885,6 +895,8 @@ function drawStrip() { const tag = document.createElement('span'); tag.textContent = f; cell.append(cv, tag); + cell.draggable = true; + cell.ondragstart = (ev) => ev.dataTransfer.setData('text/plain', String(f)); cell.onclick = (ev) => { seekTo(f); if (ev.shiftKey) toggle(f); @@ -1056,6 +1068,7 @@ async function runFrames() { el('scrub').max = dense.length - 1; state.frame = 0; labelExposure(); + loadCels(); rebuild(true); const dur = (dense.length / state.fps).toFixed(2); status(`${images.length} frames · ${images[0].naturalWidth}x${images[0].naturalHeight} · ` + @@ -1078,6 +1091,7 @@ function runSynthetic() { el('scrub').max = 71; state.frame = 0; labelExposure(); + loadCels(); rebuild(true); status('synthetic — exercises everything below detection', 'ok'); } @@ -1254,6 +1268,92 @@ PALETTE.forEach((p) => { el('palette').append(sw); }); +/* ---------- paint ---------- */ + +// The cel being edited is the one ON SCREEN, which is the most recent kept +// frame at or before the playhead. You can scrub anywhere and keep drawing on +// the cel you can see, rather than having to land exactly on a kept frame. +const celFrame = () => (state.dense ? plateIndex(state.frame) : 0); + +const paint = new PaintUI({ + canvas: el('cv-paint'), list: el('paintlayers'), info: el('paintinfo'), + zoom: 3, RW, RH, palette: PALETTE, + getCel: () => (state.dense ? (state.cels.get(celFrame()) || []) : []), + setCel: (cel) => { if (state.dense) state.cels.set(celFrame(), cel); }, + celAt: (f) => (state.dense ? state.cels.get(heldFrame(keptSorted(), f)) : null), + backing: (cv, z) => { + if (!state.dense) { + cv.width = RW * z; cv.height = RH * z; + const g = cv.getContext('2d'); + g.fillStyle = '#0d0f16'; g.fillRect(0, 0, cv.width, cv.height); + return; + } + compositeRender(cv, state.frame, z); + }, + onChange: () => { saveCels(); drawPanes(); drawStrip(); drawWorksheet(); }, +}); + +el('paintTool').addEventListener('change', () => { + paint.tool = el('paintTool').value; + paint.draft = null; + paint.render(); +}); +el('paintColor').addEventListener('change', () => { paint.color = +el('paintColor').value; }); +el('btn-celclear').onclick = () => { + if (!state.dense) return; + state.cels.set(celFrame(), newCel()); + paint.sel = -1; + paint.commit(); +}; +el('btn-celprev').onclick = () => { + // Copy the previous kept frame's finished drawing onto this one. The same + // thing the drag-and-drop does, for the case you reach for constantly. + if (!state.dense) return; + const kept = keptSorted(), here = celFrame(); + const prev = kept.filter((k) => k < here).pop(); + if (prev === undefined) { paint.say('no earlier drawing to copy'); return; } + const src = state.cels.get(prev); + if (!src || !src.length) { paint.say(`f${prev} has nothing to copy`); return; } + state.cels.set(here, cloneCel(src)); + paint.sel = -1; + paint.commit(); + paint.say(`copied f${prev} — ${src.length} layers`); +}; + +PALETTE.forEach((p, i) => { + const o = document.createElement('option'); + o.value = i; o.textContent = p.name; + el('paintColor').append(o); +}); +el('paintColor').value = 1; +paint.color = 1; + +// Drawings are the only thing here a person made by hand, so losing them to a +// reload would be the worst failure in the tool. Everything else regenerates. +const celKey = () => `arthur.cels.${el('takename').value || 'line_01'}`; +function saveCels() { + try { + localStorage.setItem(celKey(), JSON.stringify([...state.cels])); + } catch { /* private window, quota - not worth failing a brush stroke over */ } +} +function loadCels() { + state.cels = new Map(); + try { + const raw = localStorage.getItem(celKey()); + if (raw) state.cels = new Map(JSON.parse(raw).map(([k, v]) => [+k, v])); + } catch { /* corrupt or absent: start empty */ } +} + +function drawPaint() { + if (!state.dense) { paint.render(); return; } + const kept = keptSorted(), cf = celFrame(); + const until = (kept[kept.indexOf(cf) + 1] ?? state.dense.length) - 1; + el('paintframe').textContent = + `drawing cel f${cf}` + (until > cf ? ` — holds to f${until}` : '') + + (state.frame !== cf ? ` (playhead f${state.frame})` : ''); + paint.render(); +} + // #synth / #frames autorun, so the tool can be driven headlessly for smoke tests // and deep-linked. Detection needs WebGL; the synthetic path does not. window.addEventListener('error', (e) => { diff --git a/js/paint.js b/js/paint.js new file mode 100644 index 0000000..b50648a --- /dev/null +++ b/js/paint.js @@ -0,0 +1,345 @@ +// Vector cel painting: flat polygons on the frames that get their own drawing. +// +// THIS IS A SKETCH. It exists to test whether the aesthetic holds when a human +// draws the background rather than the tracker deriving it, and it is expected +// to be replaced by a real paint surface with onion skin, undo and a proper +// tool model. Deliberately kept to one module with no dependencies on the rest +// of the pipeline so that throwing it away is a delete rather than a surgery. +// +// The data model is the part worth keeping: +// +// cel = Layer[] index 0 is the BACK of the stack, last is the front +// Layer = { name, color, pts, hidden } +// +// `color` is a PALETTE INDEX, never an RGB value - the one rule from +// docs/design.md that a paint tool could most easily break. You cannot pick a +// colour here that is not already in the take's ramp. +// +// Points are integers in 320x200 raster space. Snapping is not a convenience: +// sub-pixel vertices on a hard-edged indexed rasteriser move an edge by a whole +// pixel or not at all depending on where the polygon happens to land, so a +// shape nudged by 0.4px shimmers instead of holding still. + +export const newCel = () => []; + +export const cloneCel = (cel) => + (cel || []).map((l) => ({ + name: l.name, color: l.color, hidden: !!l.hidden, + pts: l.pts.map((p) => ({ x: p.x, y: p.y })), + })); + +// Fill every visible layer back to front. Same rasteriser the derived parts +// use, so a painted shape and a traced one cannot look different. +export function drawCel(raster, cel, idxOf) { + if (!cel) return; + for (const l of cel) { + if (l.hidden || l.pts.length < 3) continue; + raster.fillPoly(l.pts, idxOf(l.color)); + } +} + +const pointInPoly = (pts, x, y) => { + let inside = false; + for (let i = 0, j = pts.length - 1; i < pts.length; j = i++) { + if ((pts[i].y > y) !== (pts[j].y > y) && + x < ((pts[j].x - pts[i].x) * (y - pts[i].y)) / (pts[j].y - pts[i].y) + pts[i].x) inside = !inside; + } + return inside; +}; + +// Distance from p to segment ab, and where along it the foot falls. +function segDist(p, a, b) { + const vx = b.x - a.x, vy = b.y - a.y; + const len = vx * vx + vy * vy; + const t = len ? Math.max(0, Math.min(1, ((p.x - a.x) * vx + (p.y - a.y) * vy) / len)) : 0; + const cx = a.x + t * vx, cy = a.y + t * vy; + return { d: Math.hypot(p.x - cx, p.y - cy), t }; +} + +export class PaintUI { + constructor(opts) { + this.canvas = opts.canvas; // where the cel is drawn and edited + this.list = opts.list; // layer stack DOM host + this.info = opts.info; // status line + this.zoom = opts.zoom || 3; + this.RW = opts.RW; this.RH = opts.RH; + this.palette = opts.palette; // [{name,hex}], index is the colour + this.getCel = opts.getCel; // () => Layer[] for the frame being edited + this.setCel = opts.setCel; // (Layer[]) => void + this.celAt = opts.celAt; // (frame) => Layer[] for drag-to-seed + this.backing = opts.backing; // (canvas, zoom) => void, paints what is under + this.onChange = opts.onChange; // commit + redraw everything else + + this.tool = 'pen'; + this.color = 1; + this.sel = -1; // selected layer index + this.draft = null; // in-progress pen path + this.drag = null; + + this.bind(); + } + + /* ---- geometry ---- */ + + at(ev) { + const r = this.canvas.getBoundingClientRect(); + // Snap to the raster grid. See the note at the top of the file. + return { + x: Math.round(((ev.clientX - r.left) / r.width) * this.RW), + y: Math.round(((ev.clientY - r.top) / r.height) * this.RH), + }; + } + + hit(p) { + const cel = this.getCel(); + const near = 3; + // Vertices of the SELECTED layer win over everything, so a vertex sitting + // under another shape stays grabbable instead of selecting the shape on top. + if (this.sel >= 0 && cel[this.sel]) { + const pts = cel[this.sel].pts; + for (let i = 0; i < pts.length; i++) { + if (Math.hypot(pts[i].x - p.x, pts[i].y - p.y) <= near) return { layer: this.sel, vertex: i }; + } + for (let i = 0; i < pts.length; i++) { + const s = segDist(p, pts[i], pts[(i + 1) % pts.length]); + if (s.d <= near / 2) return { layer: this.sel, edge: i }; + } + } + // Then shapes, front to back, so clicking picks what you can see. + for (let i = cel.length - 1; i >= 0; i--) { + if (!cel[i].hidden && cel[i].pts.length >= 3 && pointInPoly(cel[i].pts, p.x, p.y)) { + return { layer: i }; + } + } + return null; + } + + /* ---- editing ---- */ + + commit() { this.onChange(); this.render(); } + + addLayer(pts) { + const cel = this.getCel().slice(); + cel.push({ name: `shape ${cel.length + 1}`, color: this.color, hidden: false, pts }); + this.setCel(cel); + this.sel = cel.length - 1; + this.commit(); + } + + mutate(fn) { + const cel = cloneCel(this.getCel()); + fn(cel); + this.setCel(cel); + this.commit(); + } + + move(from, to) { + if (to < 0 || to >= this.getCel().length) return; + this.mutate((cel) => { cel.splice(to, 0, cel.splice(from, 1)[0]); }); + this.sel = to; + this.render(); + } + + bind() { + const c = this.canvas; + + c.addEventListener('mousedown', (ev) => { + ev.preventDefault(); + const p = this.at(ev); + + if (this.tool === 'pen') { + if (!this.draft) { this.draft = [p]; this.render(); return; } + const first = this.draft[0]; + // Closing on the first point is how you finish; three points minimum, + // because a two-point "polygon" fills nothing and looks like a bug. + if (this.draft.length >= 3 && Math.hypot(first.x - p.x, first.y - p.y) <= 3) { + const pts = this.draft; this.draft = null; this.addLayer(pts); return; + } + this.draft.push(p); this.render(); return; + } + + const h = this.hit(p); + if (!h) { this.sel = -1; this.render(); return; } + this.sel = h.layer; + + if (h.vertex !== undefined) { + if (ev.altKey) { + // Never below a triangle. + if (this.getCel()[h.layer].pts.length > 3) { + this.mutate((cel) => cel[h.layer].pts.splice(h.vertex, 1)); + } + return; + } + this.drag = { kind: 'vertex', layer: h.layer, vertex: h.vertex }; + this.render(); return; + } + if (h.edge !== undefined && ev.shiftKey) { + this.mutate((cel) => cel[h.layer].pts.splice(h.edge + 1, 0, { x: p.x, y: p.y })); + this.drag = { kind: 'vertex', layer: h.layer, vertex: h.edge + 1 }; + return; + } + this.drag = { kind: 'shape', layer: h.layer, from: p }; + this.render(); + }); + + window.addEventListener('mousemove', (ev) => { + if (!this.drag) return; + const p = this.at(ev); + const d = this.drag; + const cel = this.getCel(); + if (d.kind === 'vertex') { + const v = cel[d.layer].pts[d.vertex]; + if (v.x === p.x && v.y === p.y) return; + v.x = p.x; v.y = p.y; + } else { + const dx = p.x - d.from.x, dy = p.y - d.from.y; + if (!dx && !dy) return; + for (const q of cel[d.layer].pts) { q.x += dx; q.y += dy; } + d.from = p; + } + this.render(); + }); + + window.addEventListener('mouseup', () => { + if (!this.drag) return; + this.drag = null; + this.commit(); + }); + + c.addEventListener('dblclick', (ev) => { + ev.preventDefault(); + if (this.tool === 'pen' && this.draft && this.draft.length >= 3) { + const pts = this.draft; this.draft = null; this.addLayer(pts); + } + }); + + // Seed from another frame: drag a strip thumbnail onto the canvas and take + // a copy of whatever that frame is showing, every layer. Copy, never + // reference - two cels sharing a layer object would edit each other and the + // reason would be invisible. + c.addEventListener('dragover', (ev) => { ev.preventDefault(); c.classList.add('drop'); }); + c.addEventListener('dragleave', () => c.classList.remove('drop')); + c.addEventListener('drop', (ev) => { + ev.preventDefault(); + c.classList.remove('drop'); + const f = +ev.dataTransfer.getData('text/plain'); + if (!Number.isFinite(f)) return; + const src = this.celAt(f); + if (!src || !src.length) { this.say(`f${f} has nothing to copy`); return; } + this.setCel(cloneCel(src)); + this.sel = -1; + this.commit(); + this.say(`seeded from f${f} — ${src.length} layers`); + }); + + window.addEventListener('keydown', (ev) => { + if (ev.target.tagName === 'INPUT' || ev.target.tagName === 'SELECT') return; + if (!this.focused) return; + if (ev.key === 'Escape' && this.draft) { this.draft = null; this.render(); ev.preventDefault(); } + else if (ev.key === 'Enter' && this.draft && this.draft.length >= 3) { + const pts = this.draft; this.draft = null; this.addLayer(pts); ev.preventDefault(); + } else if (ev.key === 'Backspace' && this.draft) { + this.draft.pop(); if (!this.draft.length) this.draft = null; + this.render(); ev.preventDefault(); + } else if ((ev.key === 'Delete' || ev.key === 'Backspace') && this.sel >= 0) { + this.mutate((cel) => cel.splice(this.sel, 1)); + this.sel = -1; ev.preventDefault(); + } + }); + + // The paint canvas takes the keyboard only while the pointer is over it, so + // the main window's frame stepping keeps working everywhere else. + c.addEventListener('mouseenter', () => { this.focused = true; }); + c.addEventListener('mouseleave', () => { this.focused = false; }); + } + + say(msg) { if (this.info) this.info.textContent = msg; } + + /* ---- drawing ---- */ + + render() { + const z = this.zoom, c = this.canvas; + this.backing(c, z); // the composited frame, cels included + const g = c.getContext('2d'); + + const cel = this.getCel(); + g.lineWidth = 1; + cel.forEach((l, i) => { + if (l.pts.length < 2) return; + const on = i === this.sel; + // Unselected outlines stay faint: they are there so you can find a shape + // to click, not so you can read them. + g.strokeStyle = l.hidden ? '#f8717166' : (on ? '#fbbf24' : '#ffffff33'); + g.beginPath(); + l.pts.forEach((p, k) => (k ? g.lineTo(p.x * z, p.y * z) : g.moveTo(p.x * z, p.y * z))); + g.closePath(); g.stroke(); + if (!on) return; + g.fillStyle = '#fbbf24'; + for (const p of l.pts) g.fillRect(p.x * z - 2, p.y * z - 2, 5, 5); + }); + + if (this.draft) { + g.strokeStyle = '#4ade80'; + g.beginPath(); + this.draft.forEach((p, k) => (k ? g.lineTo(p.x * z, p.y * z) : g.moveTo(p.x * z, p.y * z))); + g.stroke(); + g.fillStyle = '#4ade80'; + for (const p of this.draft) g.fillRect(p.x * z - 2, p.y * z - 2, 5, 5); + // The closing target, so "click here to finish" is visible rather than + // something you have to know. + if (this.draft.length >= 3) { + g.strokeStyle = '#4ade80'; + g.strokeRect(this.draft[0].x * z - 4, this.draft[0].y * z - 4, 9, 9); + } + } + this.renderList(); + } + + renderList() { + const cel = this.getCel(); + this.list.innerHTML = ''; + // Top of the list is the FRONT of the stack, the way a layers panel reads. + for (let i = cel.length - 1; i >= 0; i--) { + const l = cel[i]; + const row = document.createElement('div'); + row.className = 'lay' + (i === this.sel ? ' sel' : ''); + + const sw = document.createElement('select'); + this.palette.forEach((p, k) => { + const o = document.createElement('option'); + o.value = k; o.textContent = p.name; + sw.append(o); + }); + sw.value = l.color; + sw.onchange = () => this.mutate((cc) => { cc[i].color = +sw.value; }); + + const chip = document.createElement('i'); + chip.style.background = this.palette[l.color] ? this.palette[l.color].hex : '#f0f'; + + const nm = document.createElement('b'); + nm.textContent = l.name; + nm.onclick = () => { this.sel = i; this.render(); }; + + const btn = (txt, title, fn) => { + const b = document.createElement('button'); + b.textContent = txt; b.title = title; + b.onclick = (e) => { e.stopPropagation(); fn(); }; + return b; + }; + + row.append(chip, sw, nm, + btn('↑', 'forward', () => this.move(i, i + 1)), + btn('↓', 'back', () => this.move(i, i - 1)), + btn(l.hidden ? '◻' : '◼', 'show/hide', () => this.mutate((cc) => { cc[i].hidden = !cc[i].hidden; })), + btn('✕', 'delete', () => { this.mutate((cc) => cc.splice(i, 1)); this.sel = -1; })); + row.onclick = () => { this.sel = i; this.render(); }; + this.list.append(row); + } + if (!cel.length) { + const e = document.createElement('div'); + e.className = 'legend'; + e.textContent = 'no layers — draw with the pen, or drag a frame here to copy its drawing'; + this.list.append(e); + } + } +} diff --git a/serve.py b/serve.py new file mode 100755 index 0000000..36139d3 --- /dev/null +++ b/serve.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python3 +"""Dev server that refuses to cache anything. + +`python3 -m http.server` sends Last-Modified, and browsers cache ES modules on +it hard enough that a reload can serve a stale js/app.js against a fresh +index.html. That failure is silent and points nowhere near its cause: the new +knobs appear in the markup, nothing wires them, no error is raised, and the +symptom reads as "the feature you just added does not work". +""" +import sys +from http.server import SimpleHTTPRequestHandler, ThreadingHTTPServer + + +class NoCache(SimpleHTTPRequestHandler): + def end_headers(self): + self.send_header('Cache-Control', 'no-store, must-revalidate') + self.send_header('Expires', '0') + super().end_headers() + + def log_message(self, fmt, *args): + if '304' not in fmt % args: + super().log_message(fmt, *args) + + +if __name__ == '__main__': + port = int(sys.argv[1]) if len(sys.argv) > 1 else 8777 + print(f'http://127.0.0.1:{port} (no-store)') + ThreadingHTTPServer(('127.0.0.1', port), NoCache).serve_forever() From b68deb838aeb0fe30f5386f85e659f677dfccc6c Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 24 Sep 2026 19:25:15 -0400 Subject: [PATCH 5/6] Paint: copy previous should skip empty frames Copy previous looked for the nearest earlier ENABLED frame, and every frame is enabled until you thin the strip out - so it resolved to f-1, which has nothing on it, and the button appeared to only ever copy the immediate sibling while reporting "nothing to copy". It now takes the nearest earlier enabled frame that actually carries a drawing. That behaves identically before and after you curate the strip, which is the point: the rhythm of the drawings should not depend on whether you have got round to deleting frames yet. Cels stay tied to the keep-set. They are plate drawings and they hold until the next enabled frame, as originally specified - an earlier version of this commit gave them their own independent set, which is wrong for what they are. Frames carrying a drawing are now marked in the strip, because "copy previous" reaching back to a frame you cannot see is not much better than it reaching to the wrong one. Also fixes stale paint labels: onChange refreshed the strip and the panes but not the paint header, so the drawn-frames readout lagged a copy behind. Split the text update out of drawPaint so it can run from inside commit() without re-rendering the canvas underneath itself. Co-Authored-By: Claude Opus 5 --- README.md | 11 ++++++++--- index.html | 6 ++++++ js/app.js | 46 ++++++++++++++++++++++++++++++++++------------ 3 files changed, 48 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 30a3d39..8f13ce7 100644 --- a/README.md +++ b/README.md @@ -291,9 +291,14 @@ which one you are editing and how far it holds. remove it, Del to delete the layer. - **Layers** stack Photoshop-style, front at the top, with per-layer colour, show/hide and reorder. -- **Drag a frame** from the strip onto the canvas to seed this cel from that - one, every layer, as a deep copy. **Copy previous** does the same for the - previous kept frame, which is the case you reach for constantly. +- **Copy previous** brings the last drawing forward onto this frame. It means + the nearest earlier enabled frame that *actually has* a drawing, skipping the + empty ones — every frame is enabled until you thin the strip out, so the naive + rule resolved to `f-1` and it looked like it only ever copied the frame to the + left. **Drag a frame** from the strip onto the canvas to seed from any other + frame instead. Both deep-copy; the two cels never share point arrays. +- Frames carrying a drawing are marked **▣** in the strip, so you can see the + rhythm rather than having to remember it. Two rules are enforced rather than left to discipline. Colours are **palette indices**, so you cannot pick one that is not in the ramp — sampling colour from diff --git a/index.html b/index.html index 579e043..c25ba54 100644 --- a/index.html +++ b/index.html @@ -42,6 +42,8 @@ .fr.drop { border-color:#2a2f3e; } .fr.drop canvas { opacity:.26; filter:grayscale(1); } .fr.cur { border-color:var(--accent); } + .fr.cel::before { content:'▣'; position:absolute; left:3px; top:1px; color:#c084fc; + font-size:10px; text-shadow:0 0 2px #000; } .fr.keep::after { content:'●'; position:absolute; right:3px; top:1px; color:var(--ok); font-size:10px; } #sheet { display:flex; flex-wrap:wrap; gap:10px; } @@ -259,6 +261,7 @@
    +
    pen click to place vertices · click the green box on the first one, or Enter / double-click, to close · Esc cancels · @@ -266,6 +269,9 @@ edit click a shape to select · drag a vertex or the shape itself · Shift-click an edge inserts a vertex · Alt-click a vertex removes it · Del deletes the layer
    + Copy previous takes the last enabled frame that actually has a drawing + — skipping empty ones, so it behaves the same before and after you thin the + strip out. Frames carrying a drawing are marked ▣.
    drag a frame from the strip onto the canvas to copy its drawing, every layer. Vertices snap to the 320×200 grid, and colours are palette indices — you cannot pick one that is not in the ramp. diff --git a/js/app.js b/js/app.js index ea4eb46..8338a3b 100644 --- a/js/app.js +++ b/js/app.js @@ -894,6 +894,10 @@ function drawStrip() { const tag = document.createElement('span'); tag.textContent = f; + // Mark the frames that actually carry a drawing. Without it the only way to + // know where your cels are is to scrub and look, and "copy previous" then + // reaches back to somewhere you cannot see. + if ((state.cels.get(f) || []).length) cell.classList.add('cel'); cell.append(cv, tag); cell.draggable = true; cell.ondragstart = (ev) => ev.dataTransfer.setData('text/plain', String(f)); @@ -1290,7 +1294,9 @@ const paint = new PaintUI({ } compositeRender(cv, state.frame, z); }, - onChange: () => { saveCels(); drawPanes(); drawStrip(); drawWorksheet(); }, + // paintLabels, not drawPaint: drawPaint re-renders the canvas, and this runs + // from inside commit(), which renders immediately afterwards anyway. + onChange: () => { saveCels(); paintLabels(); drawPanes(); drawStrip(); drawWorksheet(); }, }); el('paintTool').addEventListener('change', () => { @@ -1306,18 +1312,25 @@ el('btn-celclear').onclick = () => { paint.commit(); }; el('btn-celprev').onclick = () => { - // Copy the previous kept frame's finished drawing onto this one. The same - // thing the drag-and-drop does, for the case you reach for constantly. + // Copy the last finished drawing onto this one - the case you reach for + // constantly, stepping forward and carrying the previous cel with you. + // + // "The last drawing" means the nearest earlier enabled frame that ACTUALLY + // HAS one, not simply the nearest earlier enabled frame. Every frame is + // enabled until you curate the strip, so the naive rule resolved to f-1, + // which is empty, and the button looked like it only ever copied the frame + // immediately to the left. Skipping the empties makes it behave the same + // before and after you thin the strip out. if (!state.dense) return; - const kept = keptSorted(), here = celFrame(); - const prev = kept.filter((k) => k < here).pop(); + const here = celFrame(); + const prev = keptSorted() + .filter((k) => k < here && (state.cels.get(k) || []).length) + .pop(); if (prev === undefined) { paint.say('no earlier drawing to copy'); return; } - const src = state.cels.get(prev); - if (!src || !src.length) { paint.say(`f${prev} has nothing to copy`); return; } - state.cels.set(here, cloneCel(src)); + state.cels.set(here, cloneCel(state.cels.get(prev))); paint.sel = -1; paint.commit(); - paint.say(`copied f${prev} — ${src.length} layers`); + paint.say(`copied f${prev} → f${here} — ${state.cels.get(here).length} layers`); }; PALETTE.forEach((p, i) => { @@ -1345,13 +1358,21 @@ function loadCels() { } function drawPaint() { - if (!state.dense) { paint.render(); return; } + paintLabels(); + paint.render(); +} + +function paintLabels() { + if (!state.dense) return; const kept = keptSorted(), cf = celFrame(); const until = (kept[kept.indexOf(cf) + 1] ?? state.dense.length) - 1; + const drawn = kept.filter((k) => (state.cels.get(k) || []).length); el('paintframe').textContent = `drawing cel f${cf}` + (until > cf ? ` — holds to f${until}` : '') + - (state.frame !== cf ? ` (playhead f${state.frame})` : ''); - paint.render(); + (state.frame !== cf ? ` · playhead f${state.frame}` : ''); + el('paintcels').textContent = drawn.length + ? `${drawn.length} drawn: ${drawn.join(' ')}` + : 'nothing drawn yet'; } // #synth / #frames autorun, so the tool can be driven headlessly for smoke tests @@ -1368,3 +1389,4 @@ else status('ready — Load frames, then step with \u2190 \u2192 and delete with window.__roto = state; // headless smoke test reads this window.__render = compositeRender; // ...and renders arbitrary frames off-screen window.__lead = leadIndex; // ...and resolves the performance frame +window.__drawAll = drawAll; // ...and forces a full redraw From 082d8561d2a84fd88c7218ec49087806ed8f0436 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 25 Sep 2026 12:55:01 -0400 Subject: [PATCH 6/6] idk --- index.html | 11 ++++++++ js/app.js | 77 ++++++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 71 insertions(+), 17 deletions(-) diff --git a/index.html b/index.html index c25ba54..31b4e0c 100644 --- a/index.html +++ b/index.html @@ -252,6 +252,12 @@ + @@ -269,6 +275,11 @@ edit click a shape to select · drag a vertex or the shape itself · Shift-click an edge inserts a vertex · Alt-click a vertex removes it · Del deletes the layer
    + opacity dims the drawing over the registered source frame so you can + trace it. It is an editing aid only — never rasterised, never exported, and + the flat render is untouched. At 100% the view is exactly the normal + composite; below it the placeholder oval is dropped, since it covers the + face you turned the slider down to see.
    Copy previous takes the last enabled frame that actually has a drawing — skipping empty ones, so it behaves the same before and after you thin the strip out. Frames carrying a drawing are marked ▣.
    diff --git a/js/app.js b/js/app.js index 8338a3b..79e9a0e 100644 --- a/js/app.js +++ b/js/app.js @@ -586,23 +586,31 @@ function compositeRender(canvas, f, zoom) { mode === 'photo-dim' ? 0.34 : 1); } - const r = renderFrame(f, mode === 'oval+photo' ? 'oval' : (showPhoto ? 'off' : mode)); - const img2 = r.toImageData(PALETTE.map((p) => p.hex), zoom); - if (showPhoto) { - // Keep the photo visible wherever the indexed layer is background. - const bg = PALETTE[IDX.bg].hex.replace('#', ''); - const br = parseInt(bg.slice(0, 2), 16), bgn = parseInt(bg.slice(2, 4), 16), bb = parseInt(bg.slice(4, 6), 16); - const d = img2.data; - for (let i = 0; i < d.length; i += 4) { - if (d[i] === br && d[i + 1] === bgn && d[i + 2] === bb) d[i + 3] = 0; - } - const tmp = document.createElement('canvas'); - tmp.width = img2.width; tmp.height = img2.height; - tmp.getContext('2d').putImageData(img2, 0, 0); - g.drawImage(tmp, 0, 0); - } else { - g.putImageData(img2, 0, 0); + blitIndexed(g, renderFrame(f, mode === 'oval+photo' ? 'oval' : (showPhoto ? 'off' : mode)), + zoom, showPhoto); +} + +// Put an indexed raster onto a 2D context. With `keyBg`, background pixels go +// transparent instead of opaque, so whatever was painted underneath - a +// registered photograph, usually - stays visible through them. +// +// Split out of compositeRender so the paint canvas can draw the same pixels at +// a reduced globalAlpha. Nothing else is different about that path, which is +// what keeps the editing view honest: you are dimming the render, not looking +// at a second renderer that might disagree with it. +function blitIndexed(g, raster, zoom, keyBg) { + const img = raster.toImageData(PALETTE.map((p) => p.hex), zoom); + if (!keyBg) { g.putImageData(img, 0, 0); return; } + const bg = PALETTE[IDX.bg].hex.replace('#', ''); + const br = parseInt(bg.slice(0, 2), 16), bgn = parseInt(bg.slice(2, 4), 16), bb = parseInt(bg.slice(4, 6), 16); + const d = img.data; + for (let i = 0; i < d.length; i += 4) { + if (d[i] === br && d[i + 1] === bgn && d[i + 2] === bb) d[i + 3] = 0; } + const tmp = document.createElement('canvas'); + tmp.width = img.width; tmp.height = img.height; + tmp.getContext('2d').putImageData(img, 0, 0); + g.drawImage(tmp, 0, 0); } const keptSorted = () => [...state.keep].sort((a, b) => a - b); @@ -1292,7 +1300,11 @@ const paint = new PaintUI({ g.fillStyle = '#0d0f16'; g.fillRect(0, 0, cv.width, cv.height); return; } - compositeRender(cv, state.frame, z); + const op = +el('paintOpacity').value / 100; + // At 100% this is exactly the normal composite, so the slider changes + // nothing at all until you reach for it. + if (op >= 1) { compositeRender(cv, state.frame, z); return; } + paintGhost(cv, z, op); }, // paintLabels, not drawPaint: drawPaint re-renders the canvas, and this runs // from inside commit(), which renders immediately afterwards anyway. @@ -1305,6 +1317,11 @@ el('paintTool').addEventListener('change', () => { paint.render(); }); el('paintColor').addEventListener('change', () => { paint.color = +el('paintColor').value; }); +el('paintOpacity').addEventListener('input', () => { + el('paintOpacityv').textContent = `${el('paintOpacity').value}%`; + paint.render(); +}); +el('paintOpacityv').textContent = `${el('paintOpacity').value}%`; el('btn-celclear').onclick = () => { if (!state.dense) return; state.cels.set(celFrame(), newCel()); @@ -1362,6 +1379,32 @@ function drawPaint() { paint.render(); } +// The drawing dimmed over the source frame, for tracing. +// +// An EDITING AID ONLY - opacity is never written to the raster, never exported, +// and the flat render is untouched. Nothing here may reach the output: a +// translucent fill is the one thing this format cannot express, so if it ever +// leaked into the rasteriser it would have to be flattened against a background +// and would silently become a colour that is not in the ramp. +// +// The plate oval is deliberately not drawn. It is a stand-in for art that does +// not exist yet, and it covers the performer's face in flat skin - which is +// exactly the part of the frame you turned the opacity down to look at. +function paintGhost(cv, z, op) { + cv.width = RW * z; cv.height = RH * z; + const g = cv.getContext('2d'); + g.fillStyle = PALETTE[IDX.bg].hex; + g.fillRect(0, 0, cv.width, cv.height); + + const f = state.frame, pf = plateIndex(f); + const img = state.images[pf]; + if (img) drawRegistered(g, img, state.stab.transforms[pf], state.xform, z, 1); + + g.globalAlpha = op; + blitIndexed(g, renderFrame(f, 'off'), z, !!img); + g.globalAlpha = 1; +} + function paintLabels() { if (!state.dense) return; const kept = keptSorted(), cf = celFrame();