Element 04
Dust
A photograph is a hundred thousand points of light, held in place for a while.
Scroll
The empty niche of the Bamiyan Buddha, carved into a sandstone cliff face, Afghanistan.
I — Presence / Absence
Dust remembers what was carved from it.
Bamiyan
Portrait of an elderly Afghan man in a turban, lit from the side against near darkness.
II — The Face
He stays as long as you stay with him.
Afghanistan, 2025
Notes
On this room
What it is
Each photograph is resampled to roughly 30,000–120,000 points, one per sample cell, carrying its own pixel colour and a scattered point of origin. A vertex shader blends every particle between origin and photograph position as you scroll, with layered simplex noise added continuously so the cloud drifts like dust in light rather than snapping into place.
What it costs
One WebGL context, one draw call per active field, GPU-side. Particle count and pixel ratio drop on mobile; a soft bloom pass runs on desktop only. The scene pauses fully when the tab is hidden, and visitors who prefer reduced motion never load three.js at all — they get the two photographs directly, with a gentle scroll-linked crossfade in their place.
Documentary transfer
The technique asks a photograph to be read as data before it's read as a picture — a field of positioned, coloured points, the way a sensor actually recorded it. That's not far from what a photograph already is. The niche was carved from stone and stands empty; the portrait is a person who was there and then wasn't. Dust is the honest word for both: matter arranged for a while, then not.