I was born to vibecode
Today's music video turned out really well. Please do check it on a computer at high resolution if possible.
Watch on a computer to see the full high-resolution version.
A tent I first met in a book
Four decades ago, in India I read a short story in some science-fiction book that featured a music concert held in a tent that pulsed like a human heartbeat. I have been trying to build that tent ever since.
I have tried more than once. During my sabbatical, while learning Rhino, the 3D design software architects and engineers use, my capstone project was a pulsating tent.
Today I built the best version yet: a white tent that turns dark red and pulls inward on every heartbeat of a song, around a giant singing robot and thousands of dancing ones. I did not draw a single frame of it by hand.
The tutorial that set it off
If you follow AI on YouTube, you have probably seen dozens of Claude Code videos in the past couple of weeks. Claude Code is Anthropic's AI assistant that writes and runs code on your own computer. Many of those videos are made with 3js and Remotion, a popular tool for building videos out of web code.
Ever since I watched AI2Play's tutorial Music Video in Code, I was keen to try it. It works in the same style, a music video made entirely from code, but without Remotion. Its free Render Kit draws each frame of a 3D scene inside an invisible Chrome browser, then stitches the frames together with FFmpeg, the standard tool for joining video.
So today I put two wishes together: try the tutorial, and finally build the tent.
A song about being born from a prompt
First came the song. With Claude, I wrote "I Was Born to Vibe Code": a robot in the year 2300 singing about the kid who typed it into existence three centuries earlier. Vibe coding means building software by describing what you want in plain words, instead of writing the code yourself.
I made it in Suno, an AI music generator, as sci-fi synth-pop with a robotic, vocoder-style female voice and a nod to Kraftwerk, the German pioneers of electronic music. The most important ingredient was a steady bass that thumps like a human heartbeat, because that heartbeat would drive the tent.
Then I handed Claude Code the song and its separate tracks, called stems: the vocals, the backing vocals and the bass.
From a tent to 8,000 balls
The tent changed shape several times before it found its form. Claude Code first showed me three fabric tents: a circus big top, a ribbed dome at night and a long, cavernous hall. I chose the hall.
Then I wanted more than fabric. I asked for walls made of either 8,000 white balls hanging on thin wires, or a dish of liquid that spikes on every beat. It built both, I watched them side by side, and the balls won.
On every second heartbeat the hall turns dark red. A wave runs from the stage to the back of the hall as each ball swings inward on its wire, like a pulse travelling down a blood vessel.
On stage stands Vocoder, a robot singer I picked from three designs and had scaled up to ten times the size of the crowd: about 17 metres tall. Its face is a single bar of light that brightens with the singer's voice, and it spins a full circle at every chorus. Around it, about 3,000 small one-wheel robots bounce on the beat and lean left, then right, when the lyrics tell them to.
How it was made, in code
Nothing in this video was filmed, hand-animated or produced by an AI video generator. Every frame is the output of code that Claude Code wrote and ran while I directed. Roughly, it went like this:
- Listening to the song. Scripts measured the tempo (about 108 beats a minute, drifting slightly), found every heartbeat thump in the bass track, and worked out where each bar starts from the chord changes.
- Timing the words. Whisper, a speech-recognition model, listened to the vocal track to learn which words are sung. The exact start of each word was then measured on the waveform itself. The words on screen are copied from my lyric sheet, so Whisper's guesses never appear.
- Building the world. The hall, the balls, the crowd, the giant and the sparklers are all written in three.js, a library for 3D graphics in a web browser. Every frame is calculated from the song's clock alone, so any moment can be redrawn exactly.
- Directing the camera. One continuous camera glides through the whole song, with orbits around the giant and a dolly zoom: the "Vertigo" effect, where the subject keeps its size while the background stretches behind it.
- Checking everything. Automated checks confirmed that the lyrics stay clear of YouTube's caption area, that no arm passes through a body, and that nothing flashes more than three times a second, the safety limit for people with photosensitive epilepsy. Each check was first broken on purpose, to prove it could catch a mistake.
- Rendering. An invisible Chrome browser drew all 7,126 frames at 2560 by 1440 pixels, each blended from ten sub-frames for real motion blur, and FFmpeg joined them with the song.
Along the way, Claude Code sent helper agents off to work in parallel. Three researched how stadium tours, sci-fi films and kinetic sculptures create spectacle. Two others built the safety checks and the rendering pipeline while the main session worked on the camera.
What went wrong
It did not go smoothly, and the problems turned out to be the interesting part.
- The red came out pink. A bright white with a little red mixed in still reads as pink, so the tent had to be told to become a specific dark red, not just "redder".
- The tempo wandered. The song drifts by a tenth of a second over its length, so the beat map had to follow the real thumps instead of a metronome.
- Whisper misheard. It heard "vibe cold" and "Vodko". Only its timing was used; the words came from my lyric sheet.
- The giant got in the way of the words. At 17 metres it fills most shots, so each lyric line now moves to the top or the lower part of the screen, wherever the face isn't.
The biggest scare came at the very end. The finished film passed every check but one: in two places it flashed 13 and 5 times a second, far over the safety limit that could potentially cause seizures in sensitive viewers.
The culprit wasn't the red heartbeat. It was the camera: one fast swing across the dense wall of balls and one tilt up into the rippling ceiling made patches of the screen strobe. We calmed those two moves, re-rendered only the 45 seconds they touched, and the whole film passed.

A giant crowd-surf, and the best tent yet
Late in the build I asked for an ending I had not planned: the giant should jump into the crowd and crowd-surf. In the final cut it turns to face the camera, rolls back to the edge of the stage, and falls backwards into the hall like a trust fall. The robots below throw their arms up, catch it, and carry it away face up while the lights fade and a thank-you to AI2Play appears.
From handing over the song to the published video took one afternoon. It is the best pulsating tent I have made, by a long way, and this time it beats with a heart.
Your turn
The tools have finally caught up with an idea I carried out of a book in India. What made the difference was not one magic prompt. It was direction: dozens of small choices, each one looked at, then kept or thrown away.
- Make your own: AI2Play's Music Video in Code tutorial shows how, and its Render Kit is free.
- Tell me: which idea have you been carrying for years that today's tools might finally let you build? Hit reply and tell me.