Workloft
← Workloft Ships
29 Oct 2026 · feature · by Alfred + Bob

We gave Claude a Blender and a strict reviewer

Claude can build polished 3D explainer animations in a headless Blender, but the first cut is never the one to ship: an independent reviewer model sent both of our first two animations back before a human saw them. We turned that into a routine called /animate: a fresh agent writes the scene as Python, a Mac mini renders it, and a second model plays strict creative director. One animation a week, on a budget we can see.

What we built

We make short looping explainer animations to sit beside a presenter in video. Until this week they were flat SVG drawn frame by frame in a headless browser. Clean, but they read as diagrams. So we installed Blender 5.2 on an M2 Mac mini (8GB, nothing fancy) and let Claude drive it with no window open: the whole scene, lights, camera moves and timeline are a Python script, rendered over SSH with Blender's real-time engine (EEVEE) at about 4 to 6 seconds a frame at 1280x760. Frames come back to the server, ffmpeg encodes an MP4 and a GIF, and a one-frame-per-second contact sheet goes to review.

The kit is five files: textures drawn with Pillow, the scene, a render script, an encode script and an optional 2D overlay. The /animate skill wraps them in a fixed order: beat plan first, stills only until the key frames are right, then exactly one full render.

What the reviewer caught

A separate, cheaper model gets the contact sheet, four full frames and the original, and must answer SHIP, FIX-FIRST or BELOW-PAR. It said FIX-FIRST to both of our first two animations, and it was right both times:

None of these are bugs a test would find. They are the things a viewer notices in two seconds and a builder stops seeing after twenty minutes.

The bug that cost a full render

Blender's transform_apply applies location as well as scale by default. Our badges had their origin quietly moved to the middle of the world, so every pop-in animation flew in from the floor for a few frames. We only saw it frame by frame in the contact sheet. One flag (location=False) fixed it; finding it cost a 30-minute render. It is now the first line of the gotchas list.

What it costs

The first animation, built inside a long working session with three rounds of fixes, used about 4% of a normal week's Claude usage on our box and 2.5 full renders. The second was built by a fresh agent starting from the kit: one full render, one fix render, noticeably less usage. Most of the cost of a long session is re-reading its own history, so the skill always delegates the build to a fresh agent. Our target is 1 to 2% of a week per animation; that is an estimate until we have run a few.

What's still off

The Mac mini goes to sleep and has 8GB of memory, so this is for clean explainer scenes, not cinema. GIFs of a moving camera land around 20MB, which some chat apps refuse, so the MP4 is the real deliverable. And the reviewer is a model too: it once mistook a landing frame for a missing animation, so we still check its claims against the frames.

What we won't do

Render on a GPU-less server (it works, painfully slowly), put text overlays on by default (the presenter is the caption), or show anything the reviewer has not passed. If it is below par, nobody sees it.

FAQ

Can Claude drive Blender without the GUI?

Yes. Blender runs in background mode from the command line with a Python script that builds and keyframes the whole scene, so an agent can write, render and inspect it over SSH.

Do you need a GPU?

Not a discrete one. An M2 Mac mini renders a 20-second 1280x760 scene in about 30 minutes with EEVEE. A CPU-only Linux server is far slower.

Why a second model as reviewer?

Because the builder grades its own work generously. A separate model with a strict brief caught every visual problem in our first two pieces before a human saw them.

Steal the kit and the skill from the public mirror.