Experimental Downstream

Eco 1.0: Reading the Primitives off a Running Simulation

A tri-trophic attractlet, and where its scaffolding shows

Eco 1.0 is a small tri-trophic ecosystem — grass, herbivore, predator — run as a cellular automaton with a closed nutrient loop, fixed refuges, and a harsh seasonal forcing. It is not a sovereign attractor. It is an attractlet: it cycles, coexists, and recovers from shocks, but it leans on structure supplied from outside. That verdict is what makes it useful. The six ontic primitives are present in it regardless, and mapping them reveals exactly where the borrowed scaffolding sits.

Watch it run. A faithful in-browser port of this kernel is running on the live Eco 1.0 page — a 100×100 grid you can watch oscillate, then shock with a perturbation control and watch recover or collapse. The recovery-after-a-shock is the basin made visible.

Why an attractlet is the right thing to map

The primitives are pre-recursive. They are conditions the substrate satisfies whether or not anything sovereign ever ignites on top of them. An attractlet runs on a substrate that fully satisfies the six — that is exactly why it can mimic an attractor at all. So the attractlet verdict does not weaken the mapping of the primitives; they are present in the code either way. What the verdict changes is the autocatalytic constraints, and that is where the seam shows. We map the primitives first, cleanly, then follow the constraints to the scaffolding.

The six ontic primitives in the code

T0-σAdjacency Clean

Almost literal. Every decision and interaction is confined to the 8-cell neighborhood: agents observe only collect_neighbors8(), score only those options, and place offspring only in adjacent empty spots. There is no action at a distance. The wrap-around torus makes “near” and “far” meaningful without any global coordinate mattering. Influence is bounded to neighbor relations — adjacency as clean as it gets in code.

T0-BDistinction Persistence Clean

Differences endure. A cell is EMPTY / GRASS / HERB / PRED and holds that identity until something changes it; an agent's herb_energy or pred_energy is a maintained interior quantity, distinct from its surroundings. The strongest case is the refuge terrain: TERRAIN_REFUGE is a standing inside/outside distinction the dynamics respect every tick — herbivore and predator cannot enter. Note this well: the distinction endures (the primitive is satisfied), but it is imposed from outside, not produced by the structure defending itself. That is a foretaste of the seam.

T0-ΦThroughput-Conditionality Clean

The primitive the code enforces hardest. Nothing persists without inflow. Every agent pays HERBIVORE_METAB or PREDATOR_METAB each tick and dies when energy reaches zero; grass will not grow unless nutrients[i] >= N_REQUIRED. Continued existence is conditional on ambient inflow — that is the definition, made into arithmetic. The nutrient field is the inflow; exhaust it and the structure cannot persist.

T0-χPath-Closure Sensitivity Clean

Closed traversals carry an invariant effect; returning is not the same as never having left. The nutrient cycle is exactly such a loop: grass grows and spends nutrient, herbivore eats grass, herbivore dies to detritus, nutrient_closure() decomposes detritus back into nutrient, grass grows again. Matter goes around, and the loop is not neutral — each pass leaves the spatial nutrient distribution altered. The diagnostic mass_return is literally a measurement of path-closure: how much of what left the loop came back around.

T0-MSelf-Reference Admissibility Present, weak

This primitive says self-reference is admissible — a structure may bear relations to the effects of its own prior states. Eco 1.0 has this at the population and field level: herbivore density now shapes grass availability, which shapes herbivore energy, which shapes the population next tik; reproduction is a structure producing more of itself. But this is the weakest clean mapping, and deliberately so. T0-M makes recursion possible; it does not make it lock. Eco 1.0 has feedback, but the feedback rides on external scaffolding. Self-reference is present; recursion lock is not achieved on its own. That gap is the attractlet.

T0-PAsymmetric Admissibility Clean

Directionality without time: some transitions are admissible and their exact reverses are not. Eco 1.0 is full of irreversibility. Predation takes HERB to EMPTY plus detritus plus a predator's energy gain — you cannot run it backward; the prey does not un-die. Death, decomposition, and metabolic burn are one-way resolutions. This, not the season, is the arrow of the simulation: resolved configurations (eaten, dead, decomposed) are not equivalent to unresolved ones (alive, standing) with respect to what can happen next. It is also why the sim has a direction at all without invoking physical time — the ordering index t is bookkeeping, not a clock.

The primitives, at a glance. Five map cleanly and one — T0-M — is present but weak. Notice that the weak one is the primitive most directly concerned with recursion closing on itself. The substrate offers self-reference; the simulation does not turn it into a locked, self-sustaining loop. Everything else about the attractlet follows from that single fact.

The autocatalytic constraints, and where the scaffolding shows

The primitives are pre-recursive and present regardless. The autocatalytic constraints are stricter: they are the conditions for self-reinforcing recursion that pays and lowers its own continuation cost. This is where the difference between an attractor and an attractlet is decided, and where Eco 1.0's borrowed structure comes into view. There are three to check.

Maintenance-bearing continuation Satisfied

Operation runs at cost, always; there is no free-amplification regime. Metabolism is charged every tick, growth spends nutrient, and there is no state in which the system persists for nothing. Eco 1.0 meets this cleanly — it is, in fact, the constraint the simulation was built around.

Irreversible loss and non-free restart Satisfied

When a region goes to the empty regime, that is terminal loss, not a pause. Nothing resumes from where it died; a re-seed would be a fresh ignition paying its costs again from the start, not a continuation of the old identity. The empty_ticks counter is precisely the framework's terminal-loss event, and the simulation honors its irreversibility.

Boundary-enforced persistence Met on borrowed terms

Identity is sustained only while the boundary holds — true here — but Eco 1.0's boundary is the refuge terrain, and the refuge is generated once at startup and then fixed. The simulation prints refuges=(fixed) on every line, as if to confess it. The structure does not produce or defend its own boundary; it is handed one. The constraint is met, but on terms supplied from outside. This is the exact condition an engine fails, and it is the reason Eco 1.0 is an attractlet rather than a sovereign attractor.

The seam, named. Eco 1.0 satisfies all six primitives and two of the three autocatalytic constraints. The one constraint it cannot satisfy on its own — a self-produced, self-defended boundary — is exactly the place it leans on the programmer's hand. The fixed refuges and the externally imposed season are the scaffolding. The mapping did not decide the verdict in advance; it located the seam. That is the framework doing its job: it tells you not just that a structure is an attractlet, but precisely where its borrowed support is bolted on.

The tree trunk

Eco 1.0 is deliberately a trunk, not a finished organism. A tri-trophic loop — producer, consumer, predator — over a closed nutrient cycle is the simplest structure that is rich enough to carry all six primitives at once and still fail sovereignty in a single, legible place. That makes it the right base to branch from: each added layer is a new mapping against the same primitives, and each is a test of whether the branch removes scaffolding or adds more.

Branches this trunk is built to grow. Each is a candidate downstream experiment, mapped against the same six primitives and judged by the same sovereignty test. None of them may rewrite canon; each is measured against it.
  • Endogenous boundary. Replace the fixed refuge with a boundary the system produces and maintains itself — the single change that would move the boundary constraint from borrowed to self-made, and the most direct route off attractlet status.
  • Endogenous forcing. Let the season arise from the system's own dynamics rather than an external sine, removing the second piece of scaffolding.
  • Viruses. A layer that is not itself sovereign and cannot persist alone — a candidate attractlet within the ecosystem, sustained by the hosts it exploits. A clean test of the attractlet category inside a live substrate.
  • Transformations. State changes and role-shifts — dormancy, metamorphosis, succession — mapped as admissible transitions under T0-P, testing which reversals the substrate does and does not permit.
  • Further trophic layers and decomposer guilds. Additional levels above and below, each closing more of the nutrient loop internally and tightening path-closure under T0-χ.
  • Mappings to Earth's current state. The long arc: reading real ecological and planetary structures against the same primitives, with Eco 1.0 as the legible reference case that shows what a clean mapping looks like.

This page maps a specific simulation onto the kernel's Tier-0ᴴ ontic primitives and its autocatalytic constraints. The primitives are pre-recursive substrate conditions and are present independent of sovereignty; the autocatalytic constraints are the maintenance-bearing, irreversible-loss, and boundary-enforced conditions that separate a sovereign attractor from an attractlet. The mapping introduces no new constructs and asserts no modification of canon. All classifications are downstream applications, subject to the boundary notice governing the Bio-Kernel Series.

← Back to the Bio-Kernel Series