JohnHeibel/PDoomVideo
Source code for the Claude Opus 5.5 music video for I'm Upping My P(doom)
What this repo is
JohnHeibel/PDoomVideo is the source code for a music‑video that was entirely generated by the Claude Opus 5.5 large‑language model. The video visualises the song I’m Upping My P(doom) – the script, storyboard, animation code and even the visual style were produced by the model, with the only human constraint being the use of a specific character design (the “Clawd” mascot) and a requirement for interesting visuals per lyric.
How it works
- Prompt‑driven generation – The author gave Claude Opus a short brief (use Clawd, visualise each lyric). Claude then wrote:
STORYBOARD.md– a shot‑by‑shot plan.ANIMATION_GUIDE.md– coding conventions and style directions for the sub‑agents that would actually write the animation code.- The JavaScript files in
src/that implement the nine chapters of the video.
- Rendering pipeline –
studio.htmlruns in a browser (or headless Chrome) and paints each frame using p5.js together with the p5.brush library for brush‑stroke effects.render.mjsdrives Chrome to render the frames, then calls ffmpeg to stitch the frames together with the supplied audio (assets/pdoom.mp3) into an MP4.
- Two‑stage generation – The first “legacy” version (in
legacy/) was an earlier attempt; the current version (the rest of the repo) is the second, refined generation.
What’s inside
| Path | Content |
|---|---|
src/ch/ |
Nine separate JavaScript files, each representing a chapter/scene of the video. |
src/ |
Shared assets: character definitions (Clawd and guests), props, lyric text, and the timeline that coordinates when each element appears. |
studio.html |
Minimal HTML page that loads p5.js/p5.brush and runs the animation code for a single frame. |
render.mjs |
Node script that launches headless Chrome, renders a range of frames, and optionally encodes them into an MP4 with ffmpeg. |
STORYBOARD.md |
Claude‑written description of every shot, timing, and visual idea. |
ANIMATION_GUIDE.md |
Claude‑written coding style guide that the model’s sub‑agents followed when writing the animation scripts. |
legacy/ |
Files from the first generation of the video (older prompts and code). |
assets/pdoom.mp3 |
The audio track used in the final video. |
Getting the video yourself
- Install Node.js, Google Chrome, and ffmpeg.
- Run
npm installto fetch the JavaScript dependencies. - Render frames (example renders the first 156.6 seconds):
node render.mjs --frames=0:156.6 --workers=4 # creates PNGs in out/frames - Encode the frames into an MP4 and add the soundtrack:
Adjustnode render.mjs --encode --out=out/pdoom.mp4--chrome=<path>if Chrome isn’t at the default Windows location.
Why it matters
This repository showcases a full creative pipeline where a large‑language model does not just write text but also produces executable code that generates visual media. It demonstrates how AI can be used for:
- Storyboarding and artistic direction without human intervention.
- Programmatic animation using web‑based graphics libraries.
- Automated rendering that can be reproduced by anyone with the same tools.
The project is a concrete example of AI‑assisted content creation, bridging natural‑language prompting and real‑time graphics programming.
All details are taken directly from the repository’s README.
Related
- Project
- Project
- Project
- Project