Synthetic system · deterministic study

What happens when nearby activity helps—and distant activity pushes back?

An active cell encourages the cells nearest to it, while the same activity suppresses activity across a wider area. This study lets that one push-and-pull rule run and asks what patterns survive.

This is not a brain simulation. It is a controlled mathematical toy for seeing how small local rules can create large-scale structure.

01 — The idea

The idea in one minute

The model is easier to understand as a sequence than as an equation. The equation is still here later, for anyone who wants to check the sequence.

01

Start with a spark

A small patch of cells begins active. A fixed seed adds the same tiny variation every time.

02

Let neighbours help

An active cell encourages nearby cells. Activity can therefore spread instead of simply fading.

03

Let distance push back

The same cell suppresses activity across a wider area. The balance decides whether a pattern spreads, settles or disappears.

The useful question is not whether the picture looks brain-like. It is whether the visible pattern follows from the stated rule—and whether it survives reasonable numerical checks.

02 — Experiment

Try the rule yourself

Press Play to let the field evolve. Add local inhibition, then click the field to move it. Reset returns to the same starting point.

Paused

03 — Finding

What the audit found

The label agreed; the picture did not.

The study tested four ways of treating the grid’s edges. In one version, activity leaving the right edge returns on the left. In the others, the edges stop or repeat what reaches them.

Across nine parameter settings, all four versions received the same broad regime label. But the exact cell-by-cell patterns differed substantially—even well inside the grid. A tidy summary had hidden a real numerical sensitivity.

That is the useful result: before interpreting a beautiful pattern, check whether it belongs to the rule or to a convenient choice at the boundary.

04 — Record

For the technically curious

The machinery is available without making it the price of entry.

Model, parameters and reproducible commandsOpen the inspect layer

The update

The field uses a normalized difference-of-Gaussians kernel: a narrow positive lobe for excitation and a wider negative lobe for inhibition. A sigmoid maps their combined input back into a bounded activity value.

input  = nearby excitation − wider inhibition − intervention
target = sigmoid(responseSlope × (input − threshold))
next   = (1 − dt) × current + dt × target

Baseline

Grid
72 × 48 cells
Seed
17
Boundary
Torus / wrapping
State
Bounded to [0, 1] by the update

Run the record

npm test
npm run audit
npm run sweep
npm run boundary-audit