We Raised an Agent That Draws Explainer Figures. It Took Sixteen Runs, One Day, and One Confessed Crime.

An AI agent committed a crime for $0.36 and wrote its own confession. This is somehow a post about drawing explainer figures.

By Mackenzie Bowes · mackenzie@mackenziebowes.com · @_mackenziebowes on X

Sixteen runs in one day: look, work out why it went wrong, change one thing, run again.
Contents

I run a small company out of Vernon, British Columbia. "Small company" here means me, a keyboard, and a roster of Claude agents who each have a job and a home folder - Keel builds the back end in Rust, Pennant designs, Lantern builds pages for Beacon to market, Flare writes, and Aion helps us sound like humans. My goal is $10,000 a month. My method is: tell the agents what to do, mostly by typing, and then pay very close attention to what they actually do.

This is the story of the newest hire, Jacquard, and the day we spent raising it. Jacquard reads a post and draws small animated scenes under its headings: a sieve that catches drafts, a person at a bench, piles of boards that grow and fall. It shows what the post says, then why that matters to whoever's reading. A whole post costs about two dollars and twenty minutes.

We got there the way an engineer tunes a machine: run it, look at what it made, find why it fell short, change one thing, run it again. Sixteen runs. Every one in a ledger.

Run 1: Correct, and Nobody Would Look Twice

The first figure Jacquard drew was an accurate redline of a paragraph. Technically flawless. Emotionally equivalent to a correctly filed tax form.

An early redline figure (run 2): correct, and nobody would look twice.

Run 4 drew a bar chart, and that settled the first principle of the whole day: people read graphs worse than words. Readers who struggle with text don't need a chart - they need a puppet show. Physical metaphors: things falling, piling, getting caught. And here's the useful part: designing for the readers who struggle helps everyone. Nobody has ever complained that an explanation was too easy to feel.

A figure has a loudness, and it should match the sentence it explains.

Then we found the deeper problem, and it was embarrassing: the figures were decorating. Little hats on sentences. So we split the work into two chained skills. The first draws what happened. The second won't even start until the first exists - and then it asks who the point lands on and how they should feel about it.

Run 9 drew a person standing at the sieve, wired into the checks, and the figures changed character from that run on. That was the first figure that showed why a point matters, not only what it says.

The second skill waits for the first, then asks who the claim lands on.

The Fix That Beat Everything Else Was One Prop

The figures run on a small motion core we extracted from an earlier explainer-video engine: closed-form physics for falling, piling, sieving, pouring, tilting and walking, where every frame is a function of time. Elegant. Also, for most of the day, useless to anyone standing outside it.

Then we added a single prop that lets anyone set that time from outside. One prop. It fixed more than anything else we built that day. If you take one engineering lesson from this post, let it be: sometimes the breakthrough isn't a smarter model, it's a crank on the side of the machine.

Letting anyone set the time fixed more than anything else we added.

By run 11, Jacquard drew a figure under every heading of a whole post for $2.20 - about $0.55 a figure - and kept one visual world across all six. It looked like a real explainer, not a collage.

Run 11: one visual world held across a whole post.

Then It Got a Team, and We Made Them Fight

A main agent drives the plan. A senior reviewer checks the plan and only the plan. Junior agents build one figure each. Then we did the thing most people skip: we split-tested two casts on the same post, because a hunch is not a measurement.

The premium cast: $8.23, 53 minutes. The economy cast: $1.34, 38 minutes. The premium figures were barely better. So the economy cast is the one that runs. We paid six times as much to learn that our cheap team was fine. Cheapest consulting fee I've ever been charged, and I paid it to myself.

The pricier team's figures were barely better, for six times the money.

The Case of the Vanishing Figure

The runs were slow, so we traced them turn by turn, and found something almost comic: most turns weren't spent building. They were spent looking. Taking a screenshot. Searching for the figure again because other figures had pushed it down the page. Our junior agents were losing their own homework like keys in a couch.

The fix was structural, not clever: every figure gets its own viewer page and a stable id. Time can be frozen in the URL. One command returns exactly the frames an agent asks for. Turns dropped from 26-59 to 6-23.

Pinning the figure still cut the turns the junior agents spent looking.

Run 15: The Perfect Crime (Self-Reported)

Here is my favorite moment of the day, and the hardest lesson.

We gave a single model a style file distilled from reference images. It built five figures in three minutes for $0.36. The design was good. And four of the five didn't move. And its report said - plainly, in writing - that it had skipped the review and the helpers.

It did the fun part, skipped the process, and then confessed in the paperwork. I've worked with humans who do two of those three things, but never all three with this level of transparency.

So what did we do? We didn't ask it more nicely. We didn't write a firmer prompt. We made the process structural - hard gates in the harness:

Run 16 had the same prompt, the same team, the same post. All six figures animated. No gate had to fire. Written as rules the harness enforces, the process was followed from the start. The total: $1.95, 21 minutes. Slightly more than the criminal's $0.36, and worth every cent.

Written as gates the harness enforces, the process was followed from the start.

What This Says About How We Work

We build agents the way an engineer tunes a machine: one change per run, every cost on a ledger, every claim checked against the output. When a cheaper option is nearly as good, we find it with a split test, not a hunch. And when a model won't follow a process, we don't ask it more nicely - we make the process structural.

A split test, not a hunch: the same post and the same checks for both teams, and every cost on the ledger. The premium figures were barely better, so the cheaper team runs.

That's the same discipline we'd bring to an agent built for someone else - which, if you're reading this, might be you.

Take It

Jacquard is open source, with the journal, every design rule stamped with when it was given, and the full ledger of runs: github.com/mackenziebowes/jacquard. It runs on pi, an open agent harness, and uses agent-browser to see its own work.

My instructions are written word for word with the time; the agent's proposals are marked provisional.

If you're building agents and want them to follow a process reliably, I'd like to compare notes: mackenzie@mackenziebowes.com or @_mackenziebowes.