Blog ·
We made a music video for a rock that blocks your apps
Ahonui blocks the apps you scroll until you've done the habit you keep skipping. Our mascot, a little lava rock named Blocky, just got his own music video. Here's how we made it, what it cost and what went wrong.

1:52 · 18 generated clips · 9 sections · about $45 on Scenario
The first version was dead
Ahonui has streaks and reminders like every habit app. The difference: you pick the habit you keep skipping and the app you open instead, and that app stays blocked until Apple Health shows the habit is done. Reminders ask. Ahonui blocks.
That's hard to show in a screenshot, so we made a film. Five scenes of people glued to their phones, and Blocky dealing with each phone in more and more unreasonable ways.
Our first edit was generated clips in a row with captions on top. Technically correct, completely lifeless. Our review was three words: "I hate it." So we started over. Here's how the second version came together.
Write the rules before the scenes
Before writing a single scene, we listed what could never happen. iPhones only, drawn generically, no logos. Violence only against phones. Nothing crude, no body jokes, no medication. Blocky always looks like Blocky. Every idea after that had to pass the list.
Storyboard in a table, with a price on every shot
Our storyboard was a plain table. Each row is one shot: when it plays, the lyric, what happens, how we'd make it and what it would cost.
| Time | Sung | Shot | Made with | Cost |
|---|---|---|---|---|
| 0:13 to 0:17 | Splash, and now it's gone | Blocky flushes the phone on "splash", deadpan; the guy sinks to his knees | Still, then a 4 s clip | about $1 |
Changing a sentence is free. Changing a generated clip costs money. So we rewrote the board five times before making anything, and the best scenes came from those rewrites: the couple in bed, the arm-wrestling grandma and Blocky's sparkly bum weren't in the first draft.
Show the board to people before you generate anything. It's easier to give honest notes on a page of text than on a clip someone already paid for.
Lock the song, then fix it by hand
I don't ask nicely, I don't ask twice. Do it first, then get it back. That's the price.
We made the track with MiniMax Music 3.0: French house with a vocoder lead, because that's what Blocky would sound like. We tried three cover versions and a piano version. The first take was still the best.
Lesson learned the hard way: a music model can't edit lyrics. Ask for the same song with different words and you get a different song. We lost our take twice like that.
Our song ended on a stray "that". Instead of regenerating, we split the vocal from the music with Demucs and used ffmpeg to keep the full song up to "app" and only the music after it:
ffmpeg -i song.wav -i no_vocals.wav -filter_complex "
[0:a] atrim=0:103.70 [sung];
[1:a] atrim=103.70, asetpts=PTS-STARTPTS [music];
[sung][music] concat=n=2:v=0:a=1" fixed.wav
Once the song was done, we rebuilt the storyboard around it. At 120 BPM, every scene starts on a bar line or on the first word of a lyric. The first five seconds have three gags, so someone scrolling with the sound off still gets it.
Budget it like a ledger
We made everything on Scenario, which runs dozens of AI models in one place and charges per job. A still image cost about 15 cents, a 4 second clip about a dollar, and the whole song 60 cents. We logged every job, checked its price before running it, and set a limit up front.
The storyboard estimated about $16. We spent about $45. Most of that went into making the film twice; the rest went to retakes when Blocky came out looking wrong. Plan for retakes.
Use the real character wherever you can
Blocky already lives in the app as a Rive animation. Whenever he's on screen alone, the film uses that real animation: it's free, and it's always exactly him. About a third of the film comes straight from Rive. For everything else, we made a reference sheet from his art (four angles, six expressions) and gave it to the AI on every shot.
Draw the last frame first
Many video models take both a first frame and a last frame. Give them both, and the model only has to invent the movement in between, not the character, the room or the lighting.
We made each last frame by editing the first one ("same room, same people, change only this") and checked both before paying for the video. If Blocky looks wrong in a still, he'll look wrong in the clip.
Generate on a flat background
We generated every scene on a plain background: flat orange, black or off-white. No rooms. That makes each clip easy to cut out, so the lyrics can sit behind the people.
The hardest scene was a guy on a toilet
Not the arm-wrestling grandma. Not the melting phones. The toilet. It had to be obvious where he was without showing anything crude, and image models are bad at that middle ground. It took five tries:
- Shorts pulled over his pants. It looked like a costume.
- Fully dressed on the seat. Just a guy sitting in a bathroom. No joke.
- Shirt pulled down like a skirt. Strange, and somehow the bathtub filled with water.
- From the side. Still too much leg.
- Cropped at the chest. You see the tank and a roll of toilet paper, and your brain does the rest.
The lesson: when a model keeps getting something wrong, stop describing it harder. Change what's in the frame.
What the models got wrong
On the left, what the AI gave us. On the right, what made the film.
Check it like a machine
Every lyric appears on screen exactly when it's sung. We transcribed the vocal with a timestamp for every word and checked each one against the waveform.
We split the edit into nine sections, and a separate Claude agent built each one from the same brief. Then we checked every section the same way: frames every quarter second laid out on a sheet, a still on every sung word, and a scan for frozen frames. That's how we caught the second Blocky and the vanishing box.
Made with Scenario (MiniMax for the song and the dances, Gemini and Kling for images and clips, LTX for the lip-sync), Rive for Blocky, Demucs and Whisper for the timing, and ffmpeg for everything else.
Try it on your own phone
Pick the habit you keep skipping and the app you open instead. Skip the workout, and Instagram stays blocked. Do it, and Instagram unblocks the moment Apple Health sees it.
The Ahonui team