Demo Land
▶ PLAY
Problem
My problem is the same one the film is about. Everyone in AI is posting AI-generated stuff, and most of it looks the same. I decided the only way to stand out was to make something memorable and different.
I hadn't seen anyone do the cartoon and live-action mix of Who Framed Roger Rabbit and Space Jam with AI. That look is nostalgic for people my age, and it doesn't look like the AI video everyone else is making. I also just wanted to try AI film as a medium, for my own interest and to build the skill.
The film is for two audiences: prospective clients, and the AI crowd on X. Both can relate to the message. Its job is attention, at the top of the funnel. Viewers should come away knowing I'm available and that I can stand out from the AI crowd.
The idea
Work & Whistle's line is "They demo. I ship." The film makes that literal. The cartoon world is Demo Land, where everything is shiny, gets made in seconds, and never ships. I'm the one real thing in it.
The rule of the world is that nobody in Demo Land can hear you. That solved two problems at once. My mouth never moves on screen and all my lines are voiceover, so there's no human lip sync to get wrong. And getting out means getting heard, which is what marketing is.
The three escape attempts each show a part of my work. First, an AI agent: a purple envelope robot based on Request Router, which a hype-salesman bullfrog puts on a stage and buries among flashier fakes. Second, design: I draw a beautiful door, the cartoons walk through it, and I bonk off the paint. Third, my side businesses: storefronts with the real Number Zero, Yesterday's Weather, Barbell, and Request Router logos, which pay out in likes the ticket booth won't take. At the end I make this film, the bubble wall becomes the screen you're watching, and I step out onto a real sidewalk until a frog hand yanks me back in.
Approach
The idea was mine. Claude Code did the research, wrote the creative brief, the script drafts and the shot list, built the generation and editing tools, and made a first pass of picks for every shot. I gave feedback at every step, refined heavily, recorded all the voices, designed the logo and end card in Figma, and made the artistic calls. Claude had a lot of good ideas along the way.
One rule shaped the budget: approve everything as cheap stills, cut those to the voiceover, and only then animate. A rejected still costs about 6 cents, and a rejected video clip costs 50 cents to $2. The plan had go/no-go points at every stage and a ceiling of $600. I didn't come close.
How it was made
An original cast
The research turned up a copyright rule early. Style is free to use, but characters, names, logos, and music aren't. So no prompt names the inspiration films. They describe the technique instead, and the cast had design rules: no white gloves with a bow tie, and no rabbit, duck, or cat-and-mouse types.
Each cast member started as a role: a hype salesman who keeps everyone in the bubble, an autocomplete who finishes my sentences wrong, and a sidekick who points the way out. Three rounds of concepts in Nano Banana 2.1 produced Monty, a pinstriped bullfrog, and Otto, a grey parrot. The sidekick is Hex, a rubber-hose bee from the old Work & Whistle brand whose stinger is a mouse cursor.
Me, from a photoshoot
The real me had to be generated too. I did a photoshoot in the costume (black tee, light jeans, white sneakers): 89 photos plus four short videos, including two 360° turns and a walk cycle. Twenty-six of them became the reference set, and an identity sheet built from them went into every image prompt that had me in it.
Nano Banana's edit mode put me into the cartoon world with the world painted and me left photographic. It sometimes painted my jeans and shoes anyway, so "photoreal head to toe" became a rule that every frame got checked against.
A bake-off before choosing models
The biggest risk in mixing a real person with cartoons is that video models even out the frame. They cartoonify the human or make the cartoons photoreal. Before committing, I animated the same three opening shots with four models and compared them.
| Shot type | Model | Why |
|---|---|---|
| Me in the cartoon world | Kling O3 Pro | Kept my face and followed direction. Takes a fixed end frame for gags. |
| Cartoon-only shots | MiniMax H3 Max | Cheap and clean, respects the cel look, renders in about 5 seconds. |
| The real-world sidewalk | Veo 3.1 | The most natural real-world light and motion. |
| Anything with me | Not Seedance 2.0 | Refused my face outright as a real person's likeness. |
The winning takes of those three shots, cut together, made a rough version of the opening. That test was when I thought this might actually work, though I wasn't sure the whole film came together until I saw the final cut.
Forty stills, then an animatic
Every shot was a still before it was a clip. The storyboard is 40 frames, and it's when I started to feel the film was promising.
I recorded a scratch read of the narration with QuickTime on a Yeti mic, and a script cut the storyboard frames to it. The animatic ran about two and a half minutes against a two-minute target, which showed exactly which lines ran longer than their shots. Most of the narration in the final film is still from those scratch sessions, plus a handful of pickups.
Animation and retakes
Animation was the expensive stage, and I redid every shot many times. Getting 31 final shots took 88 video clips. Kling took about two minutes a clip, and 10 to 23 minutes when it had an end frame, so jobs ran in parallel.
Each model had habits to work around. Kling eases into an end frame, which put a pause right before the punchline of the door bonk, so the final bonk is an edit: the walk-in from one take, then a cut straight to the impact and into the fall from another. When the start frame hid my face, Kling drifted me toward an illustration. The fix was to generate a photoreal still of where the shot should end and pin it as the end frame.
Every sign added in the edit
Image and video models mangle lettering, so every sign was generated blank. A compositing script fills each blank panel, tracks it frame by frame as the shot moves, and prints the text or logo on as ink. A key keeps hands and props in front of the lettering. That's how the billboard reads NEW!, then NEWER!!, then NEWEST!!!, and how my real logos got onto the storefronts.
Sound
I performed the cartoon lines myself, bigger than felt natural, and ElevenLabs' voice changer swapped my voice for two of its stock voices while keeping my timing. Thirty-nine sound effects came from ElevenLabs too. Each one is pinned to a moment in its source clip, so when a shot got trimmed, the sound moved with it.
The score came from ElevenLabs Music: a single 108-second piece generated in 13 sections timed to the locked cut. I tried a second, more orchestral version and went back to the first. The music stops on the clapperboard, and the ending plays with no score until the end card.
Lip sync for the cartoons didn't work. The sync model couldn't detect the cartoon faces, and on auto it returned the clip unchanged. So I moved each cartoon line onto the moments its character's mouth was already moving, and muted the two that didn't fit anywhere.
Editing in code
There was no editing app. One file records which take goes in each slot, along with trims, speed changes, and voice placements, and a script builds the whole cut from it with ffmpeg. That made recuts cheap. Change a line, rebuild, watch. The picture locked at rough cut 20, and three more cuts added the music.
For the master, eleven shots that came out below 1080p went through a Topaz upscale on fal for 85 cents. The final render is 1920×1080 at 24 fps.
What it cost
| Model | Used for | Output | Cost |
|---|---|---|---|
| Kling O3 Pro | Every shot with me, plus gags with a fixed end frame | 52 clips | $27.89 |
| Nano Banana 2.1 | Cast concepts, storyboard, keyframes, end frames | 244 images | $15.01 |
| ElevenLabs Music | The score | 8 renders | $6.30 |
| MiniMax H3 Max | Cartoon-only shots | 33 clips | $6.22 |
| Veo 3.1 | The real-world sidewalk | 3 clips | $2.40 |
| Topaz | 1080p upscales | 11 shots | $0.85 |
| Sync lip sync | One failed attempt on the cartoons | 1 clip | $0.47 |
| ElevenLabs Sound Effects | Effects and ambience | 41 generations | $0.32 |
| ElevenLabs Voice Changer | Cartoon voices | 12 lines | $0.24 |
| Total | 280 calls | $59.70 |
Animation took over half of it. The rest of the costs were things I already had: my Claude subscription at normal usage, Figma for the logo and graphics, and a Yeti mic.
Outcome
Demo Land is a finished two-minute film: 31 shots, with my real voice, my real logos, and none of it filmed. I've posted it on X and LinkedIn, and I plan to post it more.