Type what should happen. An AI agent directs the scene in Blender through a small set of checked tools, verifies the result from the scene data, fixes what fails, and renders the clip.
A long story asked in one go makes the agent plan every beat at once, and an early choice can break a later one. Like an animator, the story is split into shots: each is a short request that continues the same scene, and the camera is framed once at the end.
A red ball bounces in from the left three times and rolls to a stop.
keyframe ×9 · set_easing gravityRed walks in happily, looks down at the ball, picks it up.
walk_happy to=ball · look_down · pick_upHolding it, he turns left to check if anyone is around, then back.
turn left · turn rightBlue walks in slowly and sadly and sits on the bench, facing us.
walk_sad to=bench · sit direction=frontRed waves with his free hand, walks over, puts the ball beside Blue.
wave to=blue · walk · put_down to=benchBlue looks at the ball, then at Red, stands up and takes the ball.
look to=ball · look to=red · stand_up · pick_up carry=swingBoth wave at the camera while the camera zooms out.
wave · wave · camera_move zoom_outA man on a bench, a ball that rolls off and away, a chase with the camera, a sad walk to another bench, and the ball coming back, only to roll away again. Directed by Claude, shot by shot.
“a stick man walks to the table and waves”
Template rules (A0), qwen2.5 3b / 7b (A1, A2) or Claude (A3)
~16 tools; every call is validated before Blender sees it
Headless, flat 2D look, stick figures driven by a motion library
Scene data is checked; failures go back to the agent, up to 3 fixes
MP4 plus an editable .blend file
Upload ~10 views of a character and animate it from a motion library. The motion transferred, but every new character broke the appearance step.
Motion is data (joint tracks, a wave from my own video); the look is a separate layer. Blender does the drawing reliably.
Like the Animator's Survival Kit: ball, figure, walk. A clean 2D world where an agent's choices can be checked exactly.
The same skeleton and actions can drive a drawn character's parts later; the stick figure is the rig they hang on.
Walks come from my Project 3 tracks and the wave from my own video; the rest is keyed or computed from the scene (where the ball is, where the other hand is, how high the seat is).
pick_up · put_downBends to the table, lifts it with the forearm, carries it, sets it on the box.
look · squat · carry=swingStops, looks down, squats to pick it up and walks on swinging it.
sit · look · wave · stand_upSits, looks up at the tree, sighs, waves at a friend, stands for a handshake.
handshakeTwo figures meet; each shuffles to a comfortable distance and the hands meet.
react · runFlinches toward the scare, turns and runs off, with a braking step at the end.
run · camera followFlight phase, pumping arms, the camera following.
walk_sadOne of four walk moods from Project 3; head hanging, slow.
walk_worried · sighWalks a few steps, stops, breathes in and slumps.
walk · walkWalks right, turns round, walks back to where he started.
waveThe front wave, from my own video, exaggerated for a stick figure.
keyframe · gravityThree bounces with real timing, then a little roll to a stop.
keyframe · rotationRolls across the table, drops off the edge and bounces.
Every task's result is checked from Blender's own scene data, frame by frame. The report is written for the agent, so it can fix what failed.
Final run, 25 Oct 2026, on the frozen version. Up to 3 fix rounds from the checker's report.
| Agent | Passed | First try | Calls / task | Invalid calls | Time / task |
|---|---|---|---|---|---|
| A0 · template rules baseline | 30 / 30 | 30 | 7.1 | 0% | 0.3 s |
| A1 · qwen2.5 3b | 3 / 30 | 2 | 57.6 | 21% | 58 s |
| A2 · qwen2.5 7b | 8 / 30 | 8 | 18.3 | 21% | 56 s |
| A3 · Claude via MCP | 30 / 30 | 27 | 6.2 | 0% | 18 s |
A0's rules were written with these 30 requests in view, so its score is a ceiling for templates. Claude fixed 3 scenes from the checker's report, qwen 3b fixed one and qwen 7b none. qwen ran on a Kaggle T4 GPU.
All 120 runs: four agents on the same 30 tasks. Pick an agent and a task to see the agent's tool calls, the checker's verdict and the clip. Each clip is rebuilt in Blender by replaying that run's own tool calls; all 120 replays give the same pass or fail as the recorded run.