SmoothLife: When the Grid Dissolves
Every cell in Conway’s Life is perfectly square, perfectly aligned, perfectly discrete. The grid is the kind of thing you could print on graph paper. Patterns snap between states like a binary switch — alive or dead, nothing in between. Even the time is discrete: tick, tick, tick.
None of this is necessary.
In November 2011, Stephan Rafler posted a paper to arXiv — number 1111.1567, titled “Generalization of Conway’s ‘Game of Life’ to a continuous domain — SmoothLife” — in which he dissolved every discrete element of Conway’s system into continuous mathematics. The grid became a continuous scalar field. The binary alive/dead states became real values between 0 and 1. The step-function transitions became smooth sigmoid curves. Time itself could be made continuous.
What emerged from this dissolution was not a smoother version of the same thing. It was something that looked, at first glance, like biology.
The Problem with Discreteness
To understand what Rafler did, it helps to understand what discreteness is doing in Conway’s Life — and why you might want to remove it.
Conway’s Life is discrete for practical reasons, not principled ones. Conway designed his rules by hand, using Go stones on a board. Discrete cells with integer neighbor counts are easy to specify and easy to compute. The square grid was the obvious choice for a game played on graph paper in a Cambridge common room in 1969.
But discreteness introduces artifacts. Patterns in Conway’s Life move in strictly diagonal or orthogonal directions because those are the directions aligned with the grid. A pattern cannot move at an angle of, say, 30 degrees — it is forced by the grid geometry to approximate its motion as a sequence of diagonal and orthogonal steps. Gliders move diagonally because the grid forces them to. Their velocity is exactly c/4 because the periodicity of the pattern exactly matches the grid step size. There are no other options.
A continuous system has no such constraint. A “glider” in a continuous field can move in any direction at any speed consistent with the dynamics. There is no preferred axis. There are no velocity quantization conditions.
Rafler wanted to know: if you generalize Life’s rules to a continuous setting — keeping the same local-neighborhood structure, the same birth-and-survival logic — what do you get? Are the interesting behaviors of Life artifacts of the grid, or are they genuine features of the rule structure that survive in a continuous context?
From Discrete to Continuous: The Construction
The key design choices in SmoothLife are:
Step 1: Replace the cell with a disk.
In Conway’s Life, a cell is a point (or a square). Its state — alive or dead — is a single binary value. In SmoothLife, a “cell” is a disk of radius r_i (the inner radius) centered at position (x, y). The cell’s “state” m is the average value of the continuous field over this inner disk. When m is close to 1, the cell is “alive”; when close to 0, it is “dead.”
Step 2: Replace the neighborhood with a ring.
In Conway’s Life, the neighborhood is the 8 surrounding cells. In SmoothLife, the neighborhood is an annulus — a ring between radius r_i and radius r_a (the outer radius). The neighborhood state n is the average value of the continuous field over this annular ring.
Rafler used typical values of r_i = 3 and r_a = 9 in a continuous domain (scaled to the display grid), meaning the outer neighborhood is 3 times larger than the inner cell. This ratio (approximately 1:3) is chosen to match the geometric relationship between a cell and its Moore neighborhood in the discrete case: a 1×1 cell surrounded by a 3×3 neighborhood.
Step 3: Replace the step-function transitions with sigmoid functions.
In Conway’s Life, the transition is a step function: “born if n=3” is a function that is exactly 1 when n=3 and exactly 0 otherwise. In SmoothLife, each birth and survival condition is approximated by a smooth sigmoid function — a logistic curve that smoothly transitions from 0 to 1 over a small range of n values, rather than jumping discontinuously.
The sharpness of the sigmoid is controlled by a parameter α. When α is small, the sigmoid is sharp — nearly identical to the step function. When α is larger, the transition is broader and smoother. The smooth version has the advantage of being differentiable everywhere, which enables continuous time evolution.
Step 4: Replace the Boolean update with a real-valued transition function.
The next value of the field at position (x, y) is determined by a smooth function of m and n:
- If m is close to 0 (dead cell): birth rule applies — the next value is high if n falls in the birth range (approximately the continuous version of “3 neighbors”), low otherwise.
- If m is close to 1 (live cell): survival rule applies — the next value is high if n falls in the survival range (approximately “2 or 3 neighbors”), low otherwise.
- For intermediate values of m: the transition smoothly interpolates between the birth and survival rules.
The result is that SmoothLife’s update rule has the same structure as Conway’s Life — birth conditions for dead cells, survival conditions for live cells — but everything is smooth, real-valued, and continuous.
Continuous Time
Once the update rule is smooth, an additional generalization becomes possible: continuous time.
In the discrete version of SmoothLife (where time still ticks in integer steps), the new field value is computed from the old field value according to the smooth transition function. This is still a discrete-time system — just with smooth spatial fields.
Rafler showed that you can reinterpret the transition function as a rate of change rather than a new value. Instead of “the next state is f(m, n),” you use “the rate of change of the state is f(m, n) - m.” This gives a differential equation: d(field)/dt = f(m(x,y), n(x,y)) - m(x,y). The system can now be evolved continuously in time using standard numerical integration methods (Euler’s method, Runge-Kutta, etc.).
Continuous time smooths out the last remaining discreteness in the system. Patterns no longer move in discrete jumps — they flow. The result looks even more organic than the discrete-time version.
What SmoothLife Looks Like
Describing SmoothLife in words is inadequate; you should watch it. But the verbal description is: it looks biological.
The patterns move fluidly, without the jerky snapping of discrete cells. Structures that correspond to Conway’s gliders become smooth, rounded objects that glide through the field at arbitrary angles. Structures that correspond to still lifes become stable blobs that slowly pulsate at their boundaries. Random initial configurations produce what looks like a primordial soup: cells forming, growing, splitting, colliding, dissolving.
The visual impression is of something between a cellular automaton and a Turing reaction-diffusion system — specifically, like the spots on a leopard or the patterns on a zebrafish, which are themselves generated by Turing-style activator-inhibitor dynamics. This resemblance is not purely aesthetic; there is a genuine mathematical relationship between SmoothLife and reaction-diffusion equations.
Crucially, the smooth glider — the continuous analog of Conway’s glider — was found in SmoothLife and moves at angles impossible in the discrete system. This was Rafler’s primary goal: demonstrating that the glider is not an artifact of the grid, but a genuine dynamical object whose existence is a property of the local rule structure. The smooth glider can move diagonally, orthogonally, or at any intermediate angle. It can move slowly or quickly. The grid was constraining it; free of the grid, it roams.
The Connection to Biology: Reaction-Diffusion
Turing’s 1952 paper “The Chemical Basis of Morphogenesis” proposed that biological pattern formation — stripes on zebras, spots on leopards, the arrangement of digits on a developing hand — could arise from the interaction of two chemical species: an activator (which promotes its own production and the production of the inhibitor) and an inhibitor (which suppresses the activator). When the two species have different diffusion rates, stable spatial patterns emerge spontaneously.
These Turing patterns are produced by reaction-diffusion equations of the form:
∂A/∂t = f(A, I) + D_A ∇²A ∂I/∂t = g(A, I) + D_I ∇²I
where A and I are activator and inhibitor concentrations, f and g are the local reaction terms, and ∇² is the Laplacian (the diffusion term).
SmoothLife has a similar structure. The “cell” field (the inner disk integral m) plays the role of the activator: it is the local state of the system. The “neighborhood” field (the outer ring integral n) plays the role of the inhibitor: it is the surrounding context that determines whether the activator grows or shrinks. The smoothed transition function plays the role of the reaction kinetics f and g.
The mathematical relationship is not exact — SmoothLife is not literally a reaction-diffusion system. But the qualitative similarities run deep: both produce stable stationary patterns, both produce traveling waves, both produce oscillating spots. The difference is that SmoothLife’s “reaction kinetics” are derived from Conway’s birth and survival logic, which creates patterns that look more cellular — more like organized biological structures — than typical reaction-diffusion outputs.
What SmoothLife Demonstrates
The most important claim Rafler makes in arXiv:1111.1567 is implicit but profound: the interesting behaviors of Conway’s Life do not depend on its discreteness.
This is not obvious. One might reasonably suspect that the rich behavior of Conway’s Life — the gliders, the oscillators, the computational capacity — arises precisely from the interplay between the discrete cells and the integer neighbor counts. The discreteness might be load-bearing.
SmoothLife shows that it is not. The smooth version of the rule supports all the major classes of behavior that the discrete version supports: persistent objects, traveling objects, oscillating objects, unstable growth. The glider survives the dissolving of the grid. It becomes more general, not less real.
This has philosophical implications for how we understand Life’s richness. If the behavior depended on the discreteness, we would say: Life is interesting because of an accident of its mathematical substrate. But if the behavior survives generalization — if the continuous version is equally rich — we say instead: Life is interesting because of its rule structure, which happens to be expressible in both discrete and continuous form. The rule is the thing. The grid is a convenience.
Rafler’s paper was submitted to arXiv in November 2011 and attracted immediate attention from the cellular automata and artificial life communities, leading to numerous implementations in GPU shaders and interactive simulations — because SmoothLife is beautiful to watch, and because it was the first continuous 2D cellular automaton to demonstrate stable glider-like traveling objects. The earliest public GPU implementation was ionreq’s OpenGL/GLSL project (released on SourceForge in February 2012), which used FFT-based convolution on the GPU to achieve real-time simulation and became the reference implementation that many subsequent shader ports were based on.
Persistent Structures in SmoothLife
Beyond the smooth glider, SmoothLife supports:
Stable blobs: Rounded, roughly circular regions of high field value that maintain themselves against the low-value background. These are the smooth analogs of still lifes. They have some thickness to their boundary — not a sharp edge as in Conway’s Life, but a gradient zone where the field value transitions smoothly from the interior to the exterior.
Oscillating structures: Blobs that pulsate — growing and shrinking periodically while remaining spatially localized. These are analogs of oscillators. The period is not constrained to integer values; it can be any real number.
Glider guns: Configurations that periodically emit smooth gliders. These have been found in SmoothLife, though they are rarer and harder to construct than in the discrete case. Guns appear most reliably in parameter regimes with larger outer radii (r_a in the range of roughly 12–21, at the ratio r_a = 3·r_i), where the field has room to sustain both a persistent source structure and the emitted gliders simultaneously; below this range the dynamics are too tight to support the separation required for periodic emission. Systematic search in this outer-radius range, pioneered by ionreq (the author of the first public GPU implementation) in 2012, yielded the earliest documented SmoothLife gun configurations.
Exploding configurations: As in Conway’s Life, some SmoothLife configurations grow without bound, spreading activity across the field. These are the continuous analogs of infinite-growth patterns.
The catalogue of SmoothLife objects is less complete than Conway’s Life’s catalogue — partly because SmoothLife is younger, partly because the continuous setting makes systematic search harder. But the qualitative picture is clear: the same ecological niches that exist in Conway’s Life exist in SmoothLife, occupied by continuous analogs of the discrete objects. For context on what makes the glider significant in the discrete case, and why its survival here matters, see Spaceships →.