A scroll-controlled opening for a longevity physician's website. As the visitor scrolls, the camera moves toward him, living cells gather around him at different depths, and warm light floods the frame into the page below. Scroll back and it all reverses. It had to feel editorial, never AI-made, and he had to stay recognisable in every frame.
The obvious route is a generative video model: a portrait plus keyframes, animated into one shot. We tried it, and six renders went in the bin. Every one redrew his face. In one he winks with one eye, in another he slowly turns into a different man, and the camera moved in visible jumps instead of one move. On a scroll hero that is worse than in a normal video, because a visitor can stop on any frame.
One of the rejected renders, two frames per second. Watch the face from row three
What shipped
One rule: the face is never regenerated. The portrait is one approved still, and only the world around it moves.
Cells as compositing plates. Real dark-field microscopy cells generated on pure black, cut into 19 sprites.
A 3D layout in code. Some cells sit far behind him and are hidden by a person matte, some beside him in focus, a few close to the lens and soft. As the camera pushes in, near cells move faster than far ones, so the depth is real perspective.
One camera move. A single eased push aimed between his eyes, so there is nothing to stitch and no seams.
Light as the transition. A warm backlight builds behind his head, wraps onto his hair and shoulders, then the frame overexposes into the exact cream of the page below. One cell that has sat beside him since the start lands as the last image.
Cells gathering around him as the camera moves in
Warm light building behind his head
The hand-off: one cell on the page's own cream
Desktop and phone, composed separately
The phone version is its own 9:16 composition, not a crop of the desktop one.
The phone sequence from portrait to the cream hand-off
On the page
240 frames per screen shape, drawn to a canvas and tied to scroll with GSAP ScrollTrigger. Frames load coarse to fine, so the hero can be scrubbed within a second and sharpens as the rest arrives. Visitors who ask for reduced motion get a still poster and no frame downloads.