Product
Terrarium1
How free-text attempts become validated state transitions without one handwritten handler per action.
the demosyne teamupdated 5 min read

A simulator can expose each action as its own tool and put the action’s meaning in its handler. A move tool knows about destinations, a purchase tool knows about balances and inventory, and a vote tool knows about ballots. That works while the action set is closed. When an agent tries something outside it, the engine needs another schema, another handler, and another set of state transitions. The simulation’s behavioral frontier is the list its authors anticipated.
Terrarium still uses tools. The difference is what they represent. An agent’s general action tool carries private thought and a free-text attempt; separate tools handle conversation and private cognition. The action tool does not claim that the attempt succeeded, and it does not edit the world. This keeps the tool boundary around authorship and authority instead of using it as an inventory of every verb an agent may try.
Each agent is stateful. Its running model conversation is its memory, and it can also keep a standing goal and a private scratchpad. At each interval it receives only what that person may know: its own visible and private facts, the visible state of its location and the people there, reachable destinations, and any broadcasts or cues it can perceive. The agent then stages one attempt. Its private reasoning never becomes world state and never enters physics.
Physics has the opposite shape. Each occupied location gets a fresh judge conversation for the interval, with no resolution history of its own. The judge receives the complete local snapshot, including physics-only facts hidden from agents, every person present, every staged attempt—including explicit silence—and the events and travel constraints that apply there. It decides the consequences against that snapshot. Two people can take different approaches to the same obstacle and get different results, just as the two pond crossings above do.
In the default path, the judge returns one typed resolution. It can patch visible, private, or invisible facts; move present people; schedule later consequences; write each person’s memory of the hour; and, when the world declares the relevant capability, air a broadcast or establish a place. These are generic commit channels, not action-specific handlers. Starting a venture may become an arrangement and a set of records. Conjuring money still has no valid source. Opening a new location is unavailable unless the run and its persistence layer explicitly enable that surface.
A resolution is still only a proposal. Deterministic validation checks its authority and shape: exact entity and destination identifiers, valid fact numbers, one destination per person, declared broadcast channels, and events that can actually fire. On the default single-resolution path, it also allows at most one patch per entity and channel. A model reviewer is enabled by default for a second, semantic reading. It applies the patches to copies, compares the before- and after-state, and looks for fabricated choices, duplicated matter, missing commitments, and time that ran past the interval. Either kind of objection goes back to the original judge in the same correction conversation.
Nothing becomes durable during that exchange. Physics resolves locations independently, then waits for every active location. Only after all of them return an accepted resolution does the engine apply state patches, deliver memories, schedule events, and move people. The world advances its clock after the whole tick succeeds. If a decision, conversation, resolution, or boundary task raises, the checkpoint restores agent memory, world facts, occupancy, and time together; products accumulated for that tick are not committed.
This design lets a scenario admit free-text attempts without adding an action handler for each one. Much of a new world can be expressed as people, locations, facts, interfaces, routes, events, and prompt configuration. The limit is equally important: the fiction cannot exceed that inventory. Physics may settle an ordinary missing detail, but it cannot invent an unlisted person’s decision, a service with no stated affordance, an undeclared channel, or matter with no source. Some new capabilities still require code and persistence support; founding places, for example, is off by default.
The checks do not prove that every accepted outcome is correct. Structural validation covers only invariants the kernel can decide mechanically. The reviewer is another model: it can miss a semantic error, raise a mistaken objection, or fail to return a readable verdict. Review roughly doubles the model cost of a busy location, can be disabled for smoke runs, and a reviewer transport failure is treated as no objection. Conversely, a physics judge that cannot produce an accepted resolution within its bounded attempts fails and rolls back the tick instead of quietly advancing an empty world. An unreachable agent is treated differently: that person stages nothing for the interval, because the engine may not invent their choice.
Terrarium therefore makes a specific trade. It replaces action-specific simulation code with model judgment over a small, explicit state transition language, then surrounds that judgment with validation, review, bounded correction, and atomic commit. The result is a wider action surface, not universal consistency, prediction accuracy, or a guarantee that every novel attempt will work. What the engine can promise is narrower: an unfamiliar attempt reaches the same recorded mechanism as a familiar one, and a resolution that cannot pass the available checks does not become world history.
Related content
- ResearchDo language models converge on one voice?A seven-day run shows high topic similarity, modest residual-style alignment, and no collapse into one common voice.
- ResearchSF Hero 3: Experimental Design and MeasurementsDefinitions, equations, source-backed tables, and validity limits for the first completed ElectionBench field run.
- BenchmarkElectionBenchSeven models ran one simulated election. The result shows distinct campaign behavior, but one seat assignment cannot rank the models.
- ProductWorldswatch a live world run tick by tick