A cell grows where its neighbourhood weight lands inside μ ± σ, and shrinks everywhere else. These two numbers decide whether anything can live at all.
Drift keeps nudging the genome while the world runs. Organisms adapt, deform, then die — revert brings back the last species you loaded.
The world is a torus — everything that leaves one edge returns on the other.
Every cell reads a weighted ring average of its surroundings. Concentric rings of different heights are what separate a rolling glider from a spinning wheel.
Pick a species to adopt its genome, then tap anywhere in the world to release a copy. Specimens and parameters come from Bert Wang-Chak Chan's Lenia catalogue.
Two fingers pan and pinch. The view wraps, so panning never runs out of world.
Conway's Life allows two states and one neighbourhood. Lenia allows every value between 0 and 1, a smooth ring-shaped neighbourhood, and continuous time. That small change is enough for solitary organisms — things that swim, rotate, split, and heal — to appear and persist. All of it is one convolution and one growth curve, evaluated for every cell of the world in a fragment shader.
The update is A ← clip(A + G(K∗A)/T). K is the ring kernel drawn on the Kernel tab, G is the growth curve below it, and T is how finely time is sliced. Species carry their own R, T, μ, σ and ring profile; changing any of them by a few percent is usually fatal, which is what makes the survivors interesting.
Species data and the taxonomy are from Bert Wang-Chak Chan's Lenia work (github.com/Chakazul/Lenia), which introduced these organisms and named them. Everything here is recomputed live on the GPU.
This browser has WebGL2 but not EXT_color_buffer_float, which Lenia needs to keep cell values continuous. Try a current Chrome, Edge, Firefox or Safari.