
Eden
A six-second shot that unwinds at the speed you scroll.
The site, live
The real site, inside the frame: scroll it to explore. Move off the frame to carry on reading this page.

Highlights
A film driven by scroll, with no video player
145 frames and as many alpha mattes, called by the scroll position, forwards and backwards. No video element in the page: the visitor's gesture is the only clock, and two stacked canvases take the background and the cut-out foreground.
Everything is prepared off the main thread
A worker decodes each pair, computes the bloom on it (luminance threshold, blur, screen blend, on a 960 px reduction), cuts out the foreground, then transfers two ImageBitmaps instead of copying them. The thread listening to the scroll does nothing but draw.
Bounded memory, no catch-up jumps
Twelve decoded pairs at most, the furthest ones closed explicitly. And the animation only advances when the next pair is ready: after a cache miss it resumes where it was instead of skipping ten frames at once.
15.3 MB for the whole sequence
Down from 32.8 before re-encoding. WebP quality 74 for the frames, lossless for the alpha mattes, and a four-request parallel prefetch that decodes nothing on the way.
Mattes tracked across all 145 frames
The figures and their chairs come from a Resolve track, exported as two renders, one on white and one on black: subtracting them recovers the real opacity, edges included. Every visible colour still comes from the original shot.
Static files, no dependency
HTML, CSS, three scripts and a worker, published as they are, with no build step. The system's reduced-motion setting is respected: no drifting bloom, no preloading, the garden stays still.
Questions
- Is the preview on this page the real site?
- Yes, it is the site itself, rendered in the frame: you visit it in there, and step out of the frame to go on reading this page. In the catalogue, though, the card shows its opening shot, still until you hover it.
- What language is the site in?
- English, and it does not switch.
- Where do the images come from?
- A six-second shot at 3856 x 2148, 24 frames per second, cut up in the studio: 145 frames re-encoded at 1536 pixels wide, and as many alpha mattes taken from the track. The full-resolution masters are kept. The picking is a second sequence, treated the same way.
- Does it read on a phone?
- Yes. The pinning distance shortens, the text returns to a single column, and the film keeps its gesture. The preview on this page only loads from a desktop screen: a desktop site shrunk onto a phone would no longer be readable.
Tech stack
- HTML
- CSS
- JavaScript
- Canvas
- Web Worker
- Vercel