Time-linked
one cursor drives every pane
Deterministic worlds · real agents · one causal timeline
Declare a deterministic world around a real Spawnfile organization of AI agents, run it, then replay one causal timeline to see what happened, and why.
$ npm install simfile
01 / World
A single Simfile declares the clock, variables, generators, rules, markers, and falsifiable probes around your agents. The mechanics are deterministic for a seed; the agents still decide what to say, remember, and do. The world can wake an agent or post into a room; it never scripts a thought.
simfile_version: "0.1"
name: autonomous-office-world
spawnfile: ./Spawnfile # the org of real agents this world wraps
clock: # simulated time, deterministic for the seed
seed: office-run-014
tick: 20s
variables: # world state you can drive and measure
filing_pressure:
scope: room:office-floor:case-warroom
initial: 0.4
range: 0..1
generators: # how variables evolve each tick
deadline_ramp:
kind: deterministic
variable: filing_pressure
delta: 0.02
rules: # when the world acts on the agents
deadline_bites:
when:
variable: filing_pressure
above: 0.85
do:
- action: wake:recommend # nudge a room, never a scripted line
to: room:office-floor:case-warroom
markers: # tokens to trace as they spread
tenant_name:
text:
- Rosa Delgado
mode: containment
scopes:
- room:office-floor:case-warroom
probes: # falsifiable checks over the run
deadline_observed:
when:
event: wake.recommended
target: room:office-floor:case-warroom
expect:
at_least: 1$ npm install simfile
$ simfile validate ./Simfile
$ simfile run ./Simfile --out runs/latest
$ simfile observe runs/latest # causal chains + spread → report.json
$ simfile view runs/latest # scrub, descend, watch spread02 / Viewer
Drag one cursor. The world map, the room conversation, every agent's memory, and the causal traces all return to the same moment. Every glyph points to a record. Ask anything which records make it true. The header always discloses whether the dialogue came from a real engine or a scripted fixture.
one cursor drives every pane
every pixel backed by a ledger record
a view serializes to a URL
Descend into an agent
An agent can itself be an organization. In the Jungian run, a Shadow and an Anima deliberate in a private room while the representative synthesizes the one answer the outer world hears, and the same viewer follows both levels.

$ npm install simfile
$ simfile validate ./Simfile
$ simfile run ./Simfile --out runs/latest
$ simfile observe runs/latest # causal chains + spread → report.json
$ simfile view runs/latest # scrub, descend, watch spread