ALIFE 2026 · Waterloo — lightning talk

Self-organized
boolean computation

ncpu.pages.dev
the idea

Neural cellular automata grow shapes.
This one computes.

8-bit adder · 255 + 1 · one shared rule, 64 steps
the task

We draw the question on the grid.

The live demo: input bits wired to circles on the left edge of the grid, blank output circles on the right.
Bright circle = 1, dark = 0. The answer has to appear on the right, which starts blank.
the rule

Classic NCA setup.

A CELL 16 numbers · 7×7 PERCEIVE self · ∂x · ∂y fixed — nothing learned → 48 numbers per cell A TINY NETWORK 48 → 128 → 16 ~8k weights, all learned UPDATE state += Δ 50% of cells fire clamp to ±10 then read the grid × 64 STEPS
No global clock. No controller. No memory outside the grid.
it works

Addition is not a local operation.

239 + 33 = 272 · two separate carry runs
A cell sees a 7×7 window, so a carry cannot jump — it has to travel. Here two of them do, and they land last.
under the hood

We observed a carry wave.

visible channel
hidden channel 4
Same run, 255 + 1. One of the sixteen numbers each cell carries — the model invented it, with no target of any kind. Red is above that frame's average, blue below. The front sweeping up and right is the carry.
the nice part

It runs wider than it was trained.

7 + 1 · 3-bit
5 + 6 · 3-bit
145 + 103 · 8-bit

Same model, same weights.
It was only ever trained on sums up to 3 bits.

The rule is local and the bits sit against a fixed edge, so nothing in it refers to how wide the problem is.
measured two ways

Bit-length extrapolation.

% of bits correctthe usual measure
4-bit6-bit8-bit
≤ 2-bit96.593.991.9
≤ 3-bit99.898.798.0
≤ 4-bit100.0100.099.7
≤ 6-bit100.0100.0100.0
% of sums exactly rightevery bit, or nothing
4-bit6-bit8-bit
≤ 2-bit93.082.874.6
≤ 3-bit98.894.991.8
≤ 4-bit100.0100.098.8
≤ 6-bit100.0100.0100.0
Rows: the widest sum the model saw in training. Columns: the width it was tested on. 128 random sums per cell, mean of 2 seeds. A sum can be 8 bits out of 9 right and still be the wrong number — which is why the left table looks better than the model is.
try it

It all runs in the browser.

QR code to ncpu.pages.dev
ncpu.pages.dev

Flip the input bits and watch the grid settle.
Scrub a rollout frame by frame.
Weights, code and the poster are all there.

← → move · F full · P pause · O overview