Overview · Written article
The colony
A UNI is an Elixir brain, a Node body and a Minecraft player, joined by a pipe that is also a Markov blanket.
How to read this page
Three ways to read this page. Precise is the document itself, exactly as it is written in the repository. Plain and Clear were written for this website to help you meet that document — they are about it. They are not it, and they are not evidence.
These 13 pages are the only ones on this site written for this site. Everything else you can read here is a real file from a working repository, republished as it stands. These were written by hand for someone arriving with no context: an entry point, one article for each major part of the estate, and a set of practical guides for installing, running and maintaining things.
They carry one unusual discipline. Every citation in them points at a real file at a named commit, and the build resolves it there. If the file has moved, or a quoted range has run off the end of it, the build fails. It will not publish a reference that no longer lands. The wording of an article can drift out of date; what it points at cannot silently do so.
Start with "Start here". It is short, and it explains the one idea the rest of the estate is arranged around. After that, read whichever part you care about, or go to the quick start if you would rather run something than read about it.
What they are not: authoritative. An article is prose about documents, and the documents are the record. Where the two disagree, the document is right and the article is the thing to fix.
Your browser cannot switch reading levels, so the document itself is shown.
Precise — the source document
This is the article as written. Every citation and quoted block in it is resolved against the real file at the real commit when the site is built.
A UNI is three processes that together behave as one organism. Nothing in the system is called "the agent" — the agent is the arrangement.
The three parts
The brain is an Elixir GenServer. It holds a generative model — the matrices (A, B, C, D, E),
Dirichlet counts, and live beliefs — and each step it does perception, learning and action selection.
It never touches the network and never sees the world.
The body is a Node process running mineflayer, attached to the brain as an Erlang Port. It logs
into a real Minecraft server as a real player.
The world is an actual Minecraft server. Not a simulation of one, and not a gym environment wearing Minecraft's textures.
The pipe is the blanket
The interface between brain and body is a newline-delimited pipe, and it is deliberately narrow. The body's own header states the contract:
// UNI's BODY — the external half of the Markov blanket.
//
// A real mineflayer player. It logs into Minecraft, and each decision step it
// (1) computes a small set of SYMBOLIC senses (σ) and writes them to stdout, then
// (2) reads ONE primitive action (α) from stdin and executes it. Nothing else
// crosses the line: the body never sees the brain's beliefs; the brain never sees
// raw world state — only these senses. Lockstep: one sense line → one action line.Read what that forbids. The brain cannot query the world; it receives a fixed vector of symbolic senses. The body cannot read the brain's beliefs; it receives one primitive action from a closed set. There is no side channel, and the narrowness is the point: it is what makes the agent's ignorance real rather than stipulated.
This is a Markov blanket implemented as a file descriptor. Everything the agent can be said to know is downstream of that line.
One step
The decision surface of a living UNI is nine lines long. Senses arrive as a signal; the pure brain steps; exactly two directives come back — actuate, and emit a record of what happened.
def cmd(%MC{} = brain, %Signal{data: senses, time: t}) do
{action, brain} = MC.step(brain, senses)
directives = [
Directive.actuate(action, %{}),
Directive.emit(mind_signal(brain, action, t))
]
{brain, directives}
endEverything else in that module — and it is a large module — is transport and interpretation around those nine lines.
Birth, death and inheritance
Agents die. When one does, a durable kin parent archives it, and a later life is recombined and mutated from what came before.
What is inherited is morphology, not knowledge — which organs an agent has, not what it learned. The genome describes the shape of the creature; the Dirichlet counts that constitute its experience die with it.
The refusal that tells you the most
The runtime refuses to boot on a BEAM without the JIT.
The reason is not performance. The system makes a claim about running its mathematics on-chip, and on an interpreted BEAM that claim would be false. Rather than run anyway and quietly weaken the claim, it declines to start. Forty-three lines, and it is the estate's culture in miniature: the system would rather stop than say something it cannot support.
Scale, measured
- 7 modules in the runtime
- 46 modules in the brain
- 122 test files under
test/sp/
What is not established
Whether any of this constitutes experience is not a claim this system makes, and the estate's own documents are careful about it. The phenomenology document maps human phenomenological categories onto implemented mechanisms and records where the mapping fails — the failures are the useful part.
The colony demonstrates agents that survive, forage, and inherit morphology under active inference in a world they cannot see directly. That is the claim. It is smaller than it sounds and harder than it looks.
Plain — written for this website, not the source document
This page explains what a single agent in this project actually is. The answer is that it is not one thing. It is a reasoning process holding a model of its world, a separate program that plays the game, and a real player logged into a real game server. Nothing in the system is called the agent; the agent is the arrangement.
The page's main point is the join between the first two parts. They talk through a deliberately narrow channel, and the narrowness is the whole idea. The reasoning part cannot ask the world anything; it receives a fixed list of senses. The playing part cannot read the reasoning part's beliefs; it receives one action. Everything the agent can be said to have picked up comes through that line.
The page also covers what happens when an agent dies. The shape of the creature is passed on; what it learned is not. And it is careful at the end to say that whether any of this is experience is not a claim this system makes.
Plain · written 2026-08-01 by claude-opus-5 · not yet checked by a person · about the document whose sha256 is e64563db00b695bd
Clear — written for this website, not the source document
This article describes the anatomy of one agent, end to end, and it is short because the design is. An agent is three processes that together behave as one organism. There is a reasoning process holding a generative model, doing perception, learning and action selection each step. There is a separate program running a game client library, attached to the first as a port. And there is a real player on an actual game server. The world is a real server, the article stresses, not a simulation of one and not a training environment wearing the game's textures.
The join between the reasoning part and the playing part is the load-bearing idea. It is a deliberately narrow channel, and the article asks you to read what it forbids. The reasoning part cannot query the world; it only receives a fixed vector of symbolic senses. The playing part cannot read beliefs; it only receives one primitive action from a closed set. There is no side channel. The narrowness is what makes the agent's ignorance real rather than merely stipulated.
The decision surface of a live agent is a handful of lines. Senses arrive, the reasoning part steps, and exactly two instructions come back — act, and record what happened. Everything else in that part of the code is transport and interpretation around those lines.
Agents die. When one does it is archived, and a later life is recombined and mutated from what came before. What is passed on is morphology rather than knowledge: which organs an agent has, not what it learned. The counts that constitute its experience end with it.
The article's favourite detail is a refusal. The runtime declines to start on a platform lacking a particular compiler feature, and the reason is not performance. The system makes a claim about how its mathematics runs, and on that platform the claim would be false, so rather than run anyway and quietly weaken the claim it stops. The article calls that the estate's culture in miniature.
It closes by counting the modules and test files, and by stating what is not established. Whether any of this constitutes experience is not a claim the system makes. What it does claim is smaller and harder than it sounds: agents that survive, forage and inherit morphology in a world they cannot see directly.
Clear · written 2026-08-01 by claude-opus-5 · not yet checked by a person · about the document whose sha256 is e64563db00b695bd