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.
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.













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.

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.

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.