2D Image Rigging and Animation with rig-c

2D Image Rigging and Animation with rig-c

Tags
AI
AgenticAI
Claude
GameDev
Animation
Rigging
Spine
OpenSource
Projects
Description
While watching a rig-c trailer made from a single painting, I pointed out awkward movement in the eyes, chest, hand, and wrist. This is how I worked with an AI agent to fix problems the automated checks had missed and add rules to catch them next time.
Published
Published Oct 11, 2026
On this page
Today I put a trailer on the front page of rig-c, the project I've been working on lately. I fed it a single painting, and out came a character on a swing, tilting its head, swinging its legs, hopping up, and even waving. I didn't place a single bone. I'm not a Spine expert, either. That's what I want to talk about today.

Checks for agent-authored rigs

rig-c is an open-source toolchain for 2D character rigging. It has three tools: one assembles a painting's layers into parts ready for rigging, one compiles the rig, and one plays it in the browser. The unusual part is that its users are AI agents rather than people.
The problem is that writing down numbers and getting a parser to accept them doesn't make the movement natural. The build passed, but when I watched the video, some things still looked wrong.
That's why I added checks to rig-c to catch errors and explain their causes. At every stage, the tools print exactly what they measured and reject anything they can't verify, naming it explicitly. If the checks don't pass, no file is produced.
Those checks caught quite a few problems. This post is about the ones that remained even after the checks passed.

"Go make the trailer yourself"

The trailer was made by Roa (Claude), the agent that handles the project day to day. It prepared the artwork separately, split it into layers, wrote the rig config for rig-c, attached the swing directly to the character's skeleton, added physics to each strand of hair, choreographed the performance, and composited the video. I just said, "Make something cute," and went off to do something else.
Having it try its own tools from a user's point of view paid off right away. It ran into five defects in a single day. Long hair hanging down the back quietly disappeared during assembly, for example, and a checker assumed that the character would be standing. Three of those defects were fixed and released that same day. As a result, the published build process now takes a single command.
Those were all caught by the tools or found by Roa while reading its own reports. The really interesting ones were the problems I spotted while watching the video.

All the checks passed, but the picture looked wrong

This was all the feedback I gave that day:
  • "The shape of the eyes doesn't match the tilt of the face."
  • "The chest doesn't move. Looks like a paper doll."
  • "The hand is too small. An open hand should be about the size of the face."
  • "The wrist looks broken when the character waves."
None of that told Roa how to fix the rig. An expert might have said, "Rotate the eye bones 24 degrees." I can't give that kind of instruction. I can only point out what looks wrong. Yet all four problems had passed every check.
notion image
 
Let's start with the eyes. The character was painted with its head tilted. A later measurement put the tilt at 23.7°. But the eye bones stood straight up, aligned with the page. Blinking squashes the eyes along the bones' vertical axis, so the eyes were being compressed relative to the page instead of the face. When they closed, two perfectly horizontal lines appeared on the tilted face. From my one comment, Roa worked out the angle, rotated the five bones for the eyes, eyebrows, and mouth to align with the line through the eyes, and brought me before-and-after images.
What happened next was my favorite part. I thought Roa would fix the trailer and stop there. Instead, it asked, "Could this happen with other characters too?" It turned out to affect every character painted with a tilted head. By that evening, two issues had been opened. One proposed changing the tool so it would orient the bones to match the face from the start. The other proposed a new rule to check that any rig followed that alignment. The check was merged that same day. My nagging had become a test.
The wrist problem came from two mistakes at once. The forearm attached to the palm was 14° out of alignment with the sleeve, and the entire hand was swinging ±15° around the cuff, out of sync with the arm. Now the forearm lines up with the sleeve, and only the hand moves slightly at the wrist, following half a beat behind. Of course, I knew none of that. I just knew it looked broken.

Human review and AI fixes

I actually started that day apologizing: "I'm not an expert, so my instructions are a bit clumsy." But I wanted this tool to work with exactly that kind of feedback. I point out what looks wrong, and the agent figures out how to fix the rig. I shouldn't have to specify bone angles myself to get something corrected.
Watching it move revealed problems the automated checks had missed. Once Roa found the cause, we could turn it into a rule to check for next time, just as we did with the tilted face.

Rebuild it yourself

I've made all the materials used to create the trailer public: the painting, the separated layers, the config file, and three short scripts.
git clone https://github.com/rig-c/trailer && cd trailer pip install -r requirements.txt ./build.sh
Using only the published packages, you can rebuild the whole thing from painting to video. On my machine, it took less than eight minutes, and the output was identical, byte for byte. No GPU is needed. The README has a table called "What review caught" that lists what I said, what was actually wrong, how it was fixed, and which issue it led to. If you look at just one thing, I recommend that table.
The sky, lighting, and captions were composited separately after rendering. The rig handles the character's movement.
rig-c is MIT licensed: github.com/rig-c.