Implementation
What if odd and even columns played by different birth laws? Even columns stick to classic B3; odd columns demand five live neighbors before a dead cell wakes—brutally hard to nucleate. Survival stays Conway-style everywhere, so stripes don't just look different, they behave differently. You get moiré-ish territories where the two rhythms negotiate; reload for a new random color draw and the same fight reads like a new poster.
Breakdown
The whole trick is cellX mod 2 inside the rule. There are 3 key components:
Shared survival
Live cells persist on 2 or 3 neighbors, same as always—so once you're alive, the column stripe doesn't change your death logic.
Stripe-dependent birth
const stripe = mod(cellX, float(2))
// ...
If(stripe.equal(0).and(neighborActiveCount.equal(3)), () => next.assign(1)).ElseIf(
stripe.equal(1).and(neighborActiveCount.equal(5)),
() => next.assign(1),
)Even columns behave like textbook Life for births; odd columns need a crowded five-neighbor halo—rare, so those columns often lag or freeze in different phases than their neighbors.
Square grid and framing
176 × 176 keeps parity visually balanced (equal width for even/odd counts in the interior); framing scales slightly squash the field for composition. Random foreground / background in useMemo match the rest of the Emerge lottery pieces.
If you squint, it's a toy model for spatial heterogeneity—different local laws in one shared world—without leaving the CA sandbox.






