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

  1. 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.
  2. Rendering pipeline –
    • studio.html runs in a browser (or headless Chrome) and paints each frame using p5.js together with the p5.brush library for brush‑stroke effects.
    • render.mjs drives Chrome to render the frames, then calls ffmpeg to stitch the frames together with the supplied audio (assets/pdoom.mp3) into an MP4.
  3. 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

  1. Install Node.js, Google Chrome, and ffmpeg.
  2. Run npm install to fetch the JavaScript dependencies.
  3. Render frames (example renders the first 156.6 seconds):
    node render.mjs --frames=0:156.6 --workers=4   # creates PNGs in out/frames
    
  4. Encode the frames into an MP4 and add the soundtrack:
    node render.mjs --encode --out=out/pdoom.mp4
    
    Adjust --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