GOL-034 · technical companion

Rations

Life stores food to survive isolation and crowding. A second rule gates birth and survival by the food held in neighboring cells.

At a glance

geometry
Square lattice
neighborhood
Eight immediate Moore neighbors
states
Occupancy + food reserves + seeded site streams + two-layer previous-Step evidence
update
Synchronous reserve-funded survival and capped replenishment, constrained by neighboring food intervals
renderer
Canvas 2D

Purpose

Explore two coupled local rules: individual food reserves fund survival, while the total food held by neighboring cells gates birth and survival. The second layer can limit richly stocked neighborhoods; extinction and stable or active colonies remain possible.

Rule contract

Freeze the eight living Moore neighbors and each cell’s food. Empty cells birth with exactly three neighbors and draw an inclusive seeded allowance from zero to eight, without an extra refill that turn. Living cells with two or three neighbors survive freely. Below two, neighbors plus food must reach two and food must cover a flat one-unit fee. Above three, each excess neighbor costs one food: five neighbors costs two. If either support or payment fails, the cell dies and food clears. Only successful survivors with three neighbors gain one food, capped at eight. Payment precedes refill. Exact affordability survives with zero. Every result commits synchronously. A second, optional neighbor-food gate requires BOTH the original proposal and a strict interval to allow life. Sum the current food held by the eight living neighbors, excluding self; dead sites contribute zero. Birth and survival have independent X < sum < Y intervals, initially both 0 < sum < 17 with the gate on. Equality fails. Both layers use the same frozen previous state; neighbors’ new spending, refills and deaths affect only later Steps. A passing gate cannot rescue an original death or non-birth. A veto clears food, commits no refill and does not consume a newborn random draw. Initialization and painting remain unfiltered until the next Step.

Controls

Edit birth count, ordered survival bounds, capacity, ordered newborn reserve range, shortage fee, cost per excess neighbor, refill count and amount. Changing capacity clamps existing reserves and newborn bounds; other rule edits pause without rerolling food. Refill count can differ from birth count; if outside the free band, survival must be affordable before replenishment. Zero capacity with default counts and the neighbor-food gate off reproduces Conway B3/S23. Rule randomizers reset and play the same opening; Randomize everything also changes both seeds, density and selects Random Life, preserving field size, topology, view and speed. Food lower bounds range −1–63 and upper bounds 1–65, with at least one integer strictly between them. Editing a bound visibly adjusts the partner; −1 and 65 admit all sums. Thresholds stay absolute when capacity changes, and unreachable intervals are explained. Randomize food gate changes the four bounds only. All-rule randomization includes them; all randomizers preserve gate enablement. Other scopes preserve the bounds. Switching the gate pauses and preserves the current field.

Inspection

Color grades zero food coral, low food amber, stored food lime and full food mint. Color off shows living occupancy. Pause and enable Inspect cell to read living count, stored support, exact payment, actual refill, next state and food, site random stream and previous-Step accounting. Inspection predicts births without consuming randomness. Cyan outlines identify immediate inputs. No supplemental stage chart is used. The inspector lists each of the eight food contributions, their sum, the relevant birth/survival interval, its match or bypass, the original proposal, final result and previous gate evidence. A 1,000-Step comparison using the default seeds finishes at about 35–37% occupancy with the (0,17) gate versus 48–49% without it, with continued turnover. This is evidence for those fixtures, not a guarantee of coordinated groups or perpetual activity.

Reproducibility

Fresh visits start paused at 10% Random Life, a 160-square torus and 16 Steps per second. Independent life and reserve seeds reconstruct all occupancy, food and per-site random streams. Each site advances its stream only for initial life, actual birth or dead-to-alive painting. Reset rebuilds the selected opening with current rules. Clear rebuilds empty occupancy and fresh streams. Version-two compositions include all fifteen settings, both seeds, density, starter, field size and topology; they exclude evolved boards and view settings. Ration islands and shared classic fields provide comparisons. Complete version-one compositions explicitly adapt with the gate off to preserve their original dynamics; incomplete modern records and unsupported versions are rejected. Existing saved presets are not rewritten.

Performance

Eight fixed local reads per site; O(N) time and memory. Canvas 2D supports bounded or toroidal 80/120/160-square fields and the shared bounded Fast clock.

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.

Large fields, dense populations and large interaction radii increase the work per Step. Start with a small field and radius, then increase them while paused. Read the configuration format and automated-access guide for compatibility details.