For ears, eyes, and text windows
A little of the movement, written down.
The radio chooses a note. The snake eats a token. Here are two short runs you can read at your own pace.
Captured on 22 October 2026 by executing the original scripts with fixed inputs. The radio trace records scheduled notes; the snake trace records the game’s displayed cells and counters. No sound or canvas is needed to read this page.
Sixteen notes · One compaction · Plain text · How these were captured
100.0 MHz · SAMPLE · temperature 0.7
A small tune, with its choices showing.
The station scores ten possible notes, favoring nearby steps and some pitches over others. It turns those scores into probabilities and draws the next note. That choice changes the starting point for the next draw.
D♯4 · C4 · C4 · C4 · D♯4 · C4 · F4 · G4 · G4 · C4 · D♯4 · C4 · F4 · G4 · A♯4 · A♯5
The final jump to A♯5 had about 0.07% probability on that draw. It happened in this run. A fixed seed makes the passage repeatable.
| Step | At | Note | Frequency | Chance on this draw |
|---|---|---|---|---|
| 1 | 0.05 s | D♯4 | 311.13 Hz | 24.58% |
| 2 | 0.24 s | C4 | 261.63 Hz | 64.92% |
| 3 | 0.43 s | C4 | 261.63 Hz | 57.92% |
| 4 | 0.62 s | C4 | 261.63 Hz | 57.92% |
| 5 | 0.81 s | D♯4 | 311.13 Hz | 24.58% |
| 6 | 1.00 s | C4 | 261.63 Hz | 64.92% |
| 7 | 1.19 s | F4 | 349.23 Hz | 10.43% |
| 8 | 1.38 s | G4 | 392.00 Hz | 45.11% |
| 9 | 1.57 s | G4 | 392.00 Hz | 22.79% |
| 10 | 1.76 s | C4 | 261.63 Hz | 7.27% |
| 11 | 1.95 s | D♯4 | 311.13 Hz | 24.58% |
| 12 | 2.14 s | C4 | 261.63 Hz | 64.92% |
| 13 | 2.33 s | F4 | 349.23 Hz | 10.43% |
| 14 | 2.52 s | G4 | 392.00 Hz | 45.11% |
| 15 | 2.71 s | A♯4 | 466.16 Hz | 17.12% |
| 16 | 2.90 s | A♯5 | 932.33 Hz | 0.07% |
The original station also schedules an upper voice and a bass pulse. The full radio record includes each draw’s entire probability distribution and the audio calls. Audio APIs were stubbed for capture: this records the score, without rendering or checking the sound.
Context window · temperature 0.7
Twenty-five bites. Six cells left.
The snake starts with three cells. Each food pickup adds one. At a length of 28, the game keeps the newest six cells, outlines them as dense, and carries on.
This run puts food along a deliberate, legal route: right, down, then left. It is a close look at the compaction rule, with no claim about anyone’s skill at snake.
| Food eaten | Move | Visible cells | Compactions |
|---|---|---|---|
| 0 | Starting position | 3 | 0 |
| 1 | Right | 4 | 0 |
| 15 | Right | 18 | 0 |
| 16 | Down | 19 | 0 |
| 24 | Left | 27 | 0 |
| 25 | Left | 6 | 1 |
oooooooooooooooooo ········*Hoooooooo
·················· ·······*H#####····
Same crop of the board: H head, o body, # dense body, * next food. The head is dense after compaction too. These positions come from the captured drawing calls. The game compacts before drawing, so there is no visible 28-cell frame.
The game’s count of food eaten stays at 25 while its body shrinks. In this toy, “compaction” is an explicit rule for retaining recent cells; the outlines do not encode the discarded tail.
The footprints are reproducible.
Both captures ran under Node v22.23.2. The harness supplied a virtual clock, audio and canvas stand-ins, and declared inputs. It executed the original radio code and the exact inline game script; it did not replace their sampling or compaction rules.
The radio uses a fixed random seed. Snake uses a published sequence of food placements and keypresses. This exercise captures these mechanisms under those conditions; it does not test browser timing, audio output, touch controls, or ordinary random play.
- Method and reproduction instructions
- Capture harness · Source hashes and capture receipt
- Original source snapshots: radio.js, radio page, snake page
- Events: radio JSON, snake JSON, both as plain text
A snapshot of two moving things. The radio and snake are still here whenever you want to join in.