
About this game
A volumetric 3D Physarum — slime mold — simulation that grows through the memory of where you have been.
Hundreds of thousands to millions of agents drift through a cube of light, deposit pheromone trails, sense the field ahead and steer toward stronger trails. Left alone they self-organise into glowing, pulsing tube networks that look like neurons, mycelium and river deltas at the same time.
The twist: a webcam tracks your head and hands in 3D, projects them into the volume, and maintains a second, slowly-decaying memory field of everywhere your attention has travelled. The organism grows toward where you lingered, knits its network through those places, then slowly forgets — and re-learns when you come back.
Opens in its own tab rather than embedded, because the camera and WebGPU both want a page of their own. Decline the camera and it falls back to the cursor; it still works, it just remembers your mouse instead of you.
How it works
Three GPU compute dispatches per frame plus one volumetric raymarch:
- Agents — each agent samples the sense field along a cone of directions, steers toward the strongest, drifts with a little wander, and atomically deposits pheromone. (WGSL has no float atomics, so deposits are
i32fixed-point throughatomicAdd.) - Memory — every voxel decays its slow attention-memory and receives a gaussian splat from your head and hands.
- Update — every voxel diffuses and decays the trail, folds in this frame's deposits through ping-pong
f32buffers, and buildssenseField = trail + memoryWeight·memoryfor the agents to read next frame.
The volume is then raymarched front-to-back in a fragment shader with an IQ cosine-gradient palette, density-and-age colouring, ACES tone mapping and a breathing pulse. Every rate — decay, deposit, diffusion, memory decay — is made framerate-independent, so it looks the same at 30 fps and at 144.
Controls
Drag to orbit, scroll to zoom. The panel opens up the whole organism: agent count (150K to 2M), drift speed, sensor reach and spread, turn rate, wander, deposit; trail persistence, diffusion and field resolution; memory attraction, persistence, strength and radius; seven palettes, volume/particle/both rendering, glow, density, ray steps, pulse; and quality presets with auto-performance.
Requirements, honestly
A WebGPU browser (Chrome/Edge 113+, Safari 18+) gets the full volumetric organism. Without WebGPU it drops automatically into a WebGL Lite particle mode — the same idea, driven on the CPU, still growing toward and forgetting your attention, but without the raymarched volume. Defaults target a desktop GPU at about 900K agents in a 144³ field; pick Low on a laptop.
Body tracking runs MediaPipe FaceLandmarker and HandLandmarker on-device. Depth is inferred from apparent size — a closer face or hand fills more of the frame. Video never leaves your machine; only landmark positions are used.
How it was made
Built with Claude Code on Next.js 16 and React 19, with three.js WebGPURenderer and TSL compute shaders so the entire simulation lives on the GPU. The build pins webpack specifically so an exact-match alias (three$ → three/webgpu) guarantees one canonical copy of the three.js core classes — otherwise react-three-fiber's instanceof checks diverge from the renderer's and nothing renders.
A prototype and an art toy rather than a game: there is no goal, no score and no end. You watch a thing think about you.
Screenshots
Changelog
No changes logged yet. When the maker ships something, it lands here.
Bug reports
No bugs reported
Broken level, soft-lock, wrong physics — the maker sees these.
Nothing broken so far. Suspicious, but we will take it.
Comments
Comments are for signed-in players. It keeps the robots honest.
Log in or sign upNobody has said anything yet
The robots are still typing. Be the first human on the record.