Pokeable · Specimen 006
TouchGrass.
Go on.
Nobody's watching.
It grows back.
WebGPU · Live
Paused
Run your hand through the grass.
- Blades
- 0
- Flowers
- 0
- Grass cut
- 0%
- Wind
- 0km/h
How it grows
- Every blade is a little spring on the GPU: a compute shader stores how far and which way it bends, and how fast, then pulls it back upright with its own stiffness and damping, so it overshoots and wobbles.
- Your hand is a soft circle on the ground. Blades inside it are pushed away from it and along its motion (harder when you move faster) and keep a fading memory of the push, which is the wake you see.
- Wind is constant sway plus gust bands that travel across the field; wind and hand forces simply add up.
- Mowing and fire write into a grid over the field (grass height, ash, mow direction). Each cell grows back on its own; mow direction tilts the stubble, which is where the light and dark stripes come from.
- Fire spreads cell to cell by chance, faster through tall grass, slowly through cut grass, never through ash, and runs out of breath a couple of metres from where it started.
- Every sound is synthesised live with Web Audio: filtered noise for rustle, wind, blower and fire, oscillators for the mower, chirps, crickets and the chime.
✓Grass touched. You may return to the internet.
This meadow needs WebGPU.
Every one of the tens of thousands of blades is simulated as its own spring in a WebGPU compute shader and drawn with WGSL. That is the only way to move that much grass in real time, and this browser didn't give us a WebGPU device.
Open it in a recent Chrome, Edge or Safari (with WebGPU on) on a computer or phone with a GPU, and the grass will be waiting.