Inspiration

We have a deep background in film and film production.

background

We generated a lot of ideas, but we wanted to build something that didn’t already have a substantial AI solution. So we interviewed a bunch of product managers at some leading film software companies and a couple of studio development execs. They helped us whittle down our list. We were sad to see clearance, continuity, audition processing, and strip boards get crossed out. Maybe we'll come up with a better mousetrap for those later.


interview results



We are addressing two needs:

  1. Support fundraising and script coverage by creating a simple animatic from a script
  2. Engage investors and studio execs during production with a living rough cut



AI.nimatic

From Screenplay to Living Rough Cut




What it does

AI.nimatic turns a script into a LIVE ROUGH CUT


Two agents review the work

Generation is not the hard part. Judging what came back is. Two agents do that.

Agent What it looks at What it decides
Beat review The scene as written, next to the beats extracted from it Whether that's a fair reading of this scene — turns merged, lines dropped, beats that don't match the page
Panel review The drawn panel, the character's reference art, the beat Whether the character reads, whether the action is right, who's in frame, shot size

When an agent rejects its own output it writes new direction and runs again. It decides when it's done — acceptance is the model's call, not a retry counter. Every attempt is kept: what it saw, what it objected to, what it changed. Both agents run as google-adk workflow graphs — a rejection is a route back to the generating node.

On the reference script the panel agent caught a beat where Rocky was drawn already wearing the hat he's written as reaching for. It named the fault, rewrote the direction, and the redraw was correct.

One function decides what you're watching

Nothing stores whether a shot is a drawing or a film. It's derived, per beat, from what exists on disk — most real wins.

Priority Kind From
1 Daily a take covering several beats
2 Footage footage/
3 Motion motion/
4 Edited panel edited-panels/
5 Still panel panels/

Adding footage is a copy, not a code change. Remove the file and the animatic shot comes back on the next render.

The encoder, the API and the browser all call that one function, so what gets built, what gets reported and what you're watching can't disagree. State is computed fresh every time it's asked for — never cached, never stale.

That's what makes the cut live. Shoot a scene, drop it in, and the film is more real than it was a minute ago.

Through the web interface you can use text (and Gemini) to update panels or upload your own edited image to replace a panel.


panel updates


Pain Point #1: Now you have an animatic to support fundraising and supplement script coverage.


Pain Point #2: As production begins, you can splice the dailies into the animatic so that investors and studio execs can see the progress IN THE CONTEXT of the full story.


Go ahead, click on the two videos below to see the original Gemini video and then the updated version after some text re-rendering, image upload and spliced dailies updates.


Original Animatic Updated with Dailies
Original Updated



How we built it

It started with our eight industry interviews. We ended up getting a pretty good sense of how AI was currently being used across the stages of film production (especially in the near ubiquitous Entertainment Partners Movie Magic Budgeting and Movie Magic Scheduling). We got great guidance on things like "use simple image rendering, we don't want people to get caught up in look and feel at this point" and "a little bit of motion goes a long way" and "there has to be direct editing (AI or Photoshop) of individual beat panels".


This was enough to build a product spec.


Coding began with the IBM Bob IDE.

1. It absorbed extensions and settings from our existing VS Code IDE

2. Basic scaffolding

3. Led product definition + tech stack selection

4. Drove development through v3


We've used other coding platforms and Bob's "personality" was much less sycophantic and long winded (thank you!).


When we ran through our Bob credits, we switched to Gemini Antigravity and even did a code review to see how Antigravity might have addressed some of our core principles in a different way. The insights were good, but not meaningful enough to change our approach. Special thanks to the workplace for letting us use their account.


Our other guidance was "separate original build, editing, and viewing. We will want to send links that have limited access (e.g., only sees the LIVE ROUGH CUT). Keep it simple." We decided to avoid the AI generated website with black background, neon bars and action cards across the top. Maybe for real production.


Finally, we got a scriptwriter and an AD to spend ten minutes with it and give us notes.

The pipeline

Step Called
1. Extract scenes and beats from the script gemini-flash · JSON schema
2. Review the extraction against the scene gemini-flash · JSON schema · agent
3. Resolve characters and locations deterministic — regex, difflib
4. Cast a voice per character gemini-flash · JSON schema
5. Draw a panel per beat gemini · image
6. Review each panel against its reference art gemini · vision · JSON schema · agent
7. Fit narration to the beat's duration gemini-flash · JSON schema
8. Generate dialogue and narration audio gemini · TTS
9. Select which beats get motion deterministic — ranked sort
10. Generate motion for those beats veo · MP4
11. Resolve what each shot renders as deterministic — priority over disk
12. Assemble the cut ffmpeg / ffprobe · MP4


Four of the twelve steps make no model call at all. The same script produces the same beats, the same shot selection and the same cut.



Challenges we ran into

  1. We used Dead Poet's Society and Rocky to build the prototype [see legal text below]. They are well enough known that we're pretty sure Gemini used some extra information in generating the panels – it wasn't the pure, no reference example that might have been good.
  2. It took a couple of iterations to lock down character consistency. Our character step was originally just for voice assignment, but we extended it to a set of character art profiles.
  3. We were digging the mood of IBM Bob when our credits ran out. We miss him.
  4. It took us a couple of iterations to optimize the re-rendering of the rough cut. At first each change triggered a beat-by-beat re-render. That was a long 44 minutes for the first edit set. Then we built sub-animatics so that changes became more about stitching new and old assets versus an end-to-end re-render. Now three changes might only take about five minutes.



Accomplishments that we're proud of

The product spec after customer testing was sooooo much better than the original. Also the 44 minutes to 5 minutes rough cut render time reduction made the bug correction and user experience 100x better.



What we learned

  1. Methods for working with Gemini to update images, not just create from scratch (lots of error and repeat)
  2. Antigravity likes the movie Dead Poet's Society



Data Source

No external datasets or APIs. The only inputs are the screenplay PDF, character reference art we created ourselves, and video clips used as dailies. The script is the sole source of content — parsed for scene and beat structure, and swept separately for the prose that describes how characters look.

What's next for AI.nimatic

We have follow up calls with a couple of our industry advisors to get more feedback on the current version.

We've started to mess around with an episode of The West Wing. TV is different because it cuts back and forth a lot between two running scenes. Look for a first pass at the episode "The Supremes"

The next big leap will be to upgrade how we handle "model sheets", being able to put some character art in a folder to inform the panel rendering.

We also did a first test of "listening" to the dailies and building a clone of real character voices and slotting them throughout the LIVE ROUGH CUT. It wasn't quite ready by submission time.



Click through on the "Try It Out" link. We hope you like it.




AI.nimatic does not claim any ownership of the IP of Rocky or Dead Poet's Society. The script and movie clips are widely available and are not being used for the economic benefit of AI.nimatic.


Our IP lawyer buddy had an 800 word paragraph instead of that little short disclaimer. She wasn't happy, but said it was "adequate" for this project.

Built With

Share this project:

Updates

Submission history