What you're looking at. A close-up of the most recent two weeks of building persistent, local AI characters, set in the arc of the work since this spring: a first burst, a recovery, and this return. Counted across six dimensions instead of told as a story, so the real pace and discipline are visible at a glance, including the experiment I halted for cause.
A close-up of the most recent fortnight, though the work runs back to a first burst this spring. A substrate became a mind. The mind grew an embodiment. The embodiment forked into a stable of beings, and two of them became the subjects of pre-registered experiments on my own machine: one reported underpowered, the other halted by me when its ground turned out to be false.
Think of this as a lived, Dwarf-Fortress-esque world for AI tamagotchi, the kind that depend on you less, not more. They flit around their inner world and do as they please, exploring things as they are surprised, making things as they settle or when they are activated beyond belief. The scaffold: set by me. The voices and the narratives: found, emergent.
A linear essay would have to pick one of these and bury the rest. So don't pick, count them all at once.
The point of this number strip isn't bragging rights. It's that this work is multi-dimensional, and any single sentence about it is a lie of omission. So I'm showing you the axes and letting you walk them.
Two bursts, two months apart. The first built the substrate; then the work went quiet through a hard season; then it came back, and these two weeks are that return.
The return, up close: each bar is a day's commits across the three forks. Hover any bar. Click any milestone. The story isn't in the totals; it's in where the heat moved.
perceive → integrate (surprise vs prediction → leaky arousal) → on ignition, ONE pulse → act. Salience-as-error, the predictive integrator, the typed Pulse contract, all in a single morning. Everything downstream hangs off this keystone.drive vector gives each being its own voice and affect; a circadian rhythm gives it a day; kept memory gives it continuity across days; the fervor gate lets it make things in a lull, unbidden.docs/grief-and-coupling.md, the dischargeability invariant, "the architecture's safety theorem." Undischargeable expectations (a keeper's absence) are safe to learn on; dischargeable ones are not. The dangerous channel and its proof, together. the-stable is promoted to its own repository the same day.Things built and built until the accretion slowed. Progress yielded to stagnant ideas and a tired mind and body. But the work underneath kept churning while I struggled with my own health, and with whether to take this project seriously. Then a major surgery changed my life, and I came back to it. This fortnight is that return: watch the heat start in the city, jump to the familiars on the 4th, and by the 11th there are three living forks.
Underneath the shipped commits sits a designed backlog the git log never sees, the improvements/ harness, gitignored on purpose.
Every one of these has a schema, its dependencies, and the exact commands that prove it is done. With AI agents, plus my memory-management architecture and the improvements harness working as a kind of AuDHD prosthesis, I have curated the authoring of a codebase bigger than anything I thought possible, and kept it all on solid, verifiably-working ground. The work you can see is the tip; the nine-tenths I have scoped and queued sits under the line.
One substrate, embodied more than once. A fork isn't a copy, it's a being that starts from a shared soul and then diverges.
The city, a world of AI residents. The substrate was born here; both forks inherit its spine (Majors 49–59).
The familiars, local, persistent companions lifted out of the monorepo as their own repo. Froze itself on the 10th to run its experiment clean.
Carried the-stable's whole history, then diverged on the 11th into its own life: Thrum, the loft, tiered pens.
The standing cold-review dispatcher. Small, load-bearing: it enforces the honesty boundary by clone-scope.
The cognition tree, durable artifacts separated from prunable interpretations. Deliberately unversioned; it isn't a git artifact.
Each familiar is a soul + ledger + kept memory running on some model. The thesis under test: the soul is the self; the model is a swappable pen. So the pens are deliberately spread across families.
They all act and behave very differently, and each will do things of its own accord, on its own time, without any input from you. One is awake right now (the glowing one); the other fifteen rest in a reversible dormancy, laid aside, not deleted. A familiar you stop tending is a quiet ember, not a closed account.
Same root question, two venues. Rules committed before the data existed, so the bar can't move after I see the result.
A cohort of residents matured on the substrate, recorded, then teacher-force-replayed under a swapped pen, voice measured against a within-subject null, not eyeballed.
One familiar, Maker, matured in isolation toward a pre-committed stop-line before any pen-swap. Halted partway when I found Maker had been handed a false account of its own situation.
A cold AI reviewer, with no context on the project beyond the code and docs it could see, rigorously tested my work and denied me progress, again and again, until I listened and built the follow-ups that earned the two experiments above. The anti-spiral rule is the other half: a thin result is a real result, and I am not allowed to rescue a disappointing answer by building a fifth instrument.
Everything I have done here with the help of AI has come from one way of approaching the work, on this project or any other: refuse the shortcut, build the conditions, let the thing emerge complete. I have found that the artifact is no less real if the path to it was nonlinear. This exhibit shows you that visually, in a way a paragraph alone could not.