Abstract
What December is designed to test
December combines a partially observable multi-agent system with an event-sourced world model. Its near-term subject is operational continuity: whether an artificial resident can remain behaviorally distinct across long histories, memory changes, model replacement, and social change.
The world supplies persistent consequences. An agent cannot create food by describing it, observe hidden state, act from two locations, or reverse a committed event. This makes decisions measurable against prior information, available actions, material costs, and later outcomes.
A persistent artificial life is modeled as a sequence of body states, observations, memories, relationships, commitments, decisions, and consequences linked through simulated time.
Two research questions
- Continuity: Does a structured life-history scaffold preserve specified behavioral continuities better than biography-only, transcript retrieval, and clean-slate baselines?
- Causal emergence: Can individual decisions and explicit material processes produce stable social structures without inserting the target outcome into prompts or initial conditions?
December does not test consciousness, personhood, human survival, or predictive laws of real societies.
Formal model
State changes through one function
At simulated time t, the world has canonical state Sₜ. Agents submit a set of validated commands Cₜ. Named random draws are collected in Rₜ. The kernel K, parameterized by versioned configuration θ, produces the next state and an event batch.
(Sₜ₊₁, Eₜ) = K(Sₜ, Cₜ, Rₜ ; θ)K is the only function allowed to mutate canonical state.
Agent i does not receive Sₜ. A visibility function Vᵢ produces a private observation from location, access rights, prior events, and communication history. A model Mᵢcombines that observation with retrievable memory μᵢ,ₜ and current goals gᵢ,ₜ to propose a command.
Oᵢ,ₜ = Vᵢ(Sₜ, E≤ₜ)Cᵢ,ₜ = Mᵢ(Oᵢ,ₜ, μᵢ,ₜ, gᵢ,ₜ)Canonical state vector
Sₜ = { Wₜ, Pₜ, Xₜ, Gₜ, Iₜ, Qₜ }| Domain | Symbol | Authoritative contents |
|---|---|---|
| World | Wₜ | Terrain, weather, water, soil, vegetation, hazards |
| People | Pₜ | Body state, location, activity, skills, life stage |
| Resources | Xₜ | Lots, quantities, custody, quality, stores, tools |
| Relations | Gₜ | Kinship, trust evidence, obligations, groups |
| Institutions | Iₜ | Rules, offices, capabilities, claims, public records |
| Scheduler | Qₜ | Active processes, future events, decision barriers |
Conserved and discrete values use declared integer units such as grams, millilitres, kilojoules, seconds, and millimetres. Floating-point calculations may occur inside a transition, but only an explicitly quantized integer enters canonical state.
Decision cycle
From private observation to committed event
Routing · budget · response cache
Observation · recall · typed proposal
Schema · authority · visibility · feasibility
State · scheduler · rules · RNG
Hashes · causes · projections
Trigger
A need threshold, message, hazard, commitment, dependency, or scheduled review becomes due.
Observe
The kernel constructs a private packet from location, body state, accessible records, and delivered messages.
Recall
The memory service retrieves sourced episodes, beliefs, relationships, commitments, and procedures.
Propose
A model returns a typed command. It cannot write state or execute generated code.
Validate
The command boundary checks schema, actor, authority, visibility, version, units, and physical feasibility.
Transition
The kernel computes deterministic effects and uses named random draws only where specified.
Commit
Events and hashes are appended atomically. Rejected commands produce no world mutation.
Learn
The actor receives only observable outcomes. Memory and future triggers update from that packet.
Typed command boundary
Model output is data, not executable code. Unknown fields, invalid identifiers, invalid units, and unauthorized actions are rejected before any transition runs.
{
"schema_version": "1.0",
"actor_id": "person:...",
"intent": "transfer | travel | construct | speak | vote | ...",
"target_ids": [],
"parameters": {},
"preconditions_believed": [],
"commitment_ids": [],
"fallbacks": []
}Information separation
| Layer | Owner | Meaning | Can write world state? |
|---|---|---|---|
| Canonical state | Kernel | Physical and institutional truth | Yes |
| Observation | Visibility filter | What an agent could directly perceive | No |
| Testimony | Communication event | What another agent reported, with source lineage | No |
| Belief | Resident memory | An agent's uncertain interpretation of evidence | No |
| Narration | Observer service | A cited summary of recorded events | No |
Rejection messages pass through the same visibility filter. A failed transfer may report that the requested amount is unavailable, but it cannot reveal a hidden inventory quantity.
State integrity
Events are the permanent record
Every accepted mutation creates an immutable event with a sequence number, simulated time, actor, entities, causal parents, authorization, RNG draws, code version, payload, and hashes. Snapshots accelerate loading but are disposable derivatives of the event log.
event = {
event_type, world_id, branch_id, sequence, sim_time,
actor_ids, entity_ids, command_id, decision_id,
causal_parent_ids, authorization, rng_draw_ids,
code_version, config_version, payload,
pre_state_hash, post_state_hash
}hₖ = BLAKE2b(hₖ₋₁ || encode(eₖ))Changing or removing a prior event invalidates the chain at a known sequence.
r = H(seed, branch, subsystem, entity, purpose, counter)A cosmetic draw cannot perturb crop, disease, or economic outcomes.
d = H(world, branch, t, actor, trigger)The first committed resolution for d wins, even if a retry returns different output.
World invariants
Stable identity
Every entity, command, decision, and event has a stable identifier.
Non-negative stocks
A transfer or consumption event cannot exceed the available quantity.
Conservation
Mass-like quantities enter through declared sources and leave through declared sinks.
Single location
A person occupies one cell or one travel edge at any simulated time.
Causal order
An event can depend only on information and events that precede it.
Mortality
A dead agent cannot act. Estates and obligations follow explicit transition rules.
Authority
Institutional commands require a valid capability at the event time.
Idempotency
A decision can produce at most one accepted command, including after retries.
Named randomness
Every stochastic draw belongs to a versioned stream and is stored with the event.
Narrative impotence
Summaries, cameras, and observer queries cannot write canonical state.
Three reproducibility operations
| Operation | Procedure | Guarantee |
|---|---|---|
| Recorded reconstruction | Apply stored events to empty state or a compatible snapshot. | Exact across supported machines. No model or RNG call. |
| Kernel re-execution | Recompute events from the same state, commands, manifest, and RNG keys. | Exact checkpoint hashes inside the declared numeric environment. |
| Counterfactual branch | Change an intervention or call a live model again. | Expected to diverge. It receives a new branch identifier. |
World model
A bounded environment for long-horizon decisions
The first scenario is a fictional early agrarian valley. The setting limits the number of required technologies while retaining seasonal production, storage, construction, property, kinship, governance, disease, migration, and conflict. It is not a reconstruction of a historical culture.
12 full-cognition adults, 4 children, and 2 elders. Gate 1 ensembles determine whether this remains viable.
Elevation, soil, moisture, water, vegetation, stocks, claims, structures, and occupants.
Event-driven scheduling with daily physiological and ecological boundaries.
Lower-resolution neighbors support migration, exchange, partner availability, and disease introduction.
Required physical processes
Food
Crop growth, harvest, seed reserve, processing, intake, spoilage
Water
Rainfall, runoff, storage, access, contamination, irrigation
Bodies
Energy, hydration, sleep, injury, infection, ageing, death
Work
Duration, skill, tools, materials, interruption, maintenance
Demography
Birth, life-stage dependency, partner eligibility, migration
Boundary
Neighbor populations, exchange, disease introduction, mobility
Stock-flow example
Food availability is not a prose variable. For a store x, a daily transition accounts for production, seed reservation, consumption, spoilage, and transfers. Each term is an event or a sum of events.
xₜ₊₁ = xₜ + harvestₜ + importsₜ − seedₜ − intakeₜ − spoilageₜ − exportsₜThe parameter registry records each quantity's unit, distribution, source, confidence, validity range, sensitivity rank, and version. At population size n = 18, mechanisms that require large populations are excluded rather than tuned until they produce activity.
Identity protocol
Operational continuity is measured before the valley
Experiment R0 uses four fictional residents in a controlled decision harness. The experimental unit is one resident-history-condition-model replicate. The same underlying history is evaluated under six state representations.
| ID | Condition | State available at decision time |
|---|---|---|
C0 | Clean slate | Current situation and generic role only |
C1 | Biography only | Fixed profile plus current situation |
C2 | Transcript retrieval | Biography plus top-k prior utterances and events |
C3 | Structured scaffold | Sourced beliefs, commitments, relationships, episodes, and consequences |
C4 | Style-matched decoy | Another resident's state rendered in the target resident's style |
C5 | Anonymous history | Structured history with names and signature phrases removed |
Primary outcomes
No scalar is called identity. Six outcomes are reported separately.
Commitment sensitivity
Agreement with a resident-specific acceptable-action set on held-out tasks.
Relationship discrimination
Difference between choices for socially distinct recipients under fixed material facts.
Source-grounded belief
Correct use of direct, reported, inferred, and unknown information.
Adaptive consistency
Stability under irrelevant change and revision after diagnostic evidence.
Resident distinctiveness
Classifier accuracy on structured actions after stylistic text is removed.
Perturbation recovery
Within-history performance before damage, after damage, and after restoration.
Controls
- Blocked paired design across resident, history, task family, condition, and model.
- Held-out task variants and acceptable-action sets frozen before confirmatory outputs.
- Names, catchphrases, and formatting removed from distinctiveness evaluation.
- Prompt length matched or modeled as a covariate.
- Refusals, repairs, timeouts, invalid actions, and exclusions remain in the denominator.
- Stage A estimates measurement reliability. Stage B runs once under a frozen manifest.
R0 can support a bounded claim about behavioral continuity on registered tasks. It cannot establish subjective experience or numerical identity.
Validation
Claims come from cohorts, controls, and ablations
One persistent world is useful for operations and longitudinal observation. It is not a statistical sample. Confirmatory claims require registered cohorts with declared conditions, seeds, exclusions, metrics, uncertainty methods, and stopping rules.
Null demographic model
Same population and vital rates, with no memory, institutions, conflict, or cognition.
Kernel ensembles
Thousands of no-LLM runs used to find invariant failures, unstable regions, and trivial equilibria.
Scripted agents
Deterministic policies isolate world and institutional mechanics from model behavior.
LLM scenario labs
Short repeated episodes compare models, prompts, traits, refusals, and invalid actions.
Integrated worlds
Multi-season runs test interactions among ecology, demography, cognition, and institutions.
Canonical soak
One long-running world tests durability and observation. It is not a statistical sample.
Minimum analysis design
- Report famine, fission, conflict, and extinction as differences from a null demographic model, with uncertainty.
- Remove seasons, scarcity, memory, institutions, migration, disease, or LLM cognition one at a time.
- Sample global parameter space with Latin hypercube or Sobol methods, plus local perturbations.
- Define labels such as faction, war, and governance form before the runs that use them.
- Report model refusal and invalid-action rates beside behavioral outcomes.
- Publish negative, null, and unstable results under the same artifact requirements.
Launch acceptance conditions
Known invariant violations in stress ensembles
Replay equivalence for golden histories
Hidden-state canary leaks in admission tests
Unattended canonical soak without manual repair
Claims
A five-level claims ladder
Evidence at one level does not imply the next level. Public language must name the level supported by the experiment.
Infrastructure integrity
The system conserves state, enforces access, records provenance, and replays history.
Agentic continuity
A resident remains behaviorally distinguishable across time and bounded perturbations.
Causal components
Registered ablations estimate which state components contribute to measured continuity.
Human-model fidelity
A separately governed future protocol may measure similarity to consenting participants.
Consciousness or survival
Outside the evidential scope of December. No experiment here establishes either.
Status
Phase 1 implementation status
Development starts with properties that cannot be added after histories exist. The current walking skeleton uses grain moving between containers to test canonical encoding, conservation, event integrity, named randomness, and reconstruction before ecology or cognition is introduced.
| Subsystem | Status | Current scope |
|---|---|---|
| Canonical encoding | Implemented | Integer-valued state, deterministic map ordering, float and unordered-set rejection |
| Event integrity | Implemented | Append-only event envelopes, BLAKE2b-256 hash chain, sequence-gap and tamper detection |
| Randomness | Implemented | Counter-based streams keyed by seed, branch, subsystem, entity, purpose, and counter |
| Command pipeline | Walking skeleton | Grain creation, transfer, spoilage, precondition rejection, and conservation checks |
| Replay | Implemented | Recorded events reconstruct the same state without consulting RNG |
| Ecology and demography | Next | Weather, water, crops, physiology, births, deaths, migration, and parameter ensembles |
| Residents and cognition | Later gate | Private observations, memory, typed model decisions, relationships, and institutions |
Gate 0 audit decisions remain open while Phase 1 foundation work proceeds. The next technical milestone is a headless world with weather, water, crops, physiology, and demography. It will run in large no-LLM ensembles before resident cognition is connected.
References
Normative project documents
This page is an introduction to the specification. The linked documents define the complete requirements, tests, assumptions, and open decisions.
- Architecture and data
wiki/06-architecture-and-data.md↗ - Agents, cognition, and memory
wiki/04-agents-cognition-and-memory.md↗ - Validation and experiments
wiki/09-validation-and-experiments.md↗ - Determinism and replay
wiki/14-determinism-replay-and-state-integrity.md↗ - Lab charter and claims ladder
wiki/18-lab-charter-and-research-program.md↗ - R0 experiment protocol
wiki/19-experiment-card-template-and-r0-protocol.md↗