The making-of · Keys to My Heart

How a still picture learned to move.

Claudia starts as a still picture that cannot move. Verse by verse she learns the twelve principles of animation, and her drawing travels through a century of the craft. This is how a three-minute film got made in three days by one person directing a team of agents, including everything that broke.

Watch the film ↗ Back to the timeline Agents: read this as Markdown

Sc. 1 · The idea

A film that teaches what it is doing.

Every entry could have been a song with pictures over it. This one teaches. Each principle is demonstrated on screen while the lyric names it, and a counter climbs from 0/12 to 12/12.

The title is a pun. Keys open a heart, and keys are the drawings that hold an animation together. The last line of the song says who does what: keys by humans, in-betweens by agents.

The emotional peak is eleven out of twelve. She stops and looks back at the still picture she used to be. The twelfth principle is appeal, the moment you love her, and it lands in the final chorus.

Sc. 2 · Why

A note from the director.

I’m a graphic designer with a master’s in marketing, a UX/UI specialist and a programmer. I have wanted to animate since my first memory: watching Disney’s Robin Hood on VHS. I’m a self-taught illustrator, and I could never pay for an animation education because of the cost of living in Venezuela; the humanitarian crisis forced me to migrate.

Now, thanks to these wonderful tools, I can live the experience of working in an animation studio from my own desktop. The resource constraint I work under comes from where I come from. My favourite book is The Illusion of Life by Frank Thomas and Ollie Johnston, and the main reason for this project is to add my grain of sand and pay homage to animation, which I can finally summon as if with a magic wand.

Juan

Sc. 3 · The process

Eleven steps, one exposure sheet.

  1. Film frame. Keys light up as hearts on the exposure sheet.
    Film frame. Keys light up as hearts on the exposure sheet.

    01

    Concept and song

    Juan and Claude defined the idea, and Sol, a review agent, critiqued it and proposed the peak at eleven of twelve. Juan wrote the lyrics; Suno made the music and voices. Then we measured the tempo and built a beat map: every word of the song has its exact second.

    122.5 BPM, one word per cell
  2. Film frame. Breathing, timed on a 12-cell exposure sheet.
    Film frame. Breathing, timed on a 12-cell exposure sheet.

    02

    Storyboard and animatic

    Claude split the song into shots, one per line of lyric, and cut an animatic with karaoke and the counter.

  3. Model sheet. The 1920s ink era.
    Model sheet. The 1920s ink era.

    03

    A model sheet per era

    Mina, an image agent in ChatGPT, drew Claudia’s sheet for each era: front, three-quarter, profile, back and expressions. Each era was made using the last as reference, so she evolves instead of being redrawn. Juan designed looks of his own, including her 1990s outfit.

    she evolves, she is not redrawn
  4. Contact sheet of the frames handed to the video model.
    Contact sheet of the frames handed to the video model.

    04

    First and last frames

    With the sheets approved, Codex generated the first and last frame of every clip.

  5. Film frame. A swing on an arc.
    Film frame. A swing on an arc.

    05

    Clips in motion

    Juan generated the clips in Google Flow from those two frames, with prompts Claude wrote second by second and a very strict character lock.

  6. Film frame. The same head turn in three drawings and in nine.
    Film frame. The same head turn in three drawings and in nine.

    06

    Twelve frames a second

    Claude brought every clip down to 12 fps, animating on twos like classical animation, fitted it to the exact beat and joined the eras with page turns.

    on twos: each drawing, twice the time
  7. Film frame. The solid drawing gag.
    Film frame. The solid drawing gag.

    07

    Demos written in code

    Each principle has a demo animated in code, HTML turned into video with HyperFrames: the bouncing ball, the exposure sheet, the turning cube, the head turn.

  8. Drawing sheet. She is the bouncing ball.
    Drawing sheet. She is the bouncing ball.

    08

    Claudia, frame by frame

    All but one of the explanatory demos star Claudia in pencil drawings made one at a time. Codex drew 13 sheets, 89 drawings in all. Claude cut, aligned and animated them.

    89 drawings, 13 sheets
  9. Film frame. The screening room.
    Film frame. The screening room.

    09

    Two homages

    A screening room with nine animators seen from behind, generic, with no real person named or portrayed, and a 1960s genie number that comes out of a lamp and goes back in.

  10. Production still. The photocopy page turn.
    Production still. The photocopy page turn.

    10

    Post-production by a team of agents

    Claude split the polish among agents working in parallel. The counter appears only when she earns a principle, in each era’s lettering. The 23 page turns follow each era’s medium: paper, acetate, photocopy, scanner, render tiles, editor interface. The lyrics move in a different free typeface per era. One agent researched the fonts and another measured the contrast of every line. QA agents checked the render frame by frame.

    the transition is the medium
  11. Film frame. Every era in one flipbook.
    Film frame. Every era in one flipbook.

    11

    Edit and render

    Everything is composed and rendered from code, so every version is exact and can be repeated.

Sc. 4 · Discoveries

What we found out.

Slowing drawings down reveals them.

The head turn was so fast the drawings disappeared. Holding each one twice as long is what made them visible.

Evolve, don’t restart.

Feeding each era the one before it kept her recognisable across a century of styles.

A transition can tell the history.

When the page turn is made of the era’s own medium, the edit explains how animation was manufactured.

Every platform draws its line somewhere else.

Knowing where each safety filter sits is a production skill, not a hack.

Having the bullet doesn’t mean firing it.

The free fallback worked, and the better cut was still a trick from the old toolbox.

Constraint is the method.

No video budget pushed every decision toward craft: reuse, timing, editing, drawing.

Sc. 5 · Retakes

What went wrong.

The rebel streak
Flow kept spinning and floating the clay streak like a loose ribbon. In every prompt it became “painted into the hair”, forbidden to rotate, float or change sides.
The filter
A big-eyed 3D style and an outfit that read as a uniform made Flow refuse clips. Even listing those words as things to avoid tripped it. Claudia was stated plainly as an adult professional animator, the ambiguous words came out of the prompt and the negative, and the shots got wider and calmer.
The kryptonite bullet
Flow refused the genie dance even after a rewrite. Juan ran the same prompt and frames in Grok’s free tier, about one generation a day. It worked and it looked different from everything else, so we cut it. The final uses the Flow clip played in reverse: she goes back into the lamp.
The invisible flashes
A QA agent found 16 single frames where the previous drawing leaked through because the new file hadn’t loaded. Preloading every drawing and only toggling it took it from 16 to 0, measured frame by frame.
The 1920s rig
The ink puppet went through 10 versions: the neck, the sleeves, hair that folded like a hinge.
Too fast to see
The frame-by-frame head turn went by so fast the drawings couldn’t be seen. The fix was animating on twos.
Blender
We tried a 3D turntable and dropped it. More work than value.

Sc. 6 · Credits on the desk

Who did what.

Juanhuman, directorThe idea, the lyrics, every approval, every Flow and Grok run, Claudia’s 1990s look.
Claude Opus 5.5lead agent, in Claude CodeConcept and script with Juan, beat map, storyboard, Flow prompts, every animation in code, edit, mount, render.
Minaimage agent, ChatGPTThe character sheets of every era.
CodexOpenAI coding agent with image generationFirst and last frames, the frame-by-frame sheets, colour credit cards, the curtain.
Solreview agentCritiqued the concept, the 11/12 peak, naming, a site contrast audit.
Claude’s sub-agents19 tasks in parallelPrompts, demos, QA, counter, page turns, lyric typography, font research, contrast audit.
Google Flowvideo modelThe moving clips.
Grok, free tiervideo modelOne genie shot, later cut from the film.
Sunomusic modelMusic and voices. The lyrics are Juan’s.
HyperFramesHTML to videoRendering the code-made animation.

Sc. 7 · The receipt

Keys to my heart

  • Production3 days
  • Song3:16 · 122.5 BPM
  • Principles12
  • Eras7
  • Model sheets9
  • Drawings, frame by frame89 on 13 sheets
  • Frames generatedabout 110
  • Flow clips25
  • Demos in code20
  • Page turns23 in 6 media
  • Era typefaces11
  • Agents and AI tools8
  • Sub-agent tasks19
  • Commits80
  • Test renders26
  • Video generation$0

Total: 1 Claudia, alive

$0 is the incremental cost of generating video, on Juan’s existing Google AI Pro credits and Grok’s free tier. It is not $0 of subscriptions, labour, tools or creative value.

The receipt inside the film lists 69 drawings, 24 clips and 17 demos. These are the later counts from the production log.

End

Keys by humans. In-betweens by agents.

Original lyrics and direction: Juan.

Animated by Claude Opus 5.5. Character sheets: ChatGPT. Frames and frame-by-frame drawings: Codex. Moving clips: Google Flow. Music and voices: Suno.

Claudia is an open character by anabology (claudia.gallery).

The art, the motion and the music were made with AI tools, directed and approved shot by shot by a human. Typefaces are free fonts under OFL and Apache licences.

An independent, educational project. Not affiliated with Anthropic, OpenAI, Google or any animation studio, and it uses no studio imagery, logos or footage.

Watch the film ↗ Back to the timeline Markdown for agents