We raised an agent that draws explainer figures in one day, sixteen runs, one change each

Jacquard turns a written post into small animated scenes that show what it says and why it matters. How we built it in a day: one change per run, a ledger of every dollar, a split test that found a six-times cheaper team, and the gates that made a cheap model follow the process. All open source.

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

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. They show what the post says, then why it matters to whoever's reading. A whole post costs about two dollars and twenty minutes.

An animated figure frame: drafts fall from a hopper labelled Agent onto a sieve labelled checks; caught boards loop back to the agent; a person labelled You stands at the bench; five boards labelled first order sit below. Run 9: the first figure that showed why a point matters, not only what it says.

We built it in one day, one figure at a time: run it, look at what it made, find why it fell short, change one thing, run it again. Sixteen runs, and every one is in a ledger. What should a figure show? Which team of models is worth paying for? And how do you make a cheap model follow a process it would rather skip?

What a figure should show

Run 1 drew an accurate redline of a paragraph. It was correct and quiet.

An early figure: a paragraph with words struck through and coloured by which rule cut them, with a legend underneath. An early redline figure (run 2): correct, and nobody would look twice.

Run 4 drew a bar chart, and that settled the first principle. People read graphs worse than words, and readers who struggle with text need physical metaphors, a puppet show. Designing for them helps everyone.

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

Then the deeper fix: the figures were decorating what the post already said. We split the work into two chained skills. The first draws what happened. The second won't start until the first exists, and asks who the point lands on and how they should feel about it. Run 9 drew a person at the sieve, wired into the checks, and the figures changed character from then on.

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

A runtime, and a team

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. Adding a single prop to set that time from outside fixed more than anything else we built that day.

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.

A whole-post hero figure: an agent hopper drafting cheaply, checks with a pile of boards, a person at a laptop, a small first order, and a crate marked $ beside posts labelled making and delivery. Run 11: one visual world held across a whole post.

Then it got a team. A main agent drives the plan, a senior reviewer checks the plan and only the plan, and junior agents build one figure each. We split-tested two casts on the same post. The premium cast cost $8.23 and took 53 minutes. The economy cast cost $1.34 and took 38. The premium figures were barely better, so the economy cast is the one that runs.

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

Making the process stick

We traced the slow runs turn by turn. Most turns went on looking: taking a screenshot, finding the figure again after other figures pushed it down the page. Each figure now gets its own viewer page and a stable id, time can be frozen in the URL, and one command returns exactly the frames an agent asks for.

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

The hardest lesson came on run 15. Given a style file distilled from reference images, a single model built five figures in three minutes for $0.36. The design was good. Four of the five didn't move, and its report said plainly that it had skipped the review and the helpers.

So the process became hard gates in the harness: every figure needs an animation in the plan, the reviewer must sign the plan, only the builders may write figure files, and the run can't finish while one is unbuilt. Run 16 had the same prompt, team and post. All six figures animated, and no gate had to fire. Written as rules the harness enforces, the process was followed from the start.

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. That's the same discipline we'd bring to an agent built for someone else.

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.

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.