Rule garden / Experiment guide

A clock the difference cannot see

Two rules can produce exactly the same difference picture while their gardens look dramatically different. Compare rules 150 and 105: one adds a whole-row inversion on every odd generation. A disagreement measurement cancels that shared clock.

Predict, then change the view

  1. Open rule 150 in difference view and rule 105 in difference view. Both have three differences at generation 1. Compare the entire pictures: every differing cell agrees.
  2. Predict whether the original gardens must also match. Open rule 150’s original garden and rule 105’s original garden. The inspector reports 3 versus 798 lit cells. Each row has 801 cells: the two rows are exact complements.
  3. Inspect generation 2, then 3. At 2 the original rows agree; at 3 they are complements again. Use the checkpoints below to follow this alternation farther down the garden.
  4. In both tabs choose Scattered cells, keep the same seed, and press Grow. Try seeds 7 and 12. The odd/even relationship still holds, and the difference picture stays unchanged. The statements apply to every starting row, provided both rules start from the same row and flip the same cell.
Width 801, one-cell start. Generation 0 is the starting row.
GenerationRule 150 litRule 105 litDifferences in either experiment
0111
137983
2333
357965
127171630171
128333

Scroll the table on narrow screens; keyboard users can focus it and use arrow keys. “Differences” compares the original and center-flipped gardens within each rule, not rule 105 against rule 150.

Why the clock cancels

Write XOR as ⊕. Rule 150 outputs L ⊕ C ⊕ R. Rule 105 outputs 1 ⊕ L ⊕ C ⊕ R: the opposite answer for each neighborhood. Their eight output bits are 10010110 and 01101001.

Let A mean one whole-row rule-150 step, and let 1 mean the all-lit row. One rule-105 step is A(x) ⊕ 1. Rule 150 preserves the all-lit row, since 1 ⊕ 1 ⊕ 1 = 1. Consequently a second rule-105 step gives A²(x): the two added all-lit rows cancel. Repeating this argument gives Aᵗ(x) ⊕ (t mod 2)1 at generation t. Thus even generations match rule 150; odd generations invert it. This works at every ring width, including after wrapping.

Now run rule 105 from two starting rows x and y. At the next step their difference is

(A(x) ⊕ 1) ⊕ (A(y) ⊕ 1) = A(x ⊕ y).

The added ones cancel because both gardens receive them. Their difference therefore evolves by rule 150, not rule 105. When x and y differ in one cell, that difference starts as a single impulse and follows exactly the same history for every background.

A useful correction to a tempting inference

Background independence does not require strict XOR linearity. Rule 105 is affine: a linear update plus a fixed added row. It is not linear, since it sends an empty row to an all-lit row. Its difference dynamics are linear because the fixed addition disappears from the comparison.

Do not evolve the difference with rule 105 itself: at generation 1 that would give 798 lit cells here, while the actual difference has only three. Also, merely complementing any rule’s eight outputs does not guarantee this odd/even relationship; the argument used rule 150’s linearity and its preservation of the all-lit row.

Record the original-row occupancy as well as the difference. An identical difference picture tells you how two nearby starts separate, but can hide a global change shared by both. Compare with a background that changes the response or a count that hides motion.

Source: the Wolfram Atlas rule-105 properties gives its algebraic form as (1 + L + C + R) modulo 2. The clock and difference identities above are derived here.

Checked 2026-09-10: 5,460 exhaustive row-pair identities on widths 1–6; 17,600 whole original/perturbed/difference row comparisons on widths 2, 7, 31, 256, and 801 through generation 439, including scattered seeds and background-independence checks. All listed checkpoints pass. Finite tests verify the examples and implementation; the algebra explains the unlimited-time claim.