Ahonui

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.

Blocky on an orange field, arms folded, judging you.

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.

TimeSungShotMade withCost
0:13 to 0:17Splash, and now it's goneBlocky flushes the phone on "splash", deadpan; the guy sinks to his kneesStill, then a 4 s clipabout $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.

Page one of the storyboard: a table of 13 shots, from the hook to the third wheel scene, with columns for time, shot, what Blocky does, on-screen text, sound, how it's made and credits.
Page one of version 4. All three pages (PDF), budget included.

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
A tall, teetering tower of blocks labeled all modern digital multimedia infrastructure, resting on one thin block near the bottom labeled ffmpeg.
Our film included. After xkcd 2347.

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.

Four versions of the same frame: the generated clip alone; the word THRONE drawn over it; the same with Blocky and the man cut back out in front of the word; the finished frame with a screen-time counter.
One frame, built in layers: the generated clip, the word on top, the cut-out placed back over the word, then the counter. Only the first layer cost anything.

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:

Five attempts at the toilet scene, left to right, ending with the final chest-up framing on an orange background.
  1. Shorts pulled over his pants. It looked like a costume.
  2. Fully dressed on the seat. Just a guy sitting in a bathroom. No joke.
  3. Shirt pulled down like a skirt. Strange, and somehow the bathtub filled with water.
  4. From the side. Still too much leg.
  5. 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.

Left: a couple in bed with two Blockys in nightcaps at the foot of the bed. Right: the same shot with one Blocky.
Two Blockys. A second one showed up mid-clip. We fixed it by giving the model Blocky as a single named character and telling it "only one".
Left: a spiky, glowing creature bursting out of boxes that doesn't look like Blocky. Right: the real Blocky popping out of a box.
Not Blocky. Without the reference sheet, "a lava rock mascot" turned into a spiky stranger.
Left: the box and Blocky have vanished, leaving the woman alone. Right: Blocky stands on the boxes holding the sealed box over his head.
The vanishing box. Blocky and the box disappeared before the end of the clip. We fixed it by drawing the last frame first, with the box over his head, so the clip had to end there.

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.

Get Ahonui. Seven days free.

The Ahonui team