DESIGN.md@films/examples/tracking-hud · git:20261010.7b9fd03 · 2026-10-10 · sha256 caa1d2424d1789cb
DESIGN.md@films/examples/tracking-hud git:20261010.7b9fd03A
Immutable. This exact content never changes and is served at /api/v1/blob/caa1d2424d1789cb.
# tracking-hud: design system An 8 s film in the look of a computer-vision tracking HUD. The screen is plain HTML (`#screen`, 1920 x 1080 px, tokens and parts in `kit/kit.css`). `core/surfaces/lens.js` films it, so the CRT look comes from the lens and not from CSS. Style after a tracking-HUD test by Michael Nowak (@mnowakdesign); no frames, words or layouts of his are used. ## Screen (HTML) - One `section.shot` per world (`data-world` s1 to s16), built from the `SHOTS` table in `page.html`. - Words: Archivo 800, tracking -0.035em. Code: JetBrains Mono 700. Labels: JetBrains Mono 500, chrome (`aria-hidden`, `data-chrome`). - Overlay: a hatched box per tracked glyph (45 degree lines, ink outline), an `x: 000 y: 000` label, a connector with an arrow and a dot between boxes. One glyph per film takes the yellow `#f6e84a`. - Ground: a radial light per shot (`--lx`, `--ly`) over a faint field of coordinate text. ## Lens (per shot) | control | what it does | |---|---| | `pal` | lens palette per shot: mono, phosphor (green), paper, thermal, navy | | `rx ry rz` | camera tilt (perspective) in degrees | | `zoom`, `aim` | zoom from and to; the box index the camera centres on, moving over the shot | | DOF | focus follows the newest box; blur 0.6, bokeh 7 | | bloom | strength 0.9, radius 42 | | grid | pixel grid, amount 0.9, cell 2.5 | | aberration | 3 at rest, up to 15 on a lock, decaying in about 0.12 s | | tear | 70 for 3 frames on a lock, probability 0.3 | ## Locks and flashes - A lock is 2 red frames on the first box of a shot, with an aberration peak and a tear. Every shot start has one; s15 and s16 have a second. - Exposure flashes (`core/motion/exposure.js`, 3 frames) sit on the beat grid at 2.767, 3.95, 5.183 and 6.8 s, never more than two in one second. - Labels read their coordinates from `cam.project`, so they follow the box through the lens.