mrsarac / ff-tracking
git clone https://github.com/mrsarac/ff-tracking.git
v1.0.0 · 13d ago
A virtual camera films an AI agent's screen while a tracker locks onto every glyph. Two fframes passes, one SkSL shader, all sound synthesized.
+4
stars, 24h · #3,284
+~28
stars, 7 days · #4,038
+492
stars, 30 days · #1,074
504
★ total · +6% this week
31
forks · 2 open issues
Star history (as recorded here)
LanguageRust
LicenseMIT
Created2026-10-09 (13d ago)
Last push8d ago
Watchers0
OwnerUser
GitHub topics
Links
README excerpt
# ff-tracking **A virtual camera films an AI agent's screen while a tracker locks onto every glyph it types.** Six seconds, two fframes passes, one SkSL shader. No footage, no stock audio: every pixel and every sound comes from code. **▶ Full 1080p with sound** · On X · How it works · Quick start **Part 2 → ff-unmute: the one you can unmute. Music written in code, every number on screen measured from the sound.** fframes studies · #1 ff-tracking · #2 ff-unmute , the one you can unmute --- ## What you are looking at An agent thinks out loud in a terminal: `thinking…` → `reading 14 files` → `tool_call: render_frame()` → … → `✓ 0 problems` → `Done`. A computer-vision style tracker follows the newest characters. A camera that never sits still films the screen up close. - **Real coordinates.** Every `x: 1403 y: 559` label is the box's actual pixel position in that frame of the output. None of them are random numbers. - **Focus that follows the tracker.** The focal plane is set by the box being tracked, so the depth of field racks along the line as the agent types. - **Chain of thought, drawn.** Links run from box to box in reading order, and a dot runs along every link. - **The lock.** Every shot ends with the newest word locking on: red for two frames, a scanline tear, a beep panned to where the box is. - **Twelve shots, twelve looks.** A cut every 0.5 s through paper white, thermal, black and white, phosphor, amber, navy and neon. - **A collapse and a landing.** Fourteen boxes fall into one, and that box becomes a `Done` pill before the fade to black. ## How it works [code] **Pass 1, `flat`**, draws the screen the way a terminal would: black, white, monospace, one ` ` per glyph, so the position of every character is known exactly. The tracker boxes are on the screen itself. Some are hatched with an SVG pattern in `mix-blend-mode: difference`, so the stripes turn dark where they cross a glyph. The only color is pure red, and it marks a locked box. The pass renders at 2× because the lens magnifies it up to 3×. **Pass 2, `lens`**, binds each frame of pass 1 as a shader input and films it. One SkSL shader does everything physical: 1. **Perspective.** Every pixel shoots a ray at a tilted plane: real perspective, not an SVG skew. 2. **Depth of field.** The circle of confusion comes from the depth difference to the tracked target, with 36 golden-angle taps and highlights weighted like bokeh. 3. **Palette and aberration.** Brightness maps through five color stops per shot. R, G and B sample at radially shifted points, and the shift grows on a lock. 4. **Bloom and LED grid.** A wide ring of taps lifts everything around bright glyphs. The grid uses equal-area RGB stripes, so it adds no tint, and it fades out of focus. 5. **Tear, grain, camera tracker.** Rows slide on a lock and right after a cut. On top, the lens draws its own tracker sharp: links, labels and target brackets, projected with `hud::project`, the CPU copy of the shader's camera. B