Claude Fable 5 Max tests recursive video loops with three.js and FFmpeg
Goodside posted Claude Fable 5 Max clips with self-referential VHS footage, pelican GIF loops, and Backrooms scenes. He said one workflow used Claude Cowork to generate frames with three.js, Python, and FFmpeg.

TL;DR
- Claude Fable 5 Max made short video loops as generated renderers: the pelican phone loop came from a 540-line Python file, according to goodside's code reply, while his VHS follow-up linked the Python behind the CRT feedback clip.
- The Cowork run used a real graphics stack: frame-by-frame three.js generation, Python post-processing, and ffmpeg assembly, as goodside's implementation note put it.
- The workflow was high-level art direction, not hand-coded animation: goodside said in his Cowork reply that Claude made videos, he critiqued them, and the loop continued without technical guidance.
- The test suite sprawled beyond video: Goodside also built a clue-free crossword containing all 1,025 Pokémon in a puzzle post, and his ChatGPT 5.6 Sol test got only partial solves across five memory-off attempts.
The generated VHS script includes frame-by-frame recursive CRT compositing, VHS artifacts, and synthetic hiss. Anthropic's Claude Cowork post says Cowork breaks large jobs into parallel subagents and checks results against a plan while it runs. TryAI's music-video harness hit the same creative pattern from another angle: hand the model a song, a budget, and tools, then let it generate footage, watch it, edit with ffmpeg, and assemble a cut.
Recursive video as code
In goodside's prompt, the brief was a 15-second VHS found-footage video: a camcorder in an empty room, a CRT on a wheeled cart, and the TV recursively displaying the camcorder's own output.
Goodside said in a follow-up that Claude generated the Python and download links for the video. The generated VHS script renders the room frame by frame, composites recursive CRT content, adds OSD text, scanlines, tears, gain changes, and synthesizes a lo-fi audio bed.
The useful trick is code generation pointed at video. Instead of asking a video model for a vibe, the prompt became an executable simulation of camera motion, screen feedback, analog decay, and sound.
The pelican phone loop
In the exact prompt, goodside specified four beats:
- A 10-second looping GIF of a pelican riding a bicycle on a sunny day.
- The basket vibrates.
- The pelican picks up a phone.
- The phone shows the exact video being watched, then the camera zooms into the thumbnail until the loop restarts.
Goodside said in one reply that the clip came from a 540-line Python renderer, and his runtime estimate put the first and only attempt at roughly 20 minutes. The drawing layer was Python with PIL, close to SVG, according to his PIL reply.
Cowork critique loops
His Cowork pattern, as described by goodside, was simple:
- Prompt in Claude Cowork.
- Claude makes videos.
- Human critiques the output.
- Repeat until good.
- No implementation guidance.
The generated stack was explicit in goodside's implementation note: frame-by-frame video in three.js, post-processing in Python, and ffmpeg for assembly. Anthropic's Claude Cowork post describes Cowork as an agentic system for finished work, with tasks split across subagents and checked against an initial plan.
Goodside put the 45-second version at a dozen or so rounds of iteration, according to his iteration-count reply. XDA's Claude Code video-editing test surfaced the same command-line media pattern: check installed tools, install ffmpeg when missing, transcribe, detect clips, and build an edit plan.
Backrooms variations
Goodside framed the pelican as an overused SVG benchmark that needed harder variations, then pushed it into Backrooms found footage.
- Backrooms chase: the first variation made the pelican chase the viewer through yellow corridors.
- Stone sculpture: the sculpture clip turned the pelican and bike into a large stone object between non-Euclidean hallways.
- Failed-attempts maze: the 45-second loop made an entire Backrooms area out of Claude's misremembered earlier pelican attempts.
- Gallery exhibit: the Pedaling Pelican clip staged earlier LLM pelican drawings as an art show dated 2019-2023.
Goodside called the premise topical with few copyright concerns in a reply. That makes it a clean meme-object for testing continuity, nested media, spatial layout, loop timing, and weird art direction.
Unsaturated pelicans
Goodside pushed back on the idea that the task was saturated in his critique of the phone loop. The same reply named the visible failures: the arm comes from nowhere, the phone phases through the basket, the hand is weird, and Gerald's name extends past the phone.
His shorter verdict on the Backrooms chase was "see? unsaturated." The joke lands because the failures are inspectable, not vague: hands, props, text, object contact, camera continuity, and loop closure all have to survive the renderer.
Pokémon crossword side quest
Goodside also posted a solved and unsolved clue-free crossword of all 1,025 Pokémon as a future stress test.
The five memory-off runs in goodside's ChatGPT 5.6 Sol test came back as:
- 45 answers in 28 minutes.
- 145 answers in 33 minutes.
- 40 answers in 31 minutes.
- Timeout or error after roughly 30 minutes.
- Timeout or error after roughly 30 minutes.
The puzzle is adjacent to the video tests because it pressures a model's spatial bookkeeping without giving it clues. It also explains why the pelican clips matter: they are funny, but they are also compact tests of whether a model can preserve structure while generating a complicated artifact.