# GOL-016: Countertime

Every cell watches its own rolling binary history: when that history matches its own trigger, it crosses to a permanent distant counterpart and plays there backward.

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

## What to explore

The experiment should make coupled history transfer legible. Every
position has exactly one counterpart for the life of the reconstructed world.
Each cell owns its own trigger and rolling visible history. A fresh equality
between a cell's own history and its own trigger should copy that complete
history into the other cell, suspending ordinary Life there while the received
states play newest-to-oldest. Replayed states must become part of the receiver's
own signal so transferred histories can act back across the couple.

Correctness requires more than a trigger-colored renderer. The comparison must
read one frozen pre-Step state; both partners must be allowed to trigger on the
same Step; reverse occupancy must come only from the signaler's captured history;
and a permanently equal signal must not immediately retrigger forever.

## Rules, update order and replay

The world is an even-sized square binary lattice. Ordinary forward updates read
the eight-cell Moore neighborhood from one frozen current board, using either
toroidal or bounded edges. A world seed drives a salted Fisher-Yates shuffle,
divided into two-position groups, to create a symmetric random perfect matching.
No cell pairs with itself, every cell has degree one, and pairs persist until the
world is reconstructed.

The rule chooses one history width `N` from two through eight. Every cell owns:

- its current dead/alive occupancy;
- one permanent partner index;
- an `N`-bit rolling signal of committed visible occupancies;
- an at-most-`N`-bit transferred replay buffer and its remaining length;
- an `N`-bit reverse trigger;
- forward/reverse direction and remaining reverse Steps;
- an edge-trigger latch, global warmup countdown, and last-transition evidence.

The rolling signal and replay buffer are separate because a received history
must remain frozen while its outputs alter the receiver's own rolling signal.
The signal is the history a cell may send; the replay buffer is the history it
has received and is currently consuming. Both structures are bounded at `N`
bits.

After construction, every cell advances under the configured Life rule for `N`
Steps. This warmup produces a complete `N`-bit signal before transfer matching
becomes active. On every later Step, all cells evaluate synchronously from the
same frozen state:

1. Cell X compares X's current complete rolling signal with X's trigger. Cell Y
   independently compares Y's signal with Y's trigger.
2. A newly encountered self-equality in X copies X's frozen `N`-bit signal into
   Y; a new self-equality in Y independently copies Y's signal into X. A receiving
   forward cell immediately emits the newest bit of that captured partner history
   on the same Step; ordinary Life is computed for inspection but ignored.
3. A reversing cell continues consuming that frozen transferred buffer from
   newest state to oldest. It ignores Life and additional transfers until all
   `N` received states have been emitted.
4. Every actual result—forward or replayed—is appended to that cell's rolling
   visible signal before the next generation. A transferred output can therefore
   create the receiver's own self-match and send the receiver's new history back
   to its counterpart on a later Step.
5. At the end of the `N`th transferred state, the receiver returns to forward.
   A later fresh counterpart self-match may deliver another complete history.

Matching is edge-triggered across each pair. While Y's complete history remains
equal to Y's trigger, that equality is latched on X's incoming gate and cannot
send X into another replay. Y's self-match must become false before a later
equality is new. A transfer encountered while X is already replaying is latched
but does not replace the active received history. Both partners may be forward,
reverse, or may receive one another's histories simultaneously; there is no
pairwise direction lock or priority.

Step advances this complete contract once. Reset reconstructs the selected
occupancy field, perfect matching, per-cell triggers, one-state rolling signals,
empty transferred-replay buffers, forward directions, empty latches, the
`N`-Step warmup countdown, and evidence. Exact replay
requires configuration, world seed or classic field, density when random,
topology, generation, occupancy, partner indices, signal bits and lengths,
transferred replay bits and lengths, per-cell trigger bits, directions, reverse
counters, match latches, warmup countdown, and last-event evidence. Evolution
makes no random calls.

## Reading the simulation

Diagnostic color uses cyan for living warmup cells, lime for forward life,
violet for reverse life, cream for forward births, and gold for a living state
on the Step it receives a counterpart's transferred history and begins replay.
Dead states remain background; reverse-to-death and trigger-to-death remain
written evidence. Simplified Color mode shows dead/alive while retaining the
pair line and written causality.

Inspection pauses the world, outlines the selected cell and its eight local
neighbors, draws one violet line to the only counterpart, and outlines that
counterpart separately. Written evidence reports both coordinates, occupancies,
directions, rolling signals, triggers, both self-comparisons, the selected cell's
incoming counterpart history, active transferred buffer and reverse counter,
whether that incoming transfer is armed or latched, the hypothetical ordinary
Life result, last event, and exact next result with reason. The accessible canvas
label states both self-comparisons, the transferred history, and the selected
result so neither color nor the distant line is the only explanation.

## Reproduce a starting configuration

[Download example JSON](https://100gol.com/api/experiments/016/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).
