Type an idea or paste a script. It's researched, written, voiced and animated. Every frame is drawn in code and checked before your MP4 renders. No stock footage. No image models.
Why SIPs beat timing the market
The product
Recorded in the app, from sign-up to export. Waiting time is sped up; a real film takes a few minutes.
How it works
The same process a director follows: a script, a voice, a plan for every shot, then the picture, checked before it ships.
01Start with an idea or a script
One line is enough. Or paste a full script and every word you wrote is kept, exactly.
02A script with sources
It researches the topic, writes a hook that holds, and lists a source for every claim, so you can check it before a frame is drawn.
¹ Rayleigh scattering ∝ 1/λ⁴
² (700/450)⁴ ≈ 5.9 · Baez, UC Riverside
³ Cone response, CIE 1931 colour matching
03A voice you choose
Storytellers, educators, documentary voices. Every word is timed, so the picture lands on it.
Brian · deep, resonant storyteller
745 words · every word timed to ±10 ms
04Every frame drawn in code
Claude Opus 5.5 directs the film and writes it as code: shaders, paper, light, diagrams, captions. The same moment always draws the same frame.
1function seek(t) {2 const sky = mix(VIOLET, SKY_BLUE, ease(t, 4.2, 5.0));3 paper.fill(sky);4 boat.pose(floor(t * 15) / 15); // stop-motion clock5 sun.glow(0.8 + 0.2 * sin(t));6 diagram.bars(t, [1.0, 5.9, 9.4]);7 captions.at(t, words); // big on the hook8}9window.__film = { duration: 24, seek };
05Checked frame by frame
Before it renders, it looks at contact sheets and 1:1 crops, fixes collisions, flash frames and unreadable text, then checks again.
0.0s
1.2s
2.4s
3.6s
4.8s
6.0s
7.2s
8.4s
9.6s
10.8s
12.0s
13.2s06A finished MP4
Frame-exact, supersampled, colour-tagged for Reels, TikTok, Shorts and YouTube. Download it and post it.
Every frame is code
Each frame is a pure function of time, so any moment can be inspected, fixed and re-rendered exactly. Colours come from physics, numbers from real data, and captions land on the spoken word.
1function seek(t) {2 sky.fill(t < 13 ? VIOLET : SKY_BLUE); // computed from 1/λ⁴3 boat.pose(floor(t * 15) / 15); // stop-motion clock4 light.scatter(t, molecules);5 chart.bars(t, [1.0, 5.9, 9.4]); // red, blue, violet6 sky.turn(ease(t, 12.2, 13.4));7 goldLine.draw(sun, air, eye, t - 15);8 suspects.slideIn(t - 20); // SUN · AIR · EYES9 captions.at(t, words, { big: HOOKS });10}
Drag to seek. The code that draws each moment lights up.
#8db4ff
sky blue, computed
0 image models
used
30 fps
frame-exact
29 styles, 109 looks and 181 templates, every one drawn in code.
Styles
From cut-paper storybooks and Madhubani folk art to glowing maths, neon synthwave and real 3D. Hover to play, try each look's palette, and open one to see what it's made for.
29 styles · 109 looks
Templates
Explainers, launch teasers, festival greetings, poems, data stories and more. Pick one, change the words, generate.
Captions that hook
Every caption is timed to the spoken word and placed around the shot, never over the subject. Pick a style, or turn them off.

Physicssaystheskyshouldbe
PURPLE
Sound on
The opening of a real episode: a storyteller's voice, sound hits on the visual beats instead of a music bed, and captions that turn the hook into the picture.
Any format, any length
Composed for the frame it lives in: text sits inside each platform's safe zone, and the shot plan scales with the length.
9:16
16:9
1:1
1:30
216
words of narration
2
movements
2,700
frames, each one drawn
Made for
Pricing
Pay for minutes of finished film. Failed renders never count.
FAQ
Nothing here is generated as pixels by an image or video model. Claude Opus 5.5 writes the film as code: shaders, paper textures, diagrams, typography, even the sound design. Every frame is a pure function of time, so text is always crisp and correctly spelled, diagrams are accurate, the style stays consistent from the first second to the last, and any moment can be fixed and re-rendered exactly.
A minute of video every month, free. No card needed.