# GOL-018: 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.

[Open simulation](https://100gol.com/experiments/018) · [Directory](https://100gol.com/experiments)

## 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:

1. 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.
2. 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.
3. 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.
4. 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.
5. 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 a starting configuration

[Download example JSON](https://100gol.com/api/experiments/018/configuration). Import it using Share & reproduce in the simulation controls. It starts paused at Step zero. Files contain rules and initial conditions, not evolved boards or manual edits. See [format, limitations and automated access](https://100gol.com/agents).
