GOL-018 · technical companion
Compass Rose
Cells that start dead follow Life. Cells that start alive carry a rotating opening pattern and live when either their compass matches or Life permits it.
At a glance
- geometry
- Square lattice
- neighborhood
- Moore · 8 oriented positions
- states
- Dead / alive + permanent target and rotating compass
- update
- Rotate, compare frozen patterns, commit synchronously
- renderer
- Canvas 2D
What to explore
Make the interaction between ordinary Life and rotating positional memory visible and explainable. Both Life fallback and compass-only results should remain consequential. Exact positional matching and Conway B3/S23 are the defaults; the composer permits explicit changes to both mechanisms.
Rules, update order and replay
The world is a square binary Moore lattice. North, northeast, east, southeast, south, southwest, west, northwest are codes zero through seven. Each position owns current occupancy, permanent opening occupancy, heading, permanent rotation sense, permanent relative eight-bit target, and last-Step evidence.
Initially living positions capture their opening neighbors clockwise from their initial heading. Initially dead positions retain a zero-valued diagnostic target but never use it to govern occupancy. Relative bits always read clockwise from the heading, including for counterclockwise compasses; rotation never reflects the bit order. No birth, death or manual painting changes opening class or target.
Every Step uses one frozen current occupancy field:
- Advance each compass if its cadence is due. Cadence N turns on Steps N, 2N, etc.; stride is one through seven compass positions. Dead-origin compasses also advance, though they have no effect on those positions' occupancy.
- Count the eight living neighbors and evaluate the composed Life birth mask if currently dead, or survival mask if currently alive. Defaults are B3/S23.
- Only for an alive-origin position, compare all eight actual positions with its oriented target. The currently dead/alive state selects the birth/survival mismatch allowance, both zero by default. An excluded all-off or all-on stored target cannot produce a compass match, regardless of allowance.
- A dead-origin position adopts the Life result. An alive-origin position is alive if either the compass path or Life permits it. A failed or excluded compass match falls back to Life; exclusion never vetoes a Life result.
- Commit all occupancies, headings and evidence simultaneously. Record whether life came from Compass, Life, Both, or Neither; neither means the result is dead.
Toroidal edges are default; bounded missing neighbors read dead for both paths. There is no intermediate Life board, priority between cells, or evolution RNG. Every decision uses only the same eight immediate neighbors from the old board.
Reset reconstructs the selected opening field, opening classes, targets, headings, chirality, generation zero and empty evidence. Separate occupancy and compass seeds reproduce independent random layers. Changing topology or compass assignment reconstructs the opening so target capture agrees with it. Painting changes occupancy and clears evidence while preserving class and compass state. Clear assigns every position to the dead-origin class: it stays empty under B3/S23, but a composed B0 rule can explicitly give birth there.
Exact replay includes all arrays (including lastSource), generation, configuration, topology, dimensions, and opening inputs.
Reading the simulation
Canvas 2D uses lime for established life and cream for births; dead positions remain background. Alive-origin inspection outlines matching inputs in solid mint and mismatches in dashed coral, with an arrow for the next heading. Dead-origin inspection highlights living neighbors and omits the inactive arrow.
The inspector reports opening class, Life rule/count/result, compass eligibility, pattern mismatch, target exclusion, final rule source and last-Step source. The eight-row table is explicitly diagnostic for dead-origin cells. Exact telemetry counts only eligible, included exact compass matches. Simplified Color retains written causality. Arrow keys select; Enter paints outside inspection; P plays or pauses; S advances one synchronous Step.
Reproduce an opening
Download the example above, open the simulation, expand the controls, then use Share & reproduce → Import JSON. The example uses authored rules and a fixed seeded starting field; it is independent of the site’s editable default composition. Import starts paused at Step zero.
Share links and JSON reproduce the configured starting conditions, including hidden layers rebuilt by Reset. They do not save an evolved board, hand-painted cells, speed or display preferences. Determinism applies to the same rule version and Step sequence; real-time playback rates vary by device.
Larger fields and more involved rules can reduce playback speed. Read the configuration format and automated-access guide for compatibility details.