Build my own studio, on my own Mac, that turns my script and voiceover into an animated, roughly ten-minute YouTube video. Its pipeline draws on the many AI video studios and editors I reviewed (see the credits), but it runs on my own keys: Claude, on my subscription, does the thinking; Google's image and video models make the pictures and clips; nothing costs money until I press a clearly priced button; and nothing plays in the video until I've approved it.
A personal note: visual and audio entertainment is changing fast. Once the cost of visual animation comes down, people have incredible imaginations to bring to it. YouTube automation is where this starts for me, not where it finishes.
In short
Seven steps. Script, storyboard, characters, places, scenes, edit and render.
Claude does the thinking. It writes the storyboard, reviews the pictures and clips, and picks which scenes to animate, from my terminal or from buttons in the app.
Every paid call is priced and logged. Pictures and clips come from Google or Fal AI, whichever I choose; each call's cost is recorded, and a retried job never pays twice.
The same person and the same room in every picture. Each cast member's approved portrait, and each place's approved picture, goes with every scene they're in; naming someone in an edit brings their portrait.
The first real video is under way. All 146 scenes of Surviving a Year After an EMP are drawn; next come Claude's review, the clips, the sound and the render.
Mash was built in slices: each one a small, finished piece, built, tested and approved before the next began. This page shows what the 35 slices added, how the parts fit together, and the week's main problem: making the same person and the same room look the same in every picture.
The seven steps
Every video goes through the same seven steps, each a page in the app, each ending with something to approve.
Step
What happens
1 · Script
The voiceover and its word timings come in, and the narration is cut into scenes of 3 to 6 seconds.
2 · Storyboard
Claude writes each scene's picture, camera move, motion and sound, plus the cast and the recurring places. I read, edit and approve it.
3 · Characters
The look of the video (a drawing style), and one approved portrait per cast member.
4 · Places
One approved picture per recurring place, such as the main character's kitchen.
5 · Scenes
Every scene's picture, and the short video clips for scenes that move, made in bulk and approved.
6 · Edit
A timeline: pictures and clips, music, sound effects and subtitles.
7 · Render
The finished MP4 and its captions file.
Inside the app
Six screens from the video in progress, Surviving a Year After an EMP, taken on 6 October, in the order you'd meet them.
Storyboard. The first two of the 146 scenes Claude wrote. Each has its line of narration, then who is in it, what they're doing, where, the place whose picture it's drawn with, the shot and camera move, how things move, and a word for the sound. Every field can be changed by hand; this storyboard was approved on 4 October.Scenes. The top works on a range of scenes, here 1 to 14, with what's paid and what's free in separate columns. Below it, the whole video: all 146 pictures drawn and 145 approved, 39 flagged by Claude's review, and 12 out of date, drawn before a change to their storyboard, portrait or place. Then the grid, one tile a scene.A scene's panel. Claude's review flagged scene 31: the kitchen has a second sink in the foreground. Its note can be used as the edit as it stands. Every button that costs money says how much before it's pressed.Circle to edit. Draw around the part to change and say what to do with it; everything outside the circle stays as it is. The circle and the words here were drawn for this page, and the edit wasn't sent.Edit. The preview and, beside it, the inspector for the scene under the playhead: approved, and Claude's review says it looks right. Below, the timeline's lanes: the sections, the scenes, the voiceover, sound effects dropped in from the Finder with the storyboard's sound words as hints between them, music, and the captions.Spending. What this video has cost so far: $15.05 over 217 calls, almost all of it pictures from Google, with every call listed by its model, provider and price. The one call on 6 October came from slice S19, added that day after the rest of this page was written: pictures can now also be drawn by OpenAI's GPT Image 2.5 Flare, through Fal AI.
What was built, step by step
Each card is one slice, with its number, under the step where you'd see it. Cards marked “no slice” are bigger changes made between slices. The chip shows the day, from pale to dark.
Slices a day:30 Sep · 141 Oct · 22 Oct · 94 Oct · 45 Oct · 6
1
Script
2 slices
S130 Sep
Voiceover and word timings inThe recording, and a file giving the time of every word in it.
S230 Sep
Scenes from pacingThe narration cut into scenes of 3 to 6 seconds.
2
Storyboard
4 slices
S330 Sep
Storyboard with Claude CodeClaude writes every scene's picture, camera, motion and sound.
S8b30 Sep
DiagramsHand-lettered boards for lists, numbers and comparisons.
S16b4 Oct
Rename a cast member“The Survivor” became Jack, in every scene and portrait.
S175 Oct
Places in the storyboardThe recurring rooms, each described once; every scene names its place.
3
Characters
4 slices
S630 Sep
A drawing styleThe look, its example pictures, and a preview on the storyboard.
S730 Sep
PortraitsOne approved portrait per cast member, sent with their scenes.
S164 Oct
Hands, feet and hairSet once in the style, for everyone; hair as one solid shape.
S16c5 Oct
Mittens, and dressedBlack mitten hands and feet; trousers, shorts or a dress below the waist.
4
Places
1 slice
S17b5 Oct
The Places stepA wide, empty picture of each place, approved like a portrait.
5
Scenes
9 slices, 2 more changes
S830 Sep
Scene picturesDrawn in the style, with the portraits of the people in them.
S8c30 Sep
Circle to editChange only what's circled, or bring something in from another scene.
S1030 Sep
AnimationShort video clips made from the pictures Claude picks.
no slice1 Oct
Safe retriesA paid job that's retried skips what it already made.
S12d2 Oct
The clip promptSee and edit what's sent to the video model.
S12e2 Oct
Claude reviews a clipIt reads sheets of frames and writes a clearer prompt.
S12g2 Oct
Approving a clipWhat plays in the video is what's approved.
S12f2 Oct
Lessons from clip reviewsA one-off action says how it ends; no small props in hands.
no slice2 Oct
Approve allA range of pictures and clips approved at once.
S17c5 Oct
Scenes use their placeThe room's picture goes with every scene set there.
S185 Oct
Names in edits“Make this Jack” brings Jack's portrait along.
6
Edit
8 slices, 1 more change
S930 Sep
Motion and timelineSlow camera moves on still pictures, on one clock.
S1130 Sep
SoundEffects and music by section, later replaced by the tracks.
S11b1 Oct
Timeline editorA full-window editor: preview, inspector, clock and tracks.
S11c1 Oct
Music on the timelineDropped in, moved, trimmed and faded.
S12b2 Oct
No generated sound effectsEffects come from my own library instead.
S12c2 Oct
The effects trackDropped from the Mac's Finder, under the storyboard's sound hints.
S154 Oct
Subtitle stylesClean, Karaoke or Whisper, drawn on the video.
S15b4 Oct
Subtitle fonts and coloursMy own font, colours, size and height.
no slice5 Oct
WaveformsEach sound clip on the timeline shows its waveform.
7
Render
1 slice
S1230 Sep
RenderThe MP4, at a standard loudness, with a captions file.
Across every step
6 slices, 3 more changes
S030 Sep
FoundationThe app, its database, and a background worker for long jobs.
S530 Sep
Providers and costsEvery paid call is logged with its price.
no slice1 Oct
The Spending pageWhat was spent, by month, project and provider.
no slice2 Oct
A second providerFal AI beside Google: choose who makes the pictures and clips.
S132 Oct
Claude buttonsClaude's tasks run from buttons in the app, too.
S13b2 Oct
SpacingOne vertical spacing scale for every page.
S13c2 Oct
The clip model in SettingsWhich video model makes clips, for every project.
no slice4 Oct
vidmash becomes MashA new name, and its own icon.
S18b5 Oct
One source of truth per thingThe style gives the look; people come only from portraits, rooms only from their pictures.
Slice S4, importing a shot list, was dropped on 30 September: Claude's storyboard decides the pictures instead. 3 October had housekeeping only.
One look: the same person, the same room
On 4 October, while drawing the video Surviving a Year After an EMP, the people and rooms changed from one picture to the next. Image models draw each picture fresh, so anything the instructions don't pin down comes out differently each time. Eight slices over two days gave every person, and every room, a single source to be drawn from.
People: one cast, drawn the same way
S16 hands, feet and hairS16b renameS16c mittens, dressed
Nothing said how hands, feet or hair are drawn, so every portrait invented its own: white mitts, black blobs, skin-coloured hands, stubble, grey wisps. Now the style sets them for everyone, the main character became Jack as the channel describes him, and every description says what's worn below the waist.
BeforeThe first portraits, 4 October
AfterApproved, 5 October; the boy's nose taken out by hand on 6 October
Left to right: Jack (first drawn as “the Survivor”), Maria Delgado, her son, Ed Kowalski, Mr. Hayes, and the man in the white shirt.
Places: one kitchen, every time
S17 places in the storyboardS17b the Places stepS17c scenes use their place
A person had a portrait to copy, but a room had only words, so each scene drew a new kitchen. Now the storyboard names its recurring places (twelve in this video), each gets one approved picture, and every scene set there is drawn with it.
BeforeScenes 2 to 6, drawn from words alone
AfterScenes 1, 2, 3, 5 and 6, drawn with the kitchen's picture
Names: scene 140, “make this Jack”
S18 names in editsS18b one source per thing
A picture can be fixed by circling part of it and saying what to change. But that edit sent only the picture and my words, so the model had never heard of Jack. Naming someone now brings their portrait along, and the style's example pictures stay out of edits, so the people in them can't leak in.
1 · Drawn. The storyboard said “his face in the dark”, and the white head became a dark disc.
2 · “This should be jack”. No portrait went with the edit: a stranger, out of style.
3 · “Make this Jack”. His portrait went along, but an example picture's wrinkles came too.
4 · Now. One source per thing, and heads stay white at night: Jack.
How it all connects
What goes into Mash, the two halves that run it, what it pays for, and what comes out. Everything in the grey band runs on the Mac. The web app is the part you click through; the worker runs the long, often paid, jobs in the background, one at a time.
Worth remembering
The word-timings file from mash-voiceover is a contract: if its format changes, Mash's reader has to change with it.
Rendering needs the web app running: the renderer fetches the pictures and sound from it.
The worker does one job at a time, so a long Claude task holds up paid jobs behind it.
A paid job never retries by itself. Retrying it by hand skips what it already made, so nothing is paid for twice.
There's no automatic switch to the other provider: a provider that fails, fails, and says why.
The tests never pay: they use stand-ins for Google and Fal AI.
One picture's journey
What happens between clicking Draw and an approved scene, and why the pictures come out the way they do.
1 · I click Drawon the Scenes step, for a range of scenes. The price is on the button, and a paid button never moves under the cursor.
2 · A job is queuedwith one attempt only: an automatic retry would pay again.
3 · The worker picks it upone job at a time, then each scene in turn, showing its progress. Cancel stops it between scenes.
4 · The prompt is builtthe same way for every scene: shot, subject, action, location; “This is Jack's kitchen, drawn the same in every scene set there…”; the people in it; the style.
5 · The pictures go with itin order, each numbered in the prompt: the style's example pictures, for the look only; the portraits of the people in the scene; the place's picture, last.
6 · Google or Fal AI draws itwhichever is chosen in Settings. If it fails, say over billing, the job stops and says why.
7 · Logged and keptits price in the cost log, the picture in the project's folder, a new version waiting for approval, and a key recording what it was drawn from.
8 · I approve itor change it first, by a sentence or by circling a part. Naming someone (“make this Jack”) brings their portrait along.
Claude's review, optional and freeClaude compares each picture with its storyboard, the portraits and the place's picture, and flags what's off. A flag's note can be used as the edit.
Out of dateIf the storyboard, a portrait or the place's picture changes, the key no longer matches, and the scene is marked out of date, to redraw.
What's next
For this video: approve the 146 pictures (after Claude's review), make the clips, add music and sound effects, and render.
For Mash: next is one command that runs the whole pipeline and asks me at each gate. Later, maybe: gentle 3D movement for still pictures, more subtitle styles, thumbnails and Shorts, and getting the script's visual notes straight into the storyboard, so a future video casts Jack by name from the start.
Credits
Mash stands on other people's work.
The studios and editors I reviewed
The AI video tools I looked at before and while building Mash. Each line is how the tool describes itself.
Agent Opus · AI video generator for brands, by Opus.
What Ships · Startup and product launch videos from X.
What Mash is built with
Claude Code · Plans and checks the video: writes the storyboard, reviews the pictures and clips, picks what to animate. It also helped write Mash itself.
Google Gemini API · Nano Banana for the pictures, Veo for the video clips.
Fal AI · The same models, through a second provider.
ElevenLabs · The narrator's voice, through mash-voiceover.
Remotion · The video itself: the preview player and the renderer.
FFmpeg · Sound levels, waveforms, and frame sheets for reviewing clips.