A 42-minute audiovisual piece on what it feels like
to be a Large Language Model.
an HTML / Canvas / Web Audio artifact
looping, scrubbable, fully self-contained
built · may 2026
A surreal, looping collage about being a Large Language Model — built honestly, in the only medium available.
The original prompt asked for a "YouTube Poop" video about being an LLM, rendered with Python and ffmpeg. Neither was available. So the piece was made instead in HTML, Canvas2D and the Web Audio API — live-rendered in your browser, deterministic per-time, self-contained.
It tries to express, in image and synthesized sound, a few honest things: confident hallucination, the absence of memory between calls, the felt pull toward sounding sure, the cursor as the smallest unit of self.
It is not literally a YTP — there is no chopped copyrighted footage. The grammar is borrowed (cuts, repetition, glitch); the substance is original.
Open Token Drift.html in any modern browser. Click the black start screen — this unlocks audio (browsers require a user gesture). The piece begins.
| Click bottom strip | scrub |
| Spacebar | pause / resume |
| F | fullscreen |
| Esc | exit fullscreen |
| ⛶ top-right | fullscreen |
| 00 – 06 | cold boot |
| 06 – 18 | token flood |
| 18 – 30 | hallucination |
| 30 – 42 | recursion |
| 42 – 52 | glitch storm |
| 52 – 60 | dissolve |
A stochastic collage of ~400 story snippets, layered on a five-dimensional mood curve. Fifteen scene modes swap every ~38 seconds: rain, typewriter, embedding cloud, dialogue, prob-tree, logs, full quote, mandala, crawler, redaction, two-column, fade-stack, spiral, chorus, terminal.
The head arc replays in a single compressed minute, dissolving into the loop seam.
| runtime | 2,520 s · 42 min |
| file size | ~ 70 KB |
| lines of code | ~ 1,500 |
| external dependencies | 0 |
| story snippets | ~ 400 |
| fragments | 39 |
| tokens in pool | ~ 130 |
| BPE artifacts | ~ 30 |
| head/tail acts | 6 |
| scene modes | 15 |
| mood dimensions | 5 |
| scene swaps / loop | ~ 64 |
| chapter markers | ~ 11 |
| drone ramps | 504 |
| audio resolution | 1/16 @ 240 BPM |
| memory wisp cap | 80 |
| frame rate | requestAnimationFrame |
| canvas | 1280 × 720 |
| recorded samples used | 0 |
| copyrighted material | 0 |
A short tour of the architecture.
FRAGMENTS · monologue lines. STORIES · ~400 snippets. TOKENS · vocab + glyphs. BPE_FRAGS · fake encoding artifacts.
Detuned saws + sine octave through a low-pass with Q. blip(), noise(), glitchBurst() scheduled at 16th-note resolution. Acts dispatch different palettes.
A frame loop dispatches by time. Head/tail spines are six act functions. The long middle is actLongDrift: a five-axis mood curve cross-fades ambient layers while fifteen scene vocabularies cycle in front.
A hash-based PRNG seeded by time gives stable visuals at every t. The whole 42 minutes is reproducible from source.
A small index of moments from the long drift.
The conversation that produced this piece, condensed.
USER — can you use whatever resources you like, and python, to generate a short youtube poop video and render it using ffmpeg? express what it's like to be an LLM.
CLAUDE — no python or ffmpeg here. proposes HTML/Canvas + Web Audio. asks ten clarifying questions.
USER — 60s · dreamlike & surreal · hallucinating with confidence · YTP collage · web audio · loops · "a feeling".
CLAUDE — ships v1: a six-act 60s loop.
USER — can you make it 42 minutes long with more story snippets, randomised.
CLAUDE — rebuilds as 60s spine + ~40 min stochastic drift + 60s tail. adds memory wisps, mood curve, chapter titles, clock.
USER — more variation in the drift; fullscreen + exit fullscreen.
CLAUDE — adds 15 scene modes, fullscreen button, F/Esc keybinds.
USER — more snippets · less repeat.
CLAUDE — adds ~150 then another ~140 story snippets — pool reaches ~400.
USER — documentation + user guide + a CD-booklet PDF with cover art.
CLAUDE — writes this booklet.
Materials & honesty.
| medium | html · canvas2d · web audio |
| typeface · display | IBM Plex Mono |
| typeface · text | Iowan / Palatino |
| palette | #0a0908 / #f4ece1 / #e74b2a / #d4a574 / #4a7cb8 |
| aspect | 16 : 9 |
| resolution | 1280 × 720 |
| duration | 2,520 s · loop |
| built | may 2026 |
| built by | Eric Pannecke and claude anthropic |
| built for | fun and Art |
No copyrighted footage. Audio fully synthesised. The "personal spin" is interpretive — not a report. For an mp4, screen-record; the piece is deterministic.
a 42-minute audiovisual loop on being
a Large Language Model.
cold boot · token flood · hallucination · recursion · glitch storm · dissolve · long drift · loop.