Lab
Fifteen studies in depth, light and motion. Each one is made from our own films, paintings and marks, and each one runs live in your browser.
Move your pointer over a piece to work it. On a phone, touch and drag.

Relief
The lake from our welcome film, with its depth packed into the same video. The leaves stand off the glass and the far shore sinks into haze.
Technique: one video carries colour on the left half and a Depth Anything V2 depth map on the right, so both decode in step. A subdivided plane is pushed toward you by the depth, its border held flat so the frame never tears, with a band of light passing front to back and fog by distance.

Lamp
The Bronco under a lamp you hold. Colour, surface direction and depth travel together in one video, so the light lands on whatever faces it.
Technique: a three-up packed video (colour, normals, depth). Normals are derived from the depth map. Each pixel is lit by a point light at the pointer with distance falloff and a rim term.

Slices
Our apple tree painting cut into layers by its own depth. Each layer hangs at its own distance, like a pop-up book opening slowly.
Technique: the same image drawn several times, each pass keeping only a window of depth and pushed back and scaled about the centre, relit from the pointer and faded into the dark by distance.

Scan
Night on the island pier. A line of light moves through it from the front to the back, one depth at a time.
Technique: a contour band computed from the depth video, fract of depth times a frequency plus time, through a narrow smoothstep, masked at the nearest and farthest depths.

Lookbook
Our work, bound as a book. Drag a page to turn it; every picture keeps its depth while it moves.
Technique: each page is a displaced plane with its own depth map and a second, pointer-driven vertex bend that curls it around the spine. Relief flattens as the page lifts.

Title card
One painting and one depth map make a title card that breathes. The sky is our own; the type sits inside it, not on top.
Technique: a still and its depth map on a displaced plane with an eased depth curve, a slow image wobble, edges filled with moving noise and a light band read from the normals.

Turntable
Our A, rendered offline in a few dozen frames and played as hundreds. Every in-between frame is pushed along the motion between its neighbours. Drag to turn it.
Technique: a motion-vector flipbook. A Blender turntable is rendered with a motion pass; between two stored frames the shader warps one forward and the next backward along their vectors and crossfades.

Projection
A still of our island beach projected onto blocks built from its own depth, so the camera can move inside the picture.
Technique: camera projection mapping. The photo is projected from its original camera onto extruded geometry; water reflects a sky by its reflection vector; confetti falls in front.

Current
Dark glass with a current in it. The colour comes from the speed and direction of the flow, and the flow runs strongest inside our A.
Technique: a stable-fluids solver. Colour is derived from the velocity field rather than advected dye, and a mask of the A monogram scales how much velocity each pixel receives.

Weather
A cloud layer drifting through our star painting, coloured from the painting itself, with dust turning slowly around the star.
Technique: two scrolling samples of one noise multiplied together, a normal from their product, an edge threshold and a five-colour ramp; GPU particles orbiting on a curl field.

Dust
The apple as a million grains of dust, carried off by a baked wind and settling back into the fruit. Phones get a lighter handful.
Technique: GPU particles whose positions live in float textures, advected through a 3D vector field baked offline into a texture and seeded from the apple painting and its depth.

Drape
A sheet of fabric dropped over our star, simulated in Blender and played back on the GPU. Once it settles, pull it and it answers live.
Technique: vertex animation textures. A Blender cloth simulation is baked to one row of vertex positions per frame and read in the vertex shader; after the drop, a live cloth solver takes over from the last baked frame.

Bend
A street of our work that curls up ahead of you. The world bends with distance, so the road becomes the horizon.
Technique: a vertex-shader world bend. Past a set distance from the camera, positions are wrapped onto a quarter cylinder, so the ground turns upward; fog follows the bend angle.

Lit frames
A drawn star, turning, with a normal map made for every frame of the drawing. Your pointer is the light.
Technique: normal-map lighting on frame-by-frame animation. Each frame carries its own normal map, derived from the drawing's distance field, and is lit per pixel by a lamp at the pointer.

Scrub
The island film, decoded frame by frame in the browser. Move across it, or drag on a phone, and the frame lands exactly under your hand.
Technique: ActiveFrame, Active Theory's open-source format: the film's encoded samples and a manifest in one file, decoded with WebCodecs straight into a WebGL texture, with frame-accurate random access.