1.1
Five identities the whole engine is built from.
Every section below is an instance of one of these. They are named here once, and referred to by name afterwards.
| Identity | Rule | Appears in |
|---|---|---|
| Normalized frame | Every geometric quantity is expressed in one coordinate system: cell centres and the pointer are mapped to a square of half-width 1 by max(1, min(W, H) / 2). Cell indices appear only at the quantize step. | Grid, field, pulses, distortion, pointer, scan |
| Inverse map | A transform never scatters values forward; the output cell is traced back to the one source cell it reads. Every output cell has exactly one value or is blank. | Push, whirl, intro |
| Envelope list | An effect is a list of start times. Its amplitude at any instant is a half-sine over the effect lifetime, summed over live starts and clamped; expired starts are dropped. No state machine. | Whirl, push, distortion, pulses, intro phases |
| Scalar then glyph | A source yields a value in [0, 1]; mixing, distortion and pulses act on the value; quantization to the ramp is the last step and the only place a glyph is chosen. Logo is the one exception: it yields a glyph directly. | Sources, morph, quantization |
| Dither as mixer | Any per-cell binary choice during a transition compares a fixed hash of the cell, dither(column, row, salt), against a progress scalar. Change scatters; nothing wipes. | Morph, intro build and dissolve, logo reveal |
| Measure, clamp, rebuild | Layout is derived from the live font and container, clamped to a fixed range, and every raster that depends on it is rebuilt at once. | Grid, logo raster, mark raster, scan canvas |