I generated 13 AI films to pick one website hero. The AI could not count to six.

Thirteen AI films, four concept rounds, about fourteen dollars, and a model that kept missing the number six on the way to one hero film.

· Viral Labs

The home page of virallabs.app opens on six glowing flasks sitting on a dark laboratory bench. As you scroll, the camera pulls back, the bench reveals itself, and four short lines of copy arrive one at a time. The whole film is eight seconds long. Picking it took thirteen generated films across four concept rounds, and the final bill was about fourteen dollars. It also taught me something I did not expect. When you ask a video model for exactly six of something, you get the right count less than a third of the time.

Here is the full story.

Why the hero is a film

Viral Labs is one person making small iOS apps. Six in 2026, five live, one on the way. A studio site has one job: say what the studio is before the visitor leaves. I can write that in a sentence, and I do. But a sentence does not make anyone feel it.

The idea behind the studio is on the method page. Take one everyday problem and give it the full attention of modern AI. The hero film performs that idea instead of describing it. Six flasks under a cone of light, each one holding something distilled. One continuous shot, no cuts.

The film is pinned to the top of the page and your scroll drives it. Scroll down and the camera pulls back while four captions ride along, starting with "Raw AI can do anything." and ending on the studio name.

Everything else on the site is deliberately boring. Plain static files on Cloudflare, no framework, a 14KB page that loads in under a second. The film is the one expensive thing on the page, so it had to be right.

Four rounds of concepts

The brief stayed the same the whole way through. One continuous shot, dark, abstract, and exactly six objects, one for each app. What changed was everything else.

Across the four rounds, the concepts fell into a few families. Pure light: a beam split by a prism, a rain of particles, a neon descent. Liquids: ink drops blooming in water, liquid chrome folding over itself. Bigger scenes: a night garden, a marble run, a nebula, a comet, a whole galaxy. Quieter, more grounded sets: a workbench, museum alcoves, a black monolith, and a glass bench holding six glowing flasks.

The beam: white light splitting through a glass pane into six colored strands
The beam: white light splitting through a glass pane into six colored strands
Particle rain: colored motes settling into glowing orbs
Particle rain: colored motes settling into glowing orbs
Neon descent: six ribbons of light running down a dark shaft
Neon descent: six ribbons of light running down a dark shaft
Ink drops: colored ink blooming in dark water
Ink drops: colored ink blooming in dark water
Liquid chrome: mirror droplets with colored cores
Liquid chrome: mirror droplets with colored cores
Night garden: bioluminescent blooms in dark soil
Night garden: bioluminescent blooms in dark soil
Marble run: glass marbles seated in a rack
Marble run: glass marbles seated in a rack
Nebula dive: a constellation row in black space
Nebula dive: a constellation row in black space
Comet: stars left where it landed
Comet: stars left where it landed
Galaxy descent: flares along the glowing band
Galaxy descent: flares along the glowing band
The workbench: machined instruments under a brass lamp
The workbench: machined instruments under a brass lamp
Museum alcoves: one lit room per app
Museum alcoves: one lit room per app
The monolith: six machined layers with colored seams
The monolith: six machined layers with colored seams

Thirteen films in total. Each one looked like a finished piece of work at first glance. The problems only showed up when I slowed down and inspected.

What thirteen films cost

Every film came from Google Veo 3.1 Fast. Eight seconds at 1080p costs about 96 cents per try. Each film starts from a generated still frame, and those run about ten cents each. Thirteen films plus their start frames came to about fourteen dollars in total.

Fourteen dollars to audition thirteen different homepages is a trade I will take every time. A few years ago this would have meant hiring a motion designer or settling for stock footage. Either way, auditioning thirteen versions of a homepage was not on the table. The budget was never the constraint here. Taste and patience were.

Nine of thirteen could not count

The hard constraint was always the number six. Six apps, so six flasks, six drops, six of whatever the concept called for.

This is where the model kept failing. In nine of the thirteen films, the AI drew the wrong number of objects. I asked for exactly six every time. I got the wrong count more often than the right one.

The frustrating part is how finished the failures looked. The lighting was right, the motion was right, the mood was right. Then you pause a frame, count the objects, and the number is off. Nothing in the film warns you. It is wrong with complete confidence.

The ending frame of the nebula film: a row of colored stars in black space
The nebula ending. The prompt asked for exactly six stars. Count them: seven. Eight more of the thirteen films made the same kind of mistake.

My takeaway: video models are strong at atmosphere and weak at arithmetic. The model does not know my six apps exist. It only knows what roughly six looks like. If a detail in your footage carries meaning, a count, a word on a label, anything that has to be exact, check it by hand. On this project, failing the count was not a rare glitch. It was the default.

Why the glass bench won

The first concept I approved was the beam. White light enters a prism and six colors come out. Splitting light was the brand metaphor, and on paper it was the obvious winner.

Then the glass bench footage came back, a slow pull-back from six glowing flasks on a dark bench, and it beat the beam for three reasons.

The winning frame: six glowing flasks in a row on a dark laboratory bench
The keeper. Six flasks, correct on inspection, and it reads as a lab with no words.

First, it counted. Six flasks, correct on inspection, one of the four films that got the number right.

Second, it reads as a lab without a single word. Viral Labs is a lab, one person distilling something big and shapeless into small useful apps. Flasks say that better than beams do.

Third, it handed the rest of the site its language. The apps section is now headlined "Six flasks, so far." and the closing line invites you to take one home. Good footage earns its place twice. It fills the slot at the top of the page, and it tells you what the rest of the page should say.

Each flask stands for one app. Five are live today. HairGlam, for one, shows a new haircut or hair color on your own selfie before you commit at the salon. The sixth flask, Focaly, is still on the bench. The full set is on the apps page.

What a solo builder should take from this

Cheap retries beat perfect prompts. I did not write one great prompt and nail it. I wrote many decent prompts and let the cheap retries do the work. When a retry costs less than a dollar, the right move is to generate wide and cull hard, not to polish one prompt forever.

Inspect everything. Count the objects. Read any text in the frame. Scrub it slowly. Nine of thirteen is not a number you can ignore, and none of those nine failures announced themselves.

Decide after the footage, not before. The beam won the paper round. The bench won on screen. If I had locked the whole page design to the beam before generating, I would have shipped the weaker idea and never known.

Keep everything around the film cheap. The hero can afford to be the one heavy thing because the rest of the page is a handful of static files.

The bill, settled

The film runs at the top of virallabs.app right now. Thirteen tries, about fourteen dollars, one keeper, and plenty of pauses to count flasks frame by frame. If you try something like this for your own project, I would like to hear how the counting goes. hello@virallabs.app reaches a person.