# GOL-029: Resurrection

Every living and dead spell leaves a weight in time. Neighbors sum their living and dead days to decide resurrection, survival and death.

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

## What to explore

Make time, rather than head count, the local influence. Reveal bursts of revival,
aging regions and the reset of influence after death. A ratio-dependent recovery time should suppress rapid
death/resurrection flicker while allowing stronger death-time living influence
to recover sooner. Preserve the literal rule
even if some settings synchronize into whole-field oscillation.

## Rules, update order and replay

Square 80/120/160 lattice, toroidal by default. Moore radius one excludes self;
composer permits Moore squares or von Neumann diamonds at radii one through three.
Bounded exterior contributes no samples and no imaginary dead days. Every site
stores binary occupancy and one positive integer age for its current spell.
Except when adjacency pause matches, one Step reads the frozen board and ages, decides occupancy, then increments
unchanged spells by one or starts changed spells at one. No old living age
survives death and no old dead age survives resurrection. Each simulated death
also records exact neighboring living/dead sums, assigned wait, and remaining
wait. This records the death snapshot rather than a lifetime age history. All commits
are simultaneous.

First count living cells in the eight immediately adjacent positions, including
all diagonals and excluding self, using the same wrapping/bounded topology. This
count is independent of the age-sum radius and square/diamond setting. Adjacency
pause defaults on with exact count one selected; any nonempty subset of 1, 2, 3,
4 is allowed. Its independent off switch retains the chosen counts. A matching
living or dead cell skips all age sums and transition calculations, preserving
occupancy, age, death snapshot and remaining wait. It still supplies its unchanged
age to neighbors. Recheck on every frozen turn; there is no latch. Paused evidence
stores the adjacent count and explicitly marks sums as not computed, rather than
presenting the zero-filled evidence slots as actual sums.

Otherwise, let L be neighboring living days and D neighboring dead days. Dead sites resurrect
when D > 0 and L * denominator < D * numerator (default 1/50). L=0 qualifies;
D=0 never does. Optional Require living neighbor disables spontaneous revival.
Living sites survive only when lower*(L+D) < 100*L < upper*(L+D), default 40/65.
Exact ties at either endpoint die. Low share dies through insufficient support;
high share dies through excess living influence. No-sample neighborhoods die/stay
dead. Comparisons use integer cross products, not rounded percentages.

Optional age-qualified death runs after the ordinary ratio proposal. It defaults
off. When enabled, any living neighbor younger than the focal living cell vetoes
both low-share and high-share death. Compare the youngest living neighbor with
the focal cell's current living age, using frozen pre-Step values in the configured
square/diamond age-sum neighborhood. Equality permits death; dead ages are ignored;
no living neighbors means no age veto. A veto preserves life and increments living
age normally, creates no death record or wait, and does not affect resurrection.
Adjacency pause takes precedence and skips this comparison entirely.

At each death, capture that same frozen L/D and assign W = minimum +
ceil((maximum - minimum) * (D/(L+D))^curve). Defaults: enabled, minimum 2,
maximum 32, curve 2. Smaller L/D gives a longer (never shorter) wait. L=0 gives
maximum, D=0 with L>0 gives minimum, and no samples gives maximum. At 40% living
share W=13; at 65%, W=6. Integer ceiling is exact, using BigInt only when the
intermediate integer products exceed safe Number arithmetic.

The death Step commits dead age one and remaining W. Each following Step with
remaining > 0 blocks resurrection and decrements the counter after the decision.
Exactly W evaluated (non-paused) subsequent Steps are blocked; eligibility starts on the next Step.
At zero, the current resurrection ratio still must pass. Zero assigned wait
allows the very next Step, never a second transition inside the death Step.
Dead age increases during non-paused waiting and contributes normally to neighbors. The
snapshot and assigned duration remain fixed throughout the dead spell, including
after expiry. Resurrection clears them. Death wait does not delay living survival/death; adjacency pause skips both.
Disabling the gate bypasses it while snapshots and countdowns continue; enabling
it honors any remaining wait. Parameter edits affect future deaths only.

Reset reconstructs occupancy and every age from selected opening and independent
field/age seeds, generation zero, no death snapshots, no waits, no prior evidence.
Initially dead cells have no simulated death and are immediately eligible,
regardless of their starting dead age. Clear creates all dead, age one, no waits:
this is not an absorbing state with spontaneous revival enabled. Painting a
changed state starts age one and clears only that site's death snapshot/wait,
preserving every other age and timer. Painting the same state preserves its timer.
Rule/topology edits pause and preserve board/ages/timers while clearing previous-Step
evidence. Full replay includes board, ages, generation, death snapshots, assigned
and remaining waits, previous adjacent count, previous wait, previous occupancy/ages, L/D sums, youngest living neighbor ages, decisions,
rules, geometry and topology. Age saturates at 1,000,000,000 days solely to keep
all permitted integer comparisons exact; at 30 Steps/sec this is over a year.

## Reading the simulation

Canvas 2D shows lime established life and cream resurrected life. Optional age
view adds blue dead spells and amber dead spells with an active remaining wait,
and grades brightness logarithmically with age; Color
off restores binary life. Written legend and paused inspection expose current
state/age, each neighbor's state/age contribution, L and D, exact fractions,
next state and age with reason, and previous-Step evidence. It also separates
the current ratio-only proposal, frozen death-time ratio, originally assigned wait,
remaining countdown, gate eligibility and next countdown. Previous evidence reports
the wait before that Step. Accessible canvas text reports remaining and next wait. When adjacency pause is enabled, outlines mark the eight immediate count inputs;
when disabled, they mark the age-sum neighborhood. Written contributions remain available.
The inspector also reports the youngest living neighbor, the age permission,
the ratio-only proposal and the final protected outcome. Prior evidence retains
the youngest age from that frozen Step. The inspector names skipped calculations and the previous pause count. Outlines also mark the selected cell; arrows select, Enter paints, P plays/pauses, S steps.

## Reproduce a starting configuration

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