← Back to AI Playground
Tools10 September 2026

How We Built the Cyclist Animation on Our Homepage

Share
Looping animation of a cyclist pedalling a stationary bike, with the wheels formed from two mirrored Vocalise logomarks

Most homepage animations get outsourced: a stock Lottie file, a short brief to a motion designer, or a video loop dropped into the hero. We wanted something in our own services section that actually looked like Vocalise, so we built it ourselves, in code.

The brief was one sentence

Put some motion in the "AI in Marketing" tile without it looking like a generic tech animation. No stock cyclist gifs, no purchased icon pack. If it's meant to represent what we do with AI, it should actually be made with AI in the loop.

No animation software, just a Python script

Instead of After Effects or a Lottie export, the whole thing is a single Python script using PIL (the Python Imaging Library) to draw every frame by hand: the bike frame, the pedals, the rider's legs mid-stride, and a wheel built from two identical Vocalise "V" marks, positioned diametrically opposite each other so they read as one continuous rim as they spin. The geometry for the V was traced directly from our own icon file, so the wheel is genuinely our logo in motion, not a lookalike.

We used an AI coding assistant to help write and refine the maths (the leg angles, the wheel rotation, the treadmill belt markings scrolling underneath), then rendered 48 frames and stitched them into a looping GIF and WebP. It's the kind of small, specific tool that's easy to build fast with AI, and would have taken a lot longer to commission or hand-animate from scratch.

What it's for

It's a small thing, one looping tile in the services grid, but it's a good example of how we actually use AI day to day: not to write the copy or make the big creative decisions, but to move faster on the small, specific pieces of production work that used to eat a disproportionate amount of time. You can see it running live on our homepage, in the services section.