GOL-035 · technical companion
Pocket Life
Life cells ingest lone neighbors into eight pockets. Hosts release stored children along fixed headings, with timed neutrality and one-turn deployment immunity.
At a glance
- geometry
- Square lattice
- neighborhood
- Eight immediate Moore neighbors
- states
- Visible entities + nested eight-slot reserves + fixed headings + parent identity + neutrality timers + deployment markers
- update
- Synchronous filtered Life with deployment immunity, frozen ingestion and fixed-heading child deployment
- renderer
- Canvas 2D
What to explore
Cells ingest lone neighbors into eight slots, then release stored cells along a fixed heading while the host stays put. Released cells can be neutral to normal Life counts for X turns, either to their deploying parent alone or everyone. Successful deployment can protect the parent for one turn, without spending a reserve. Neutrality defaults on for everyone for one turn; deployment immunity defaults on. Try Pocket trios with birth off and survival 0, 1 and 2 to see ingestion followed by deployment. Set neutrality to two turns, then turn survival 0 off after deployment to compare immunity with ordinary death on the following update.
Rules, update order and replay
Square 80/120/160 Moore grid, toroidal or bounded. Each entity has a fixed seeded heading, eight child slots and intake order, a stable identity, remaining neutrality turns, latest deploying-parent identity and a previous-turn deployment marker. All nested contents retain their state. Parent identity is used only for equality, never priority or conflict resolution.
- Freeze visible entities. For normal Life counts, omit a neighbor only when Neutral deployments is on, its timer is positive, and Neutral for everyone is on or the observer is its actual deploying parent. Parent-only neutrality never excludes a neighbor from an empty site's birth count. Global neutrality affects both birth and survival. Neutral entities still evaluate their own Life rules normally.
- Commit Life. With Deployment grants immunity on, a host that successfully deployed last Step survives an otherwise lethal Life decision. No reserve is consumed. Otherwise death removes the host and its contents. Freeze surviving occupied slots before intake. Timers age once per global Step, even while stored; Life reads their frozen pre-decrement values. Newborns get fresh identities/headings and no timers.
- Count all visible post-Life entities for ingestion, including neutral cells. Exactly-one-neighbor cells propose ingestion into their sole neighbor. Reciprocal isolated pairs stay visible to prevent cycles.
- Hosts accept candidates clockwise from their fixed heading into lowest empty slots. Full hosts leave excess candidates outside. Remove accepted sources together. Nested state travels intact; fresh intake cannot deploy this Step.
- Each remaining host with an older reserve makes one fixed-heading deployment claim. Occupancy and bounds block; all shared-destination claims fail without retry. Unique claims release the lowest eligible child with its own heading, identity and contents. The host stays and the slot empties. Set the child's timer to X and its latest parent to this host, and mark the host for next-turn immunity. Arrivals do not act again this Step. Failed attempts grant no immunity.
Deployment at Step t with X=2 affects updates t+1 and t+2. X=0 disables neutrality for that release. Re-ingestion preserves the timer and identity; redeployment refreshes timer/parent. Timers age even when hidden. A parent's replacement never inherits parent-only exemption. Neutrality/scope switches affect existing timers immediately; duration changes affect future deployments. The immunity switch gates the previous-turn marker immediately. Neutrality does not hide cells from ingestion or free occupied space. Stored cells never substitute for death.
Reset rebuilds the opening, empty slots, identities and counter, headings and seeded site streams. Painting creates a fresh entity or removes its whole tree. Rule/topology edits pause and clear evidence while retaining entities/timers. All-rules and deployment randomizers include neutrality, scope, X (0–64) and immunity; B/S scopes preserve them. Every randomizer preserves the compass seed. Full replay includes the forest, identities/counter, timers/markers, streams, generation, rules, dimensions and topology. Shares save openings only.
Version five removes stored-child sacrifice. Version-one through four openings retain their Life masks and adopt the new deployment-effect defaults; earlier trajectories change.
Reading the simulation
Lime marks ordinary life, gold carrying hosts, violet active neutral cells, and cyan other recent arrivals. Color off shows occupancy. Paused inspection exposes visible versus counted neighbors, skipped positions, remaining neutrality, scope and deploying parent, immunity and ordinary Life decision, eight pockets, ingestion and exact deployment outcome. Forecast uses the same pure engine without consuming live state. Keyboard, transport, seeded Reset and the mobile randomize/play shortcut follow the shared controls.
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.