Writing Chronos

Designing the Conditions for Life

· 10 min read

A six-card research arc, left to right: the diet-gene trap and the refuted parameter path in red, the body-plan breakthrough in amber, then three blue-green cards for the cognition arc (see, learn, teach), over a dark banner stating the recurring law.

I have been building a world. Not a game, not a product. A laboratory. It is called Chronos, and the rule I gave myself is the whole point: design the substrate, never the behavior.

You design the dish. Physics, energy, the shape of a genome, mutation, selection, the world. Then you let the organisms design themselves. You never write seek_food(), flee(), cooperate(), or build. Those are outcomes evolution may reach, or may not. If you code the behavior, you have not discovered anything. You have just drawn what you already imagined.

This post is the honest log of what happened when I held that rule. It includes the failures, because the failures are where the real findings are.

The short version:

  • You cannot dial a trophic role. When “producer vs predator” is a gene set at birth, selection just deletes the harder one. The soup collapses to a monoculture.
  • Remove the dial. Let the role emerge from body physics (a big body cannot live on sunlight, so it must hunt). A living, oscillating food web appears on its own, and it is stable across many random worlds.
  • Build the instrument before the behavior. You cannot evolve coordination if you cannot measure it.
  • Every social and cognitive layer (coexistence, learning, teaching) pays only in a narrow middle band. Strong enough to matter overlaps strong enough to destabilize. That is not a bug. That is the real shape of the problem.

The trap: you cannot dial a role

The first design had one clean gene called diet, a number from 0 to 1. Zero meant pure producer (photosynthesize the energy field). One meant pure predator (hunt other cells). One axis, the whole trophic spectrum. Elegant.

It does not work, and it fails in an instructive way. Producing is the simpler strategy. It needs no skill, no prey, no timing. Hunting needs all three. So early on, producers out-reproduce everyone, and selection drives the diet gene toward zero across the whole population. The predator genotype is not out-competed ecologically. It is deleted from the gene pool. What you are left with is a producer monoculture that oscillates with its food and never does anything interesting again.

I spent real effort trying to rescue this with parameters. More sun, less sun, lower mobility, bigger worlds, a fallback food source for starving predators, even seeding fully-formed competent hunters into the world by hand. Every one failed the same way. Seeded predators would boom, eat through the naive prey, then crash to global extinction, and the survivors would quietly disarm.

The lesson took a while to accept: tuning cannot fix a structural problem. If “predator” is an always-on commitment a cell is born with, directional selection will remove it whenever producing is even slightly easier. No parameter changes that.

The breakthrough: delete the dial

The fix was to stop assigning the role at all.

A cell is no longer a point on a producer-to-predator line. It is a body: a size, a defense, a weapon, an evolved brain. Eating another cell becomes a universal capability that any cell can attempt. Whether it pays is decided by physics, not by a gene that says “you are a hunter.”

The load-bearing piece is one real biophysical law. Photosynthesis is a surface process. It scales with surface area, roughly size to the two-thirds power. Upkeep is a volume process. It scales faster, with size itself. So there is a body size above which sunlight can no longer pay your bills. A small cell lives fine on the sun. A big cell cannot, and must hunt to survive. Nobody declared producers and predators. They fall out of the size distribution, and the boundary even shifts with the local richness of the world.

A mechanism diagram showing the size tradeoff: two curves cross at a size ceiling, with a green producer zone on the left and a red predator zone on the right, feeding into the tick pipeline and an oscillating-cycles outcome.
The size physics is the whole trick. Sunlight income (sublinear) crosses upkeep cost (superlinear) at a ceiling. Below it you are a producer; above it you must hunt.

The first time I ran this version, a producer-predator food web appeared and persisted for a hundred thousand ticks without collapsing, oscillating in the coupled way real predator and prey populations do. Then I ran it again on a different random seed. And another. It held, world after world. The thing I could not buy with any amount of parameter tuning fell out for free once the substrate had the right shape.

That is the entire thesis of the project in one result. You do not engineer the outcome. You engineer the conditions, and you make sure the conditions are structurally honest. Then you get out of the way.

Build the instrument before the behavior

Once I had a living world, I wanted to push it up the ladder: cooperation, learning, the beginnings of organisms. But I had learned a hard lesson earlier in the project. Before I built the food web, I built the instruments to see it. Without a way to plot what was happening, “monoculture again” tells you nothing about why.

So before adding any social behavior, I built a detector for the thing I was hoping to grow: integration. When do a group of cells stop acting as separate individuals and start acting as one?

There is a real measure for this from the study of consciousness and complex systems, called integrated information. The full version is intractable at scale, so I built a cheap, honest proxy: how coherent is a local cluster’s motion, weighted by how tightly it is bound together. Scattered cells read near zero. A dense but uncoordinated crowd reads in the middle. A cluster that moves as one body reads near one. It is pure observation. It never touches the simulation, so it cannot corrupt what it measures.

This matters more than it sounds. You cannot evolve coordination if you cannot measure it. The detector reading a flat, honest zero at the start was exactly right: nothing had integrated yet, but the moment something did, I would see it.

Learning, then teaching, and the law that kept repeating

Then I gave brains the ability to learn within a single life, not just across generations. A reward-modulated rule, where connections active just before an energy gain get strengthened. Crucially, learned weights are not inherited. Offspring are born with a clean slate. No Lamarck.

The honest result: individual learning, on its own, is marginal. In most worlds it gets selected away. This is not a disappointment. It is a faithful reproduction of a known finding in the evolution-of-learning literature: individual learning alone rarely pays, because evolution already tracks a slowly-changing world well enough. The real lift comes from learning socially.

So I built teaching. Not imitation, which the literature says barely evolves, but guided learning: a cell near a thriving, signaling relative gets a nudge toward whatever it is doing near that success. The teacher provides the cue. The learner’s own plasticity does the work. And to make teaching pay, relatives share a little of what they harvest, so a teacher whose guided kin thrive gets fed back.

It works. In the right regime, teaching rescued learning (it went from selected-away to strongly favored) and raised the integration score I had built to watch for exactly this. The teaching-learning-integration loop that theory predicts showed up on my own instrument.

But here is the law that kept repeating across every layer of this project, stated plainly:

Every social and cognitive layer pays only in a narrow intermediate regime. Strong enough to matter overlaps strong enough to destabilize.

Turn cooperation up far enough to clearly change the world, and on some seeds the whole population crashes. Keep it gentle enough to be safe everywhere, and the effect goes quiet. This is not my model misbehaving. It is, again, a faithful echo of real evolutionary theory: cooperation and social learning live in a thin band of conditions. The honest move is to report the band, not to tune until the demo looks good.

The research arc as six connected cards plus a banner.
The arc of the work: the trap, the refuted parameter path, the body-plan breakthrough, and the cognition layers (see, learn, teach), over the recurring law.

The part I am proudest not to have built

Here is my favorite thing in the whole project, and I want to be precise that I did not program it.

Cells recognize kin by color. Color is a heritable, visible gene, and helpful behavior (sharing, teaching) flows toward cells of a similar color. That is the only rule. I never wrote anything about deception.

But look at what that rule affords. Color is free to change and only matters for kin recognition. So a completely unrelated lineage can mutate its color to match a thriving group, slip inside their definition of “kin,” and start collecting their help for free. That is parasitic mimicry, and it is a direct logical consequence of the rules, not a line of code. And the counter-move is afforded too: a host lineage under attack can drift its own color away, shedding the mimics, who then have to chase. That is a recognition arms race, the same green-beard dynamic biologists argue about, available to evolve.

A diagram showing what is built (color kin recognition) and the selective paths it affords: kin clustering, parasitic mimicry, host defense, and the arms-race cycle, with the principle that none of it is programmed.
We author the affordance and the payoff. We never author the behavior. Mimicry may evolve, or it may never. Both are valid results.

So I built a detector for it, the same way I built one for integration. It separates real relatives (a lineage tag that never mutates) from look-alikes (matching color), and it watches for color-kin who are not actually related.

And what it found, so far, is honest and a little humbling: mimicry does not appear, because the world keeps collapsing to a single family. With only one lineage left, there is nobody to mimic. The path is real. The conditions to walk it (several lineages coexisting long enough to converge in color) are not there yet, and getting them needs the same spatial structure that keeps showing up as the missing ingredient. The detector sits ready, reading zero, waiting for the day the world is diverse enough to cheat.

That is the discipline. You build the possibility, you build the instrument, and you report what evolution actually did, including “nothing yet.”

What this is for

Chronos is a research instrument, not a claim about how minds arise. I am careful never to overclaim. What I can show is real: the spontaneous evolution of body form, of producer-predator food webs, of an arms race in defense and escape, and the honest boundaries of cooperation and learning. What sits above that, true open-ended complexity, is an unsolved problem, and pretending otherwise would defeat the entire point of building the thing.

The deeper reason I am doing this connects to everything else I work on. The hardest systems I build, multi-agent AI included, fail the same way the diet gene failed: when you over-specify the behavior, you get exactly what you imagined and nothing more. The interesting results live in substrates designed well enough that the behavior you wanted, and behaviors you did not think to want, can emerge and be measured.

Design the conditions for life. The life is on its own. That is the whole craft.

The Chronos substrate: the cell's body-plan genome, the deterministic tick pipeline, and the two arcs (cognition and metabolic).
The substrate, for the curious: a body-plan genome, one deterministic tick, and the affordance stack. Same seed plus same rules always gives the same world, so every result is reproducible and auditable.

Chronos is deterministic and fully logged: the same seed and rules always reproduce the same world, which makes every finding here replayable. More to come as the food web grows a decomposer layer, and as I try to give it the spatial structure that so many of these frontiers seem to need.


Related reading: The Bug That Caught Me Cheating - the one test I now trust to tell whether a behavior really evolved or whether I quietly scripted it.

Wrestling with this inside your own organization? That is, quite literally, my day job. See how Cone Red ships it →