Try five live demosdemo.gravixar.com

Graphics

A scroll-scrubbed camera flight through a robotics studio

Six scenes joined into one unbroken camera flight that moves only when you scroll. No 3D engine runs in your browser: about 9kB of code, and the rest is the pre-rendered scenes themselves.

Motion design · 2026

My own brand

What it is

A visitor lands on the studio page and scrolls. The camera flies from outside a scene into its interior, through the room, and on into the next one, with no cuts anywhere in the sequence. Six scenes, one continuous move, and scroll position is the only thing driving it. It is live at robonamix.com/inside-the-studio.

There is no 3D engine in this

Worth saying plainly, because a page that moves like this usually implies otherwise. No WebGL, no scene graph, no renderer running in the browser. The depth is baked into pre-rendered video long before anything reaches a visitor. At runtime the browser decodes frames and animates opacity and transform on plain elements, and that is the whole mechanism. The engine coordinating it is about 9kB compressed with zero dependencies.

The scenes themselves are AI-generated. A video model rendered each one from a prompt and a reference frame, and the provider's watermark is still in the corner of every frame on this page, which is why you can see it. That split is worth being exact about, because it is the difference between what a model made and what I did. The model produced six rooms. I chose the ladder they describe, directed the camera so each flight ends where the next one begins, wrote the scrub engine that ties the playhead to scroll position, decided the encode strategy that makes seeking survive a phone, and built the branch that never fetches a single clip when a reader has asked for reduced motion. Generated scenes are cheap now. The part that is not cheap is making six of them behave as one continuous move.

Which means the page has one cost, and it is media. There is no frame budget being spent on geometry, no device tier where the scene degrades into a slideshow because the GPU gave up. It gets faster by shipping better encodes, not by simplifying the world.

The six scenes are an argument

The flight walks a ladder: Spark, then Resident, then Contributor, then Earner. Someone arrives curious, gets a bench, starts contributing to builds that are not theirs, and ends up earning from what they make. The scenes carry that in props rather than captions. A first breadboard, then a shared workstation, then a print rig running a job, then a shelf of finished pieces, then the room past the shelf. The camera does most of the explaining, so the copy on the page can stay short.

Reduced motion is a branch, not a slower version

When a visitor asks for reduced motion, the clips are never fetched at all. The stills cross-dissolve instead. That is a real second implementation rather than a damped version of the first, and it has a side effect worth naming: the reader who wanted less motion also gets a much lighter page.

What you are looking at on this page

The five frames below are stills. The player at the top, and the card that brought you here, show a recording instead: 1.6 seconds lifted from each of the six scenes, so the whole flight goes past in under ten. That clip is a recording of the move, not the move. Scroll drives the real thing, and a clip that plays itself cannot reproduce the part where you are the one steering it. The card plays the showreel once as it scrolls into view, and never for a reader who has asked for reduced motion, which is the same branch the live page takes. The player at the top waits until you press play.

So if the interaction is the part you want to judge, go and scroll the real thing.

Robonamix is my own project, which is what the own-brand label above says. Nobody commissioned this. It exists because I wanted to find out how far a scroll cinematic gets without a 3D engine, and the answer turned out to be most of the way.

Frames

5 images. Open any of them full size.

Two shared workstations along a wall of the same clay studio, three glowing monitors and a keyboard between them, stools tucked under the desks, and an arched doorway of white daylight on the right.The arched doorway head-on, opening onto a grey road with painted lane markings. A monitor on the left shows a bar chart in coral and green, a control panel with four dials sits on the desk to the right.A small 3D printer part way through a print on an orange bench, nozzle lit, a coral blob already on the plate. A handheld controller and a monitor showing the part in progress sit beside it.A lit alcove of display shelving, two rows of small finished pieces on white plinths under downlights, coral and sage and mustard forms arranged like a museum case.The camera past the display shelving and into a corridor, a lamp glowing on the top shelf and finished pieces below it, the wall opening into a bright empty room ahead.

How it was made

The video files are deliberately large. Smooth scrubbing needs a full frame every 8 frames, and a smaller file would stutter every time you scroll. Each clip downloads in full before it plays, so the still image holds the frame while it arrives. The gap I have not closed: phones get the same desktop-sized clips. That is the next fix.

Tools

  • Vanilla scroll-scrub engine
  • AI-generated scene renders
  • ffmpeg
  • Next.js

Bring me a real operations problem. I will show you the system running before you sign anything.

The Ops Leak Audit is the fixed-price first step: I count the hours your tools cost your team, then price the fix. Rather talk first? Book a 30-minute call. If it is not a fit, you still leave with notes you can use.