Generative canvas
Wildlight
A studio site for a place that works with living things, so the hero had to actually be alive — not a video of a field, a field.
Every flower on screen is drawn from a single sprite sheet and placed by rules rather than by hand. Load it twice and you get two different meadows.
- Type
- Generative canvas
- Year
- 2026
- Stack
- Canvas, Lenis

One sprite sheet, sorted into biomes
The sheet is 1500×1312, cut into an 8×7 grid. Rows are grouped by species: grass, ground litter, and three flower biomes — violets and white daisies, yellows and daffodils, pinks and coral.
Each spot on the ground asks which biome it falls in, then draws from that set. Grass wins more than half the time, litter takes a thin slice, and the rest are flowers. The result is coherent up close — you don't get a daffodil standing alone in a bed of violets — and varied at distance.
function dress(p) {
const b = biomeAt(p.x, -p.d);
if (b < 0) { p.on = false; return; }
p.on = true;
const r = Math.random();
if (r < .56) { p.cell = pick(GRASS); p.kind = 0; p.h = rnd(1.3, 2.35); }
else if (r < .61) { p.cell = pick(LITTER); p.kind = 0; p.h = rnd(0.85, 1.6); }
else { p.cell = pick(BIOMES[b]); p.kind = 1; p.h = rnd(1.05, 2.05); }
p.flip = Math.random() < .5;
}Plants are recycled as the camera passes
Nothing exists outside the view for long. A plant the camera has gone past is collected and replanted ahead of it, re-dressed with a new species on the way. Scroll back and it un-recycles.
That keeps the meadow endless while the number of things being drawn stays flat. The field feels like it goes on forever because the same few hundred plants keep getting ahead of you.
The blur is baked, not computed
Depth of field is the expensive kind of beautiful. Rather than blurring at runtime, the sheet carries sprites with the blur already in the pixels, so a distant flower is just a different cell — no filter, no second pass.
Bloom is the same trick: each flower gets an additive copy of itself drawn over the top. Haze and glare ride the same pulse as the rest of the scene so it all breathes together.
Wind is just the pointer
There is no wind simulation. Whatever is under your finger bends away from it and brightens slightly. It reads as a breeze because that is what a breeze looks like from a distance, and it costs one distance check per plant.

Next
Meridian
One photograph that walks through six layouts.