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.