mrkeyoor.com_
Sat 17 Oct 13:32 UTC
Webevaluationupdated 12 Oct 2026

PDoomVideo review

PDoomVideo contains the scene code and rendering scripts for the animated music video "I'm Upping My P(doom)." It paints frames with p5.js and p5.brush in Chrome, then uses ffmpeg to combine those frames with the bundled song.

+95 / 4dstars / 7d
Verdict

Our PDoomVideo run installed 55 packages in 3 seconds, but npm test failed in 1 second because the project supplies only a placeholder test command. Explore it to study or modify this particular animation. For a new recurring video workflow, the author's newer base is a better starting point, and Chrome plus ffmpeg still need verification.

We ran it

Lab card: what happened when we ran PDoomVideoScreenshot of PDoomVideo (github.com/JohnHeibel/PDoomVideo)
Install✓ · 3s55 packages · 75 MB
Buildn/ano build script
Tests✗ · 1sran, no count parsed
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo26 files~7,760 lines of source · 4.2 MB · 0 CI workflows

Answers from our run

Does PDoomVideo build from source?

Dependencies installed in 3 seconds (55 packages), and the project has no separate build step. We cloned commit fa546a3 into a clean Debian container with 3 CPUs and no project-specific setup.

Do PDoomVideo's tests pass?

No. The project's own test command exited unsuccessfully after 1 seconds, and its output did not expose an individual test count.

Does PDoomVideo have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use PDoomVideo?

Teams requiring executable tests before adopting a renderer: npm test is a placeholder that exits with an error.

What are the alternatives to PDoomVideo?

ClaudeAnimationBase, p5.js. Our PDoomVideo run installed 55 packages in 3 seconds, but npm test failed in 1 second because the project supplies only a placeholder test command.

Setup3/53-second npm install; Chrome and ffmpeg remain separate requirements
Docs4/5Detailed scene guide and renderer modes; short platform setup guidance
Community2/52,032 stars; recent questions and docs PRs, limited support evidence
Maturity2/5Placeholder test command, no CI, and no completed lab render

Who it’s for

JavaScript developers studying or modifying the scenes of this specific music video.
Animators comfortable managing Chrome, ffmpeg, and visual checks of generated frames.
Claude Code users interested in the included storyboard and scene-authoring guide.

Who it’s NOT for

Teams requiring executable tests before adopting a renderer: npm test is a placeholder that exits with an error.
Developers expecting npm alone to supply the runtime: the README separately requires Chrome and ffmpeg, and the default Chrome path targets Windows.
Creators seeking a general animation starter: the README recommends the author's newer ClaudeAnimationBase for that purpose.
Teams needing clear reuse terms for every bundled asset: GitHub identifies no license, package metadata says ISC, and issue 6 asks for licensing clarity.

Setup reality

Our run installed 55 packages in 3 seconds and used 75 MB at commit fa546a3. The build was skipped because no script or target existed. Tests failed with exit 1 in 1 second: the log showed "Error: no test specified." npm audit reported 0 known vulnerabilities.

The README requires Node.js, Google Chrome, and ffmpeg. It includes the song at assets/pdoom.mp3. No API key is needed for the documented renderer, although using a coding agent requires your own runner.

The renderer defaults to a Windows Chrome path and accepts a --chrome override. Browser GPU flags and external font loading need attention on the target machine. Our lab found no CI workflows, Dockerfile, or tests directory and did not establish a completed video render.

PDoomVideo preserves the source of a particular music video

Open src/ch/ and you find chapters of the animated music video "I'm Upping My P(doom)": scenes built around a Clawd character, shared props, lyrics, and a timeline. PDoomVideo is useful if you want to study how that finished project was assembled or change its scenes. I'd choose it as a readable creative example before choosing it as the foundation of a repeatable production service.

Our checkout contained 26 files, about 7,760 source lines, and occupied 4.2 MB before dependencies. That size makes the scene code approachable, but the project is tailored to its song. The README credits Claude Code for generating the repository and includes an animation guide and storyboard. Those documents explain the intended technique. They don't establish that generated scenes are accurate, that exports succeed on every platform, or that a new prompt will produce a comparable result.

What happened when we ran it

Our run at commit fa546a3 installed 55 npm packages in 3 seconds and used 75 MB on disk. The October 9, 2026 sandbox had 3 CPUs and 8 GB of RAM, used lab-node:22, and ran without secrets or elevated privileges. There was no build script or target, so the build step was skipped. A skipped build is not a compiler success.

The test step failed with exit code 1 after 1 second. Its log showed the package's placeholder command: echo "Error: no test specified" && exit 1. This result reports missing executable test coverage, not a discovered animation defect. The lab found no CI workflow files, Dockerfile, or tests directory. npm audit reported 0 known vulnerabilities, which says nothing about whether frames or the final video render correctly.

Chrome and ffmpeg are separate runtime requirements

The rendering instructions require Node.js, Google Chrome, and ffmpeg. render.mjs drives a local browser page, saves painted frames, and joins them with the bundled song to create an MP4. Its default Chrome executable is a Windows path. On another platform you must pass the browser path yourself, and ffmpeg must be available as an executable command.

The 55 packages our install fetched do not establish that those system tools were present or usable. The script imports puppeteer-core, launches Chrome with GPU-related flags including a D3D11 ANGLE setting, and waits for the page to become ready. The studio also requests Google Fonts. I'd inspect browser startup and font loading on the intended machine before attempting the whole video. No API credential appears in the documented playback or rendering path.

Contact sheets help you inspect edits before a full export

The renderer source supports stills, contact sheets, short clips, standalone loops, and resumable frame output. A sheet combines selected moments into an image, giving you a way to inspect a transition without committing to an entire export. The frame-writing path uses temporary files and renames them after writing. On a rerun it skips files that meet its existing-file check.

Our 3-second installation measured dependency preparation, not frame-generation speed or video-export time. The renderer's own progress estimates are runtime output, and the guide's suggested frame-time budgets are authoring instructions. Neither belongs in a measured performance claim for this review. Use the sheet and short-clip modes to establish that your edited scenes paint correctly, then measure a real render on the graphics setup you expect to keep.

Frames must be independent of the order they render in

The animation guide tells chapter authors that frames can render in parallel and out of order. Each shot must derive its state from its time input instead of carrying state from a previous frame. Stable randomness is part of that contract. A scene that incrementally advances a character's position may look fine during playback yet give inconsistent results when separate worker pages request different frames.

The 1-second failed test command offers no check of that contract. The guide instead asks for visual inspection of shot boundaries, motion, and transitions, including keeping faces above the karaoke band. That's useful direction for an animator comfortable reading JavaScript. For a team expecting automated acceptance checks, it leaves work to do: create checks for the properties that matter to your export and inspect representative frames after changing shared helpers.

Reuse terms need more clarity than the package label provides

GitHub's repository facts identify no license, while package.json declares ISC. Issue 6 explicitly asks for a permissive license to clarify reuse. The README also attributes the song and lyrics to external sources, with uncertainty about the song's origin. Those are distinct pieces of the project. I'd resolve the scope of reuse terms before treating the bundled code, character, and audio as an asset pack for a commercial commission.

The last push was September 25, 2026, and GitHub reported 2,032 stars with 6 open issues and PRs. There is no latest release. Recent activity includes documentation pull requests and questions about prompts and licensing, rather than evidence of a maintained rendering support queue. The README directs readers to the author's newer ClaudeAnimationBase and describes it as more general and reliable. That recommendation carries more weight than the absence of a release tag alone.

Start with the newer base when you want another cartoon

ClaudeAnimationBase is the closest alternative for making a new animation with the author's character and painting approach. p5.js is a lower-level choice if you want your own sketch structure without this song's chapters. The former keeps more of the supplied creative workflow; the latter gives you freedom at the cost of authoring the renderer and timing yourself.

PDoomVideo's 75 MB installed footprint makes it reasonable to explore locally, and the scene guide gives a developer something concrete to learn from. Keep it for studying or modifying this video. For a recurring animation job, begin with the newer base and verify your browser and export path. Before preserving an edited frame directory for resuming, remove stale output from scenes you've changed: an existing frame file cannot tell the renderer that its source is different.

Alternatives

ProjectWhat it isPick it when
ClaudeAnimationBase gh↗The author's newer starter for painted character animations.pick this instead when you want to make a new cartoon rather than modify this music video.
p5.js gh↗A browser creative-coding library for authoring your own sketches.pick this instead when you want your own scene structure and can build timing and export around it.

What people are saying

  1. [velocity-scout] JohnHeibel/PDoomVideo

Sources

  1. PDoomVideo README and rendering instructions
  2. Frame renderer source
  3. Chapter animation guide
  4. Browser studio and font loading
  5. Package scripts and license metadata
  6. License clarification request, issue 6
  7. Repository facts
  8. ClaudeAnimationBase repository

More web reviews

dioramas · elpis · deepseek-whale-girl · floorplan-3d · taro · driver.js · the whole board →