Free guide
Make a Bedtime Story Film With Claude: The Script, the Prompts and the Steps
Updated 2026-10-30
This is how we made "Dot and Owl", the paper-cutout bedtime story in our Reel. Claude Code wrote the story, the code that draws and moves every scene, and the music-box tune. ElevenLabs read the story aloud. The film is 36 seconds, plus a 9-second ending: 45 seconds in all.
Below are the 6 steps, the two prompts to copy, our script, and the fixes for what went wrong for us.
What you need
- Claude Code, on a paid Claude plan or a Claude API account. We used Opus 5.5.
- Papermotion, a free, open-source engine that turns code into paper-cutout films (MIT licence): github.com/francozanardi/papermotion. It needs Node 22.18 or newer, pnpm and ffmpeg.
- A voice. We used the ElevenLabs voice "Beth" for the 6 lines, 274 characters in all. You can also read the story yourself.
Step 1: Set up Papermotion
First install the tools, if you do not have them yet:
- Claude Code: Anthropic's setup page. Sign in once after you install it.
- Node 22.18 or newer: nodejs.org/en/download
- pnpm: pnpm.io/installation
- ffmpeg: ffmpeg.org/download.html
Then open a terminal in an empty folder and run Papermotion's own commands:
npm create papermotion@latest my-story
cd my-story
pnpm install
npx playwright-core install chromium
pnpm render hello
The last command renders a short sample to out/hello.mp4. If it plays, the setup works.
Step 2: Write the story and build the film
Open the folder in Claude Code and paste this prompt. Change the story line to your own.
/papermotion Make a 36-second bedtime story film, 1920x1080, 30 fps.
Story: a little star bounces off her cloud, and a kind owl flies her home to bed.
Write it first as 6 beats of 6 seconds each, with one narration line per beat
(8 to 11 words, simple words a 5-year-old knows, about 4 seconds read slowly).
Show me the beats before you build.
Look: torn-paper and felt cut-outs, a bright royal-blue night with warm gold and
orange accents, layered paper with clear drop shadows and rim light. Make the
characters big: close-ups and medium shots, only one wide shot. Two places: the
sky and meadow outside, and a cosy lantern-lit inside of the owl's tree.
The same character design in every shot. No text or letters inside the scenes.
Keep each character out of every shot until the narration names it.
Sound: a slow music-box lullaby made in code (one melody, 70 to 80 bpm) and soft
sounds for each action, quiet under a voice-over. Keep the bottom 18% of the
frame calm for captions.
Work at high effort. After each draft render, make a contact sheet, list the 3
weakest frames, fix them, and render again. Stop when the characters look the
same in every shot and every beat reads without sound.
Read the 6 beats Claude shows you, and fix the story before it builds anything. Changing the story after the film is built costs a full render. Our first full film took Claude about 45 minutes.
Step 3: Give notes on the draft
Watch the draft as a viewer would. Then give Claude short notes in one message, for example "make the characters bigger" or "the sky is too dark". Sending all your notes at once saves renders.
Step 4: Make the ending
Our first ending was a flat title card, and it looked pasted on. This prompt makes the ending part of the story's world and adds 9 seconds after the film. Change the characters, the set and the words in quotes to match your own story. If you read the story yourself, change "Voice by ElevenLabs" to your own credit or remove it. Keep the "Comment" part only if you will really send people something; if not, end on the credits card.
/papermotion Make a 9-second ending for this film, in the same set, colours and
characters. It is the last scene: Dot asleep on her cloud, Owl in her tree, and the
camera drifts slowly up into the night sky.
0 to 3 s: a soft felt cloud card hangs down on threads from the long branch. These
words float in one at a time (each drifts a little and fades in, about 0.12 s apart):
"Claude wrote the story, / the code for every scene, / and the music."
and a small line under them: "Voice by ElevenLabs".
3 to 9 s: the card lifts away. "Comment" floats in, then the letters S, T, O, R, Y
drop in one by one on threads, each a felt cut-out in a different warm colour,
with a little bounce, then they sway like a baby's mobile. Owl opens one eye to
watch. At 4.3 s a paper strip fades in under the letters with this text:
"I'll send you the script, the prompts / and the steps to make your own."
A soft music-box note as each letter lands, in the same key as the film.
Letters at least 220 px tall. After the render, make a contact sheet and check
that every word is readable and no letter clips the edge or overlaps another.
Step 5: Record the voice
Record the 6 lines, one audio file per line: beat1.mp3 to beat6.mp3. If your ending has the "Comment" part, also record its line as cta.mp3. Ours was: "Comment story, and I'll send you the script, the prompts and the steps to make your own." Use the same voice and the same model for every file, and put them in your project folder. Our ending line read for 5 seconds, so it fit in the 6 seconds after it starts. If yours is longer, ask Claude for a longer ending.
Step 6: Put it together
Ask Claude Code to join everything with ffmpeg. This is close to what we asked:
Put the narration on the film with ffmpeg. Start beat1.mp3 at 0.8 s, then each
next line at the start of its beat (6.8, 12.8, 18.8, 24.8 and 30.8 s). Lower the
music while the voice plays. Add word-by-word captions near the bottom of the
frame, timed to the voice. Join the ending after the film, start cta.mp3 2.9 s into the ending, and export
one mp4 at -14 LUFS.
If you ended on the credits card, delete the cta.mp3 part of that prompt.
For the Reel, we asked Claude to place the film on a laptop screen in a vertical 1080x1920 video. We used a free laptop clip from Pexels.
The script
Dot and Owl. A little star bounces off her cloud, and a kind owl flies her home to bed.
- Dot was a little star who loved to bounce.
- One night she bounced too high, and down she fell.
- Dot jumped and jumped, but home was too high.
- Then a kind owl flew down. "Hop on," she said.
- Up, up, up they flew, all the way home.
- Dot was home. Goodnight, little Dot. Goodnight, Owl.
Each line gets 6 seconds of film. The action in each line happens on screen while the line is read, so the story still works with the sound off.
If something looks off
A character shows up before the story names it. In our first cut, Owl was on screen while the voice said "Dot was a little star who loved to bounce". Tell Claude: "Keep Owl out of every shot until the line 'Then a kind owl flew down'. Check the wide shots too." Our wide shot of the fall also showed her.
The ending looks pasted on. Ask for the ending in the same set, with the same characters, as in step 4.
Words in the ending overlap. Our paper strip first fell across the letters. We asked for a short drop and a 0.4-second fade-in, and it sat cleanly under them.
One line sounds different from the others. We made the last line with a different ElevenLabs model, and it did not match. Make every line with the same voice and model.
The render is slow. That is normal. Our 36-second film took 33 minutes to render on our server. Collect your notes so each render fixes several things.
Credits
Papermotion by Franco Zanardi (open source, MIT). Voice by ElevenLabs. Story, code and music by Claude, from Anthropic. We are not connected to Anthropic, ElevenLabs or Papermotion.
Questions people ask
Do I need to know how to code?
No. Claude Code writes the code. You need to run a few setup commands in a terminal, read the story beats it shows you, and give short notes on each draft.
Is Papermotion free?
Yes. It is open source under the MIT licence. Claude Code needs a paid Claude plan or a Claude API account with credit.
Can I use my own voice instead of ElevenLabs?
Yes. Record each line as its own audio file and use those files in the last step. The film does not change.
How long does it take?
Our first full film took Claude about 45 minutes to build and render. Each round of notes after that means another render.
Get the 16 prompts, free
The Builder's Prompt Pack: copy-paste prompts to plan, build and launch real things with AI, sent to your inbox.
Get the AI news by email
Once a week, News Desk sends the AI stories that mattered, in plain words, with links to the sources.