← All work

Case study 1 of 2 / 2026

AlignRetreats

A site, and a painted walk through native bush, for a residential retreat for women in medicine.

Client
Your Lifestyle Medics
Where
Kimi Ora, Kaiteriteri
Year
2026
Made
Art direction, Design, Build, Real-time 3D
Visit the site ↗
Looking down through nīkau fronds and misty trunks to the forest floor and the track.
Pale mist over the tops of a native forest, the trees barely darker than the air.
The first frame of the walk. Thirty-three metres up, and almost nothing there.

I — A quiet brief

Two doctors who still see patients. One retreat a year. Fifteen places.

Align is the retreat arm of Your Lifestyle Medics, run by Dr Marissa Kelaher and Dr Morgana Woolhouse-Williams. The retreat is four days at Kimi Ora, above Kaiteriteri, for women who work in medicine and nobody else.

Wellness retreats all photograph the same — golden light, a lake, somebody on a mat — and this audience has seen every version. They also know the science better than any copy could explain it to them. So the brief was really about tone: say less, promise less, be plain about what four days can and cannot do, and still make somebody want to go.

II — Arrive first

The site has two halves: one that answers questions, and one that takes you somewhere.

The walk is the second half. You come down through the canopy and along a track, and the scroll is the only thing moving you. Ten lines of copy are spread along it, each reaching full ink as it crosses the middle of the screen, so reading one takes about as long as the thought does.

The copy started out standing in the forest as 3D type, and we measured our way out of it. Behind fog, foliage and a paint pass, the same sentence scored 17:1 contrast in one spot and 2.6:1 in another — legibility decided by whichever frond it happened to be in front of. It is set on the page now: ink on paper, always, with the forest behind.

It takes about a day to stop listening for a pager.

Looking down through nīkau fronds and misty trunks to the forest floor and the track.
Coming down. The descent takes the first fifth of the scroll.
  • 247 m of track, from thirty-three metres above the canopy down to the forest floor.
  • 41,820 plants, instanced in 3,595 chunks of eleven metres, so whole regions of forest switch off at once.
  • 15 species with ambient occlusion baked in Blender, into every vertex.
  • 10 lines of copy, and an ending.

III — Grown, not placed

Kahikatea, tōtara, nīkau, harakeke, kawakawa, ferns, and the litter under all of them.

Every plant is one of forty-odd thousand instances, sown by rule rather than by hand and grouped into chunks of eleven metres, so a whole region of the forest switches off in one test instead of thousands. Each species went through Blender first: a Cycles bake writes ambient occlusion into the vertices, so the dark inside a fern crown is part of the model rather than something the renderer guesses at every frame.

The materials are Lambert, not physically based. We tested both. Under this fog and this paint pass the difference could not be seen, and the physically based version cost a quarter of the frame.

The wind is weighted the way wind is. The canopy moves most, the understory less, harakeke is stiff at the base, and nothing lying on the ground moves at all — an early build had four hundred stream-bed stones and every fallen log gently swaying.

A tree fern and dark shrubs beside a pale track, tall trunks fading into mist.
On the track, a third of the way in.
A dark leaning trunk in the foreground, mossy boulders and ferns, ranks of grey trees behind.
Mossy stone, and the first of the big podocarps.

IV — Water on paper

A watercolour, built from how watercolour actually behaves.

The forest is rendered and then painted, every frame. An anisotropic Kuwahara filter lays the strokes along the grain of the image. Pigment density follows Bousseau’s model from NPAR 2006, which puts the paper’s texture into the mid-tones and leaves pure lights and darks alone, the way a real wash does. Edges darken where pigment pools.

The wet-in-wet bleed took two attempts. The first displaced every pixel, and in review the whole forest looked underwater. It is gated by the edge term now, so colour creeps only where one wash meets another. The film grain went the same way: a photographic idea in a painted picture.

Painted forest: dark tree silhouettes against white mist, a shrub and mossy rocks on a sandy track.
Two thirds in. Every edge here is a brush decision, made again on every frame.

V — Sharp at rest

Frame rate matters while you move. Resolution matters when you stop.

Most of the time on the walk is spent reading, which means standing still. So the walk renders cheaply while it moves and resolves to full resolution about a second after you stop — in two steps, like a lens finding focus. At 1600 pixels wide the painted image goes from 720 × 405, stretched, to native, with 2.8 times the fine detail. On a phone it goes from 253 × 548 to 562 × 1219.

At rest the frame rate is capped, because nothing in a resting frame moves faster than a leaf. Scrolling is never capped. Rest is judged from the scroll and the pointer rather than from the camera, which never quite stops — it breathes.

The same shrub, rocks and ferns twice, side by side. On the left the shapes are soft and smeared; on the right individual leaves and fern fronds are resolved.
One frame, twice, shown at double size. Left, while scrolling: 720 × 405, stretched to fit. Right, at rest: 1600 × 900, native.

VI — No fallbacks

The same forest on a laptop’s integrated graphics as on a desktop card.

The walk reads the GPU and picks a tier. Integrated graphics and phones get exactly the same density of planting as a desktop — lighter models and a three-quarter render scale, but the same forest. If a device still misses its frame budget while you scroll, the render scale comes down once and stays down; a guard that could also go back up would find a threshold to flicker across.

On data saver, without WebGL 2, or on a software renderer, the canvas removes itself and the walk is ten lines on paper. Not a fallback: a different edit of the same piece. Sound is offered, never assumed, and never offered at all to anyone who has asked for reduced motion.

The walk on a phone: mossy boulders in the foreground, tall trunks in mist.
At 390 wide, resolved at twice that.

VII — It filled

The October retreat is full. The site’s job now is the list for the next one.

The other half of the site is deliberately ordinary: what the four days are, who runs them, what it costs and what it doesn’t cover. Places are paid for through Stripe and confirmed by webhook, and the places left are counted from Stripe rather than typed in. The waiting list goes to Mailchimp. Dates, price and capacity live in one file, and the pages, the structured data and the plain-text summary for language models are all generated from it, so none of them can drift from the others.

The walk ends the same way. While the retreat is full, its last line says so and points to the list; the day a place opens, it names the retreat instead.

A stream bed of dark stones winding between mossy boulders, the forest fading behind.
The stream, near the end of the track.
Design & build
Pumice
Client
Your Lifestyle Medics
Year
2026
Stack
Astro, three.js, GSAP, Lenis, Blender, glTF-Transform, Stripe, Mailchimp, Vercel
Next projectKahu