Implementation
Strip the rule down to XOR: add the north, west, and east neighbors, take parity mod 2, ignore yourself entirely. Seed sparsely and let the torus wrap—what grows out is kin to classic linear CAs (think Rule 90's triangle energy) smeared across a plane. It's one of the calmest updates in the series visually, but the structure it builds is mercilessly regular.
Breakdown
Linear rules like this are the bridge between "pretty noise" and actual discrete math. There are 2 key components:
Mod-2 triple sum
export const emerge6 = Fn(([_currentActive, _neighborActiveCount, _x, _y, _nw, _ne, north, west, east]) => {
return mod(north.add(west).add(east), float(2))
})No branching—just arithmetic. That keeps the GPU path simple and makes the field feel "crystalline" as voids and filaments propagate.
Sparse seed and frame
seedDensity: 0.22 keeps enough 1s to light the fuse without filling the grid; framing.scale plus asymmetric margins recenters the pattern as a object on the canvas.
With default toroidal boundaries in CellularAutomata, edges wrap—so you rarely get a clean "edge death" story here; instead, structures loop and collide with themselves. If you want the opposite mood, compare with Emerge 2's dead boundary diamond.






