BookYourMat Behind the scenes · October 2026

How we made a 10-minute film with an AI host

BookYourMat is software for Pilates studios. To show it off, we made a ten-minute tour hosted by Becky, its AI assistant. Becky isn't a real person. Her face, her voice and every word she mouths were made with AI. Everything she shows you on screen is the real app.

Directed by Amir Fish. Built, checked and rendered by Claude and a handful of AI services.

10:11finished length: 12 chapters, 81 shots
62shots recorded from the real app, by a robot
~1,200frames read by a machine to check for private data
~$100spent on AI services in total
Becky, the AI host, smiling in a sunlit Pilates studio
Meet Becky. One portrait and one voice became about ten minutes on screen.

Watch it first

The film

Ten minutes. Becky walks a studio owner through a normal week: client messages, a sick instructor, bookings, payments, gift cards and the website.

12chapters
81shots, each one narrated line plus one picture
19shots from AI video or AI pictures
~119voice lines
~8 minBecky in a corner circle
~2 minBecky full screen, in costume
2computers working at once
~70notes in one review round

Two months apart

Then (August) vs now (October)

In August we made a 15-second BookYourMat ad. In October we made this ten-minute film. Here is what changed in between: what couldn't be done in August, and what was manual then and is automatic now.

August

Recording the app was the weak spot

Getting an AI to drive the real app and record it on video barely worked yet.
October

A robot records a make-believe studio

Claude built a fictional studio with fictional clients, and wrote scripts that a robot browser acts out and records. The recorder itself was chosen by measurement: about 15 capture setups were tested, and the winner records at twice the resolution, with every click on screen within 81 ms of when it happened. A guard refuses to run the renaming script against anything but the local, made-up database.
August

Cut by hand in CapCut

The 15-second ad was recut by hand in a video editor.
October

The film is code

There is no editing timeline. Each chapter is a written plan. Zooms and clicks are pinned to the word Becky is saying, so the voice is the clock. A note becomes a code change, and only the chapter it touches is rendered again. The rest comes from a cache.
August

Becky never spoke on camera

She had a voice, not a face.
October

A ten-minute host from one portrait

One still picture of Becky became a host who talks for ten minutes and still looks like herself at the end. The lip-sync model was picked by testing side by side: OmniHuman first, then HeyGen Avatar 4, which won.
August

Checking meant Amir's eyes

If something was wrong, he had to spot it himself.
October

Machines check the film

A machine reads the text on about 1,200 frames to catch private data. Other checks find a frozen face, a picture that sits still too long, a click that doesn't show, and pixel differences between the two computers.
August

One laptop

Everything ran on one machine, one step at a time.
October

Two machines, three copies of the app

The Mac and a Google Cloud machine share the work. The cloud machine runs three separate copies of the app and its database side by side.
August

The ad showed the app as it was

The video followed the product.
October

The film improved the product

When a shot looked weak, the agent changed the app itself. The inbox was redesigned in the middle of the film work into a plain message list, and its shots were recorded again. Amir asked for a present on the gift card, so the certificate the recipient sees got the same bow as the purchase card.
August

Lessons lived in someone's head

Nothing carried over to the next video on its own.
October

It learns

Every note is sorted: a one-off fix, a rule for BookYourMat, a rule for any film, or a new automatic check. The rules go into a playbook, so the next film starts out better.
August

Publishing by hand

Export, upload, done.
October

Publishing is part of the job

The YouTube chapters, the /tour page on bookyourmat.com, and a thumbnail placed on the very first frame so WhatsApp previews look right.

Still human, and that's part of the story

  • Taste and notes. Amir watched every cut and wrote time-coded notes. Nothing shipped without his OK.
  • About 15 lip-sync clips, uploaded by hand. The final corner-circle takes came from ElevenLabs' lip-sync tab, which has no API.
  • Dragging the file into YouTube.

Section 1

Four ways to make a picture

Every second of the film comes from one of four sources. Claude ran all of them, mostly with nothing more than an API key.

1AI video and stills

Short real-life clips were made with Google's Veo 3.1: Becky walking in, the school run in a car, the front desk, Lena the instructor sick in bed, and clients leaving class with a hug. Each clip costs about $0.65. For the hug, two takes were made and the better one kept.

Still pictures came from Nano Banana Pro (Google's Gemini 3 Pro image model), at about $0.10 each: the costume sets and the class photos for the made-up studio.

Strip of stills from the AI video clips
AI video clips. Stills from the Veo clips used in the film. Nobody in them is real.
Two takes of clients leaving the studio, side by side
Two takes, one kept. The closing shot of clients leaving after class was generated twice. The better take went into the film.
Three AI clips: school run, instructor sick, Becky walking in
Everyday moments. The school run, Lena calling in sick, and Becky walking in. Each one started as a short written prompt.
Four costume sets with magenta screens
Costume sets from Nano Banana Pro. A game show, a nature documentary, a curtain call and a team huddle. The magenta areas are blank screens where the app gets dropped in later.
Huddle set next to the finished film frame
Set to film: the huddle. Left, the generated set. Right, the same set in the finished film.
Nature documentary set next to the finished film frame
Set to film: the nature documentary. The blank screen now shows the real app.
Machine check of the game show set, with the detected screen outlined
The machine finds the screen. A script locates the magenta screen's four corners and where Becky's face sits, so the app and the lip-sync land in the right place.
Five generated Pilates class photos
Class photos for a studio that doesn't exist. Added because the booking screens looked bare without them.

2Talking Becky

Lip-sync takes a still portrait of Becky plus one voice line and turns it into a video of her saying it. It also moves her head and her hands a little, so she looks alive.

The tool was HeyGen Avatar 4, run through fal.ai at about $0.10 per second of video. Claude ran it with just an API key. OmniHuman was tried first, but between sentences her smile dropped and her face drifted away from her portrait.

To be honest about it: the final corner-circle takes were made in ElevenLabs' lip-sync tab, which uses HeyGen Avatar 4 but has no API. Amir uploaded about 15 clips there by hand.

First try

OmniHuman

Animates a whole face from one picture. It worked, but her smile dropped between sentences and her face drifted. Over ten minutes, viewers notice. It stayed only in a few full-screen costume scenes, where it looked right.

What we used

HeyGen Avatar 4

Holds her smile between phrases, keeps her face steady, and closes her lips properly on p, b and m. Every line Becky says in the corner circle uses it.

Strip of frames from a lip-sync clip
One lip-sync clip, frame by frame. Mouth, head and hands all move, from a single still picture.

3Animation in code (Remotion)

Remotion draws video from code. It makes everything that sits on top of the app: zooms, captions, labels, Becky's circle, cards and pills. Because it is code, a change is an edit, not an hour in a timeline.

Six frames from the film showing zooms, captions, cards and Becky's circle
Drawn by code. Six moments from the film. The app recording is underneath; everything on top of it was drawn by Remotion.
Film frame with Becky in front of the app
Becky meets the app. A lip-sync clip and an app recording, put together in code.

4Robot screen recordings: the biggest leap

Claude built a make-believe studio called "Harmony Pilates", with fictional clients, classes, payments and messages, in a private copy of the app. Then it wrote scenarios, like "a client asks to move her class", and a robot browser (Playwright) acted them out and recorded the screen. Each recording marks where every click happened, so the film can zoom to it at the right moment.

Two real-world surprises:

  • The app shows the real time. A morning scene recorded in the afternoon looked wrong, so two shots were recorded again at 7 AM.
  • The app keeps settings in a cache for 60 seconds. One recording timed out waiting for a change to appear. The fix: that scenario now saves through the settings API.
Four raw frames from a robot browser recording
Raw recording. Four frames from one robot take, before any zoom or caption. Every name here is made up.

Section 2

The film checks itself

Claude doesn't just make the film. It checks it, frame by frame, and shows its work. These are the real check sheets.

1

Contact sheets

Every chapter is turned into a grid of frames, so a whole scene can be judged at a glance.

Contact sheet grid of film frames
A contact sheet. One look shows whether a scene flows.
Frame-by-frame check of the costume callback at the end
The ending, frame by frame. "Coach, field guide, game show host": checked so the hard cuts never flash the empty stage.
Becky's circle badge fading in, frame by frame
Becky's circle fading in, checked one frame at a time.
2

Frozen-face detector

Finds moments where Becky's face stops moving when she should look alive. In chapter 1 it flagged a still of 0.13 s against a limit of 0.12 s. On a closer look it was a smiling pause with her lips closed, so it was accepted.

3

Static-picture detector

Flags any stretch of 2 seconds or more where the picture doesn't change at all. A still screen is a dead screen.

4

Privacy scan

A machine reads the text on about 1,200 frames. The list of names it hunts for is built, read-only, from every real client's full name in production. If a real name ever shows up on screen, the check fails.

5

Click check

Every click has to land 0.25 s before the word that talks about it, give or take one frame.

6

Mac vs Linux pixel check

Chapters drawn on the cloud machine are compared with the Mac's version, pixel by pixel (SSIM and PSNR). If they don't match closely enough, the Mac's version is used.

The same text drawn on the Mac and on Linux
Same text, two machines. Linux draws fonts a little differently from a Mac. The check measures how much.
7

Measuring a hand wave

Becky's opening wave lasts from 0 to 0.25 s, and "I'm" starts at 0.07 s. A hard cut keeps both but jars; a slow fade hides the wave. The fix was a measured compromise fade.

Two previews of the opening fade compared at four time points
Two fades compared at 23.7, 23.9, 24.05 and 24.3 s. In the top row the wave shows; in the bottom row it is lost in the fade.

Section 3

Two machines at once

The film was made on Amir's Mac and a Google Cloud machine (8 cores, 31 GB of memory) at the same time. The Mac runs the show; the cloud machine takes a share of the slow work.

3separate copies of the app and its database on the cloud machine
134 sto get all three copies ready
~5 sto reset a copy to the made-up studio before each take
~19 of 31 GBpeak memory, including everything else on that machine

Recording. The cloud machine records three shots at once while the Mac records a fourth. A shot there is slower (101 to 155 seconds, against 43 on the Mac), but four at a time wins.

Rendering. Chapters are split between the two machines, then compared pixel by pixel (see above). One chapter passed easily (SSIM 0.989, PSNR 33.8). The phone chapter fell short on PSNR, so the Mac's version was used.

The limit. The cores ran out before the memory did. The film's jobs have hard caps, so they can't slow down the other services on that machine.

Section 4

The director and the agent

Amir talks to a coordinator Claude. The coordinator turns his notes into tasks and hands them to a film agent, which fixes them and sends back a short preview. Amir never opens an editor.

Amir's note→gets an ID→sorted: fix / BYM / film / check→agent fixes it→short preview→Amir's OK
Amir's time-coded review notes, page one
Real notes from one review round, written in Apple Notes while watching. Each time code became a numbered note.
Amir's review notes, page two, with a screenshot of the Harmony Pilates intro pack
Same round, page two. The 05:19 note asks for a present on the gift card the recipient sees; the agent added the bow to the app. The pasted screenshot is the made-up Harmony Pilates studio.

At 0:08 the s in "the payments" is too sharp.

Note
One word, a harsh "s".
Fix
De-essing on that phrase only, then a preview of just those seconds.

"Costumes optional." looks frozen, and the sound cuts off.

Causes
Three at once: the take was nearly still in that pause; her breath dropped straight to digital silence; and the preview was resampled from 30 to 25 fps, which repeated every 5th frame.
Fix
A 100 ms fade on the voice, the cut moved 0.2 s onto live frames, and previews now cut at 30 fps.

The three cards flash by too fast.

Cause
"the rest off your plate" lasts only 1.06 s, too short for three cards.
Fix
The flashes now start earlier, on "me", so each card gets its moment.

She has a double forehead.

Cause
Lip-sync ran on a crop of her face, and the crop showed at the seam.
Fix
Lip-sync on the whole frame instead of a face crop.
Three frames of Becky from the ending shot
The ending shot where the face-crop seam showed up. It was redone with whole-frame lip-sync.
  1. Write it downEvery cut is watched second by second. One round produced about 70 notes, each with an ID and a time code.
  2. Sort itA one-off fix, a rule for BookYourMat, a rule for any film, or a new automatic check, so it can't come back.
  3. Fix it where it startsWording goes back to the script. "This screen looks bare" goes to the app or the made-up data. Timing goes to the chapter plan.
  4. Prove it on a draftOnly the changed chapters are rendered again, at half size, in minutes. The full film is rendered at full quality once, at the end.
LessonThe first 40-second opening took one AI agent 2 h 18 min: mostly thinking step by step, plus six full re-renders, each to check one small fix. After that, the work was split across parallel agents (the engine, the made-up studio, the script), with quick drafts for every check and one final render.

Section 5

What it cost

Rendering and recording ran on our own machines, so they cost nothing extra. The rest was time: the script, several rounds of notes, and many frame checks.

ItemCost
Lip-sync, including the first tries$46
AI video clips (Google Veo)$30
Voice for about 119 lines, plus every re-take$3
One month of an ElevenLabs plan (for the hand-made lip-sync)$22
Total in AI servicesabout $100