UMC301 · Project 5 · October 2026

Stick Animation Agent

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.

“The Lost Ball” · directed shot by shot by Claude 54 s · 7 shots · 44 tool calls · 0 errors
Archana YadavBlender 4.5 · headlessqwen2.5 3b / 7b · Claude via MCP
Storyboard

One story, seven short requests

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.

1f 1–72

A red ball bounces in from the left three times and rolls to a stop.

keyframe ×9 · set_easing gravity
2f 72–312

Red walks in happily, looks down at the ball, picks it up.

walk_happy to=ball · look_down · pick_up
3f 312–400

Holding it, he turns left to check if anyone is around, then back.

turn left · turn right
4f 400–743

Blue walks in slowly and sadly and sits on the bench, facing us.

walk_sad to=bench · sit direction=front
5f 743–911

Red waves with his free hand, walks over, puts the ball beside Blue.

wave to=blue · walk · put_down to=bench
6f 911–1148

Blue looks at the ball, then at Red, stands up and takes the ball.

look to=ball · look to=red · stand_up · pick_up carry=swing
7f 1148–1294

Both wave at the camera while the camera zooms out.

wave · wave · camera_move zoom_out
Second story

The Ball That Goes Away

A 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.

“The Ball That Goes Away” · 6 shots, the camera follows the man 34 s · 61 tool calls · 0 errors
How it works

Request in, checked animation out

Request

“a stick man walks to the table and waves”

→

Agent

Template rules (A0), qwen2.5 3b / 7b (A1, A2) or Claude (A3)

→

Checked tools

~16 tools; every call is validated before Blender sees it

→

Blender

Headless, flat 2D look, stick figures driven by a motion library

→

Self-check

Scene data is checked; failures go back to the agent, up to 3 fixes

→

Clip

MP4 plus an editable .blend file

Why stick figures

Start where animators start

Project 3

A drawn character from a sheet

Upload ~10 views of a character and animate it from a motion library. The motion transferred, but every new character broke the appearance step.

The lesson

Separate motion from appearance

Motion is data (joint tracks, a wave from my own video); the look is a separate layer. Blender does the drawing reliably.

Project 5

Stick figures first

Like the Animator's Survival Kit: ball, figure, walk. A clean 2D world where an agent's choices can be checked exactly.

Next

Layered 2D characters

The same skeleton and actions can drive a drawn character's parts later; the stick figure is the rig they hang on.

Action library

What a figure can do

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 and carry pick_up · put_down

Bends to the table, lifts it with the forearm, carries it, sets it on the box.

Found a ball look · squat · carry=swing

Stops, looks down, squats to pick it up and walks on swinging it.

A bench in the park sit · look · wave · stand_up

Sits, looks up at the tree, sighs, waves at a friend, stands for a handshake.

Handshake handshake

Two figures meet; each shuffles to a comfortable distance and the hands meet.

Fright, then run react · run

Flinches toward the scare, turns and runs off, with a braking step at the end.

Run run · camera follow

Flight phase, pumping arms, the camera following.

Sad walk walk_sad

One of four walk moods from Project 3; head hanging, slow.

Worried, then a sigh walk_worried · sigh

Walks a few steps, stops, breathes in and slumps.

There and back walk · walk

Walks right, turns round, walks back to where he started.

Wave together wave

The front wave, from my own video, exaggerated for a stick figure.

Bouncing ball keyframe · gravity

Three bounces with real timing, then a little roll to a stop.

Off the table keyframe · rotation

Rolls across the table, drops off the edge and bounces.

Self-check

What the checker verifies

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.

Results

Same tools, same 30 tasks, four directors

Final run, 25 Oct 2026, on the frozen version. Up to 3 fix rounds from the checker's report.

AgentPassedFirst tryCalls / taskInvalid callsTime / task
A0 · template rules baseline30 / 30307.10%0.3 s
A1 · qwen2.5 3b3 / 30257.621%58 s
A2 · qwen2.5 7b8 / 30818.321%56 s
A3 · Claude via MCP30 / 30276.20%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.

Every run

Browse the final run

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.