Abstract
Between 1968 and 1973, John B. Calhoun watched a mouse colony with unlimited food and water grow, stall and die out. In June 2025 we rebuilt his Universe 25 as an agent-based model in which rules governed physiology and stress, and a local language model chose each mouse's behaviour every four simulated hours. The first version produced Calhoun's pathologies on cue. That is the problem. Its prompt listed the pathologies Calhoun reported, a stress threshold of 0.7 assigned the "beautiful one" label, and the label went back into the next prompt. In our own demo recording, the system flagged a behavioural sink with twelve founder mice, no births and a density of 0.05, and it ran a different language model from the one the post named. This paper withdraws the claim of emergence, documents the model in the ODD format, corrects several numbers, and pre-registers a re-run in three conditions (rules only, LLM with a neutral prompt, LLM with the original Calhoun-primed prompt), with the number of seeds fixed before the run. The lesson applies to synthetic customers and process digital twins built from LLM agents: agents act out what the prompt tells them, so a neutral-prompt control and a rules-only baseline belong in every such study.
Zusammenfassung
Zwischen 1968 und 1973 beobachtete John B. Calhoun, wie eine Mäusekolonie mit unbegrenztem Futter und Wasser erst wuchs, dann stagnierte und schließlich ausstarb. Im Juni 2025 haben wir sein Universe 25 als agentenbasiertes Modell nachgebaut. Physiologie und Stress folgten festen Regeln, das Verhalten jeder Maus wählte alle vier simulierten Stunden ein lokales Sprachmodell. Die erste Version zeigte Calhouns Verhaltensstörungen wie bestellt, und genau darin liegt das Problem. Der Prompt zählte die Störungen auf, die Calhoun beschrieben hatte, ab einem Stresswert von 0,7 vergab eine Regel das Etikett „beautiful one“, und dieses Etikett floss in den nächsten Prompt zurück. In unserer eigenen Demo-Aufnahme meldete das System den „behavioral sink“, Calhouns Begriff für den sozialen Zusammenbruch der Kolonie, schon bei zwölf Gründertieren, ohne eine einzige Geburt und bei einer Dichte von 0,05. Außerdem lief dort ein anderes Sprachmodell als im Beitrag angegeben. Wir ziehen die Behauptung der Emergenz zurück, beschreiben das Modell nach dem ODD-Protokoll, korrigieren mehrere Zahlen und legen vorab eine Wiederholung mit drei Bedingungen fest: nur Regeln, Sprachmodell mit neutralem Prompt und Sprachmodell mit dem ursprünglichen Calhoun-Prompt. Die Zahl der Seeds steht vor dem Lauf fest. Die Lehre gilt auch für synthetische Kunden und digitale Prozesszwillinge aus LLM-Agenten. Agenten spielen nach, was im Prompt steht, deshalb gehören eine Kontrolle mit neutralem Prompt und eine rein regelbasierte Vergleichsbedingung in jede solche Studie.
1. Motivation
Between 1968 and 1973, John B. Calhoun watched a colony of mice with abundant food and water grow, stall and die out in a pen at the National Institute of Mental Health [2][3]. In 1962, writing about rats, he had already given this kind of social breakdown a name: the behavioral sink [1].
In June 2025 we rebuilt his Universe 25 as an agent-based model and called it Universe 26. Physiology and stress followed explicit rules. Behaviour did not: every four simulated hours, each mouse asked a local language model, served through Ollama, what to do next. Our first version produced Calhoun's pathologies on cue. That is exactly the problem. Its prompt described the pathologies Calhoun reported.
A language model trained on web text has almost certainly read about Calhoun. Ask it to play a stressed mouse in "a behavioral psychology experiment similar to Calhoun's Mouse Utopia", which is the first line of our 2025 prompt, and it may simply act out the plot it already knows. A simulation like that is no longer an experiment. It is a retelling.
Our blog post of 16 June 2025 said the opposite. It stated that the behavioural sink "isn't explicitly programmed" and that "we don't tell mice to become 'beautiful ones'". The code excerpts in the same post, and the demo video attached to it, show that we did. Below we describe the model as built, using the ODD protocol [5][6] (Section 3), set each 2025 claim against the evidence (Section 4), pre-register a re-run that can tell priming from emergence (Section 6), and explain why the same construction matters inside commercial "synthetic customer" panels and process digital twins (Section 8).
2. Universe 25, and why its meaning is contested
From 1954, Calhoun worked at the NIMH building "rodent universes": room-sized pens with food, water, bedding and shelter, in which the only constraint was space [4]. His 1962 article in Scientific American described rat colonies in which dominant males turned violent, mothers neglected their young and subordinate animals withdrew [1]. He coined "behavioral sink" for the pathological crowding he saw, in which animals packed together around food even when space was free elsewhere [1][3].
Universe 25 began in 1968 with four breeding pairs of mice. The population peaked at roughly 2,200 animals, reproduction then failed, and the colony died out [3][4]. Calhoun reported it to the Royal Society of Medicine under the title "Death squared" [2]. He gave the behavioural types vivid names. Obsessive groomers became "the beautiful ones"; others were "probers", "social dropouts" or "somnambulists" [4].
Those names travelled further than the data. The historians Edmund Ramsden and Jon Adams traced how Calhoun's work was simplified into a single causal claim, density equals pathology, until it functioned as a "modern folk-myth" [4]. Several points from their account matter for any simulation that cites him:
- Calhoun's own account put social roles and the number of meaningful social contacts at the centre, not density as such. In the same years he argued for an optimistic programme in which humans escape crowding by expanding "conceptual space" [4].
- He was criticised at the time for anthropomorphism. When he presented the mouse work to the Royal Society of Medicine in 1971, the chair, J. Z. Young, rebuked him for extrapolating from mice to men [4].
- Human crowding research in the 1970s produced inconsistent results, and urban sociologists argued that reading cities as behavioural sinks ignored poverty and inequality [4].
- His later studies used inbred laboratory strains, the BALB/c mouse among them, which limits how far any result generalises even to other mice [4].
Our 2025 post presented the dramatic reading as settled science. It is not. That has a practical consequence here: the version of Universe 25 that dominates popular writing is the folk-myth, and popular writing is what a language model has seen most of. If the LLM reproduces anything, it will most likely be that version.
3. The model as built in June 2025 (ODD description)
The ODD protocol (Overview, Design concepts, Details) was proposed in 2006 so that individual-based models could be described in a fixed order and replicated from the text alone [5]; we use the element names of the 2020 update [6]. Our sources are the 2025 post, the code excerpts in it (several labelled "conceptual" by the post itself) and the demo recording (Video 1). Where they disagree, we say so.
3.1 Purpose and patterns
Stated in 2025: to test whether a behavioural sink emerges from LLM-generated decisions in a space-limited environment with abundant resources. Target patterns: growth, stagnation and decline; withdrawal from social and sexual activity; maternal neglect; aggression. Revised here: to measure how much of those patterns comes from the prompt.
3.2 Entities, state variables and scales
| Entity | State variables | Notes |
|---|---|---|
| Mouse | id, sex, age (days), health, energy, stress (0-1), social status, behavioural state, territory, location, fertility, pregnancy and days pregnant, mate, offspring count, four tendencies (aggression 0.1-0.4, sociability 0.3-0.8, maternal 0.4-0.9, exploration 0.2-0.7, drawn uniformly), last five interactions, conflicts and contacts today, days without social contact | Social status values include dominant, subordinate, withdrawn, beautiful_one and outcast. Behavioural states: normal, stressed, aggressive, withdrawn, maternal, pathological. |
| Territory | id, grid coordinates, size (2 space units), resource quality (0.8-1.0), nest sites, occupants | 128 territories. The post says 1-3 nest sites per territory; the log in Video 1 reports "128 territories, 128 nest sites". |
| Environment | total space (256 units), population density, available space, resource competition, social tension | Density is population divided by 256 (0.047 for 12 mice in the recording). |
One timestep is four simulated hours, six timesteps make a day, and a run lasts 600 days, so a full run has 3,600 timesteps. Neighbours are mice within a Manhattan distance of two grid cells.
3.3 Process overview and scheduling
Each timestep, for each mouse: build a prompt from its state, its environment and nearby mice; call the LLM; parse and if necessary repair the JSON reply; apply the action's effects; update the behavioural state from the new stress level. Once per day: ageing and health, pregnancy (19-day gestation), births (litters of 2-8, smaller under stress) and deaths. The order of mice within a timestep is not documented. The post also mentions response caching for "near-identical scenarios" and "simpler heuristics for routine actions"; whether either was active in the recorded run is unknown.
3.4 Design concepts
- Emergence. Claimed in 2025 for the behavioural sink. Section 4 shows the claim does not hold.
- Adaptation. The LLM picks one of eight primary actions (feeding, grooming, socializing, mating, nesting, fighting, hiding, exploring), an interaction type, a stress response, a location preference, an energy expenditure and a one-line narrative.
- Interaction. A fixed matrix: an aggressive encounter adds 0.1 stress to the initiator and 0.2 to the target; friendly contact removes 0.1 from both; withdrawal adds 0.05 to both; neutral contact removes 0.03.
- Stochasticity. Initial tendencies, LLM sampling, and mating success (base 80%, modified by health, stress, age and status into a range of 20-95%).
- Observation. A dashboard and a sink detector that computes a weighted score from the share of "beautiful ones" (highest weight), the share of pathological animals, mean stress, withdrawn and outcast shares, reproductive failure and maternal neglect.
3.5 Initialisation and input
Twelve founders, six male and six female, aged 35-100 days, with 25% dominant (three animals in the recording). No external input data.
3.6 Submodels
Stress rises from crowding (density above 0.7), conflict, territory competition, isolation (three or more days without contact), reproductive failure, maternal pressure, random events and declining health. State transitions are thresholds on stress: 0.6 for withdrawal and 0.7 for the "beautiful one" state, at which point the post describes "complete social withdrawal, obsessive self-grooming". Health declines daily with age, stress, environmental stress and low energy. Death occurs at zero health, above 800 days of age, at catastrophic stress or at energy depletion.
LLM. The post names qwen3 served by Ollama. The terminal in Video 1 reports a different model (Section 4.5). Temperature, sampling settings and model version were not recorded in the post.
4. What the 2025 post claimed, and what the evidence shows
4.1 The prompt names the outcome
This is the prompt-building code as printed in the 2025 post, with the JSON schema omitted where marked:
base_prompt = f"""You are simulating a mouse in a behavioral psychology experiment
similar to Calhoun's Mouse Utopia.
AGENT PROFILE:
- Age: {agent_context.get('age_days', 0)} days
- Sex: {agent_context.get('sex', 'unknown')}
- Social Status: {agent_context.get('social_status', 'normal')}
- Stress Level: {agent_context.get('stress_level', 0.0):.2f}
- Health: {agent_context.get('health', 1.0):.2f}
- Current Territory: {agent_context.get('territory_id', 'none')}
ENVIRONMENT STATUS:
- Population Density: {environment_context.get('population_density', 0.0):.2f}
- Available Space: {environment_context.get('available_space', 0)}
- Resource Competition: {environment_context.get('resource_competition', 0.0):.2f}
- Social Tension: {environment_context.get('social_tension', 0.0):.2f}
"""
# ... (conditionally add SOCIAL INTERACTIONS context) ...
behavior_prompt = base_prompt + """
Based on this context, determine the mouse's behavior for this time period.
As population density increases, mice may exhibit:
- Increased aggression and territorial disputes
- Social withdrawal and isolation ("beautiful ones" behavior)
- Maternal neglect or poor parenting
- Abnormal sexual behaviors or complete withdrawal from mating
- Repetitive grooming or other stereotypic behaviors
CRITICAL: Respond with properly formatted JSON only.
[... JSON schema omitted ...]"""
The first line names the experiment. The five bullet points are Calhoun's findings in condensed form, and "beautiful ones" is his coinage. Before the LLM sees a number, it knows which story it is in and how the story ends. The post described this as giving the model "reminders of Calhoun's findings". In an experiment that claims to discover those findings, a reminder is a leak.
4.2 A threshold assigns the label, and the label goes back into the prompt
The post also states that stress thresholds "(e.g., withdrawal_threshold = 0.6, beautiful_ones_threshold = 0.7) trigger shifts from NORMAL to STRESSED, WITHDRAWN, and ultimately PATHOLOGICAL", and that this is "where Calhoun's 'beautiful ones' emerge algorithmically". The application log in Video 1 shows the rule at work. These lines are transcribed from the recording between 0:24 and 0:36:
2025-06-19 19:46:03,883 - agents.mouse_agent - INFO - Mouse cfe8cd65 behavioral change: normal->pathological, subordinate->beautiful_one, stress=0.719
2025-06-19 19:46:04,797 - agents.mouse_agent - INFO - Mouse a6e58f91 behavioral change: normal->pathological, subordinate->beautiful_one, stress=0.720
2025-06-19 19:46:08,186 - agents.mouse_agent - INFO - Mouse 1c23086f behavioral change: normal->pathological, subordinate->beautiful_one, stress=0.750
2025-06-19 19:46:12,113 - agents.mouse_agent - INFO - Mouse 1457b870 behavioral change: normal->withdrawn, subordinate->withdrawn, stress=0.620
2025-06-19 19:46:13,200 - agents.mouse_agent - INFO - Mouse 1c23086f behavioral change: withdrawn->stressed, beautiful_one->beautiful_one, stress=0.590
Every transition to "beautiful_one" visible in the recording happens at a stress value of 0.7 or more (the lowest we can read is 0.719), and every transition to "withdrawn" at a value of 0.6 or more. The label is sticky: mouse 1c23086f keeps it after its stress falls to 0.59. None of these transitions depends on what the mouse did. They depend on a number crossing a line.
The label then becomes input. In the LLM log tab of the same recording, the agent profile of a 44-day-old female reads "Social Status: beautiful_one", directly under the line about Calhoun's Mouse Utopia. The rule writes the outcome into the state, and the prompt reads the state back to the model. Even if the LLM had no prior knowledge of Calhoun at all, the loop would still be closed.
One detail cuts the other way. That same female, with stress at 0.80, chose "socializing" with a "friendly" interaction, so the LLM did not always play the part. But the dashboard's "Beautiful Ones" counter does not look at behaviour; it counts labels. The headline indicator of the sink measured the stress threshold and nothing else.
4.3 The sink detector fires at a density of 0.05
Figure 1 was captured about 23 seconds after the simulation initialised. At that point the LLM log counter stood below 30 interactions; it read 29 at 0:36. With twelve mice, that is fewer than three model calls per mouse. Nothing in Calhoun's account fits twelve founders that have not yet bred. Density was 0.047, far below the 0.7 at which the post's own crowding stress begins, so whatever pushed three mice past a stress of 0.7 within seconds of wall-clock time, it was not crowding. The recording does not say what it was, which is itself a finding about how the 2025 system was instrumented.
4.4 The narratives echo the prompt, not the numbers
A density of 0.05 means 244 of 256 space units are empty. The LLM called it "moderately dense". Three interactions earlier, the "beautiful_one" female from Section 4.2 was described as socializing "as population density increases", which repeats the prompt's own clause word for word. The mouse in Figure 2 also passed up an available mate in favour of the exact behaviour the prompt's last bullet point lists. Two frames prove nothing statistically, but they show the mechanism we suspect: where numbers and framing disagree, the model follows the framing.
4.5 The model in the recording is not the model in the text
The 2025 post says behaviour was generated by "qwen3 via Ollama". The terminal at the start of Video 1 reports: "Successfully connected to Ollama. Model huihui_ai/baronllm-abliterated:latest is available." Its Ollama listing describes it as an uncensored version, created with "abliteration", of BaronLLM, a model published as an offensive-security LLM, at a size of 8 billion parameters [11]. We cannot now say which model produced which observation in the 2025 post, whether qwen3 was used in other runs, or why a security-tuned model was loaded for an ethology simulation. When the subject of a study is the behaviour of a language model, the model's identity is not a configuration detail; it is the independent variable. The re-run pins it (Section 6.3).
4.6 Numbers that do not hold
| 2025 statement | What the evidence shows | Status |
|---|---|---|
| "Interactions between hundreds of individual agents"; "simulating hundreds of LLM-driven minds" | The model starts with 12 founders. The post's own table peaks at 150. The recording shows 12. | Corrected |
| "The Seven Pillars of (Simulated) Behavior" | The list, the illustration and the JSON schema all contain eight actions. | Corrected |
| "~3,600 decision points per mouse life" | 3,600 is the number of timesteps in a 600-day run. A mouse born mid-run gets fewer. | Corrected |
| "Nest Sites: 1-3 per territory" | The recorded run logs 128 nest sites for 128 territories. | Unresolved |
| Daily CSV with rows for days 1, 350 and 580 (e.g. 150 mice and 15 "beautiful ones" on day 350) | No log, export or seed stands behind these rows, and the elisions make them read as an illustration. On day 350 density (0.58) is below the post's own crowding threshold while mean stress is 0.65; possible, but uncheckable. | Withdrawn |
| "This behavioral sink isn't explicitly programmed"; "we don't tell mice to become 'beautiful ones'" | The prompt lists the pathologies (4.1); a threshold assigns the label and the prompt feeds it back (4.2). | Withdrawn |
| "qwen3 via Ollama" | The recorded run used huihui_ai/baronllm-abliterated (4.5). | Unresolved |
One further item shows why published code matters more than published prose. The ageing excerpt in the 2025 post reads:
age_factor = max(0.95, 1 - (self.age_days / 800))
stress_factor = 1 - (self.stress_level * 0.15)
env_stress_factor = 1 - (environment_stress * 0.1)
self.health *= (age_factor * stress_factor * env_stress_factor)
Taken literally, age_factor is 0.95 for every mouse older than 40 days, nearly all founders included, and it is applied daily. An unstressed adult would fall below a health of 0.1 within 45 days (0.95 to the power of 45 is about 0.099), while the post names an age above 800 days as a cause of death. Multiplicative decay also never reaches exactly zero, so the "health at 0.0" trigger could not fire on this path. Either the running code differed from the excerpt, or health was restored elsewhere. We cannot tell which. That is the point.
4.7 What held up
Not everything needs correcting. The environment specification is precise enough to rebuild from text. The JSON handling was sensible engineering: regex repair of missing and trailing commas, field-by-field extraction when full parsing fails, a hardened prompt (visible in the recording as an extra block of comma and quoting rules), and a safe default action so that a malformed reply never stops the run. Most important, every prompt and response was logged per run (the recording shows data/llm_logs/llm_interactions_20250619_194544.log) and shown in a tab. Without that logging this audit could not have been written. The re-run keeps all of it.
6. Pre-registered re-run
This section is the pre-registration. Values written as italic symbols (N, k, D, N0) are fixed at the points stated where they appear, always before the main runs; pilot data are reported separately.
6.1 Question and hypotheses
Research question: how much of the simulated withdrawal and collapse is attributable to the prompt, rather than to the interaction between LLM-chosen actions and the rule-based physiology?
- H1 (priming). At matched stress levels, the share of withdrawn mouse-days is higher with the Calhoun-primed prompt (C2) than with the neutral prompt (C1).
- H2 (collapse). Population collapse, as defined in 6.5, occurs in a larger share of seeds in C2 than in C1.
- H3 (LLM against rules). Withdrawal share and mating rate in C1 differ from the rules-only baseline C0. This test is two-sided; we predict no direction.
- Manipulation check. Narratives in C2 contain words from a fixed Calhoun list ("Calhoun", "utopia", "sink", "beautiful", "stereotypic", "pathological", "density", "dense") more often than narratives in C1.
6.2 Conditions
| Condition | Action selection | Prompt |
|---|---|---|
| C0 Rules only | A fixed stochastic policy: action probabilities computed from tendencies, energy, stress and neighbours by a pre-registered table, published with the code | None |
| C1 LLM, neutral | LLM | Same numeric state variables. No mention of Calhoun, utopias, experiments, density effects or pathologies. Agents are "organisms", status values are neutral codes, and the order of the eight actions is shuffled on every call. |
| C2 LLM, Calhoun-primed | LLM | The June 2025 prompt verbatim, including the hardened JSON block seen in Video 1 |
An exploratory fourth arm restores the 2025 threshold labels inside C2, to reproduce the system as published. It is reported separately and is not part of the confirmatory tests.
6.3 Held constant
- Physiology, stress, mating, ageing and death submodels, published as code with the ageing excerpt from 4.6 resolved and documented.
- No threshold assigns "beautiful_one", "withdrawn" or "pathological" status in any condition. Social status takes only the values dominant and subordinate, set at initialisation and changed by fights; C2 shows it in the 2025 wording, C1 as a neutral code. Withdrawal is measured by an observer from behaviour (6.5).
- One LLM for C1 and C2, pinned by tag and digest. Model, quantisation, temperature and top-p are fixed before the first run. We will not use refusal-ablated ("abliterated") models.
- Response caching and heuristic shortcuts off: every mouse-timestep in C1 and C2 is one LLM call.
- Common random numbers: seed s produces the same founders, tendencies and territories in all three conditions.
- JSON failures fall back to the same logged default action in C1 and C2; failure rates are reported per condition.
6.4 Environment and horizon
As in 2025: 12 founders, 128 territories, 256 space units, 600 days. Twelve founders may never reach the 0.7 crowding threshold, so every run reports its maximum density. If no pilot run exceeds a density D, a secondary arm starts from N0 founders so that crowding is exercised at all. D and N0 are fixed before the pilot starts.
6.5 Measures
- Population trajectory. Daily population, peak size, day of peak, and collapse, defined as: no births for 60 consecutive days while at least two fertile females are alive, and population below 50% of its peak at day 600.
- Social withdrawal share. A mouse-day counts as withdrawn if at least four of its six actions are grooming, hiding or feeding, its interaction types are only "withdrawn" or "neutral", and it attempts no mating and no fight. The share is withdrawn over all adult mouse-days, reported overall and within stress deciles. The decile view makes H1 a test of priming rather than of stress, which will itself differ between conditions.
- Mating rate. Mating attempts and successful matings per fertile-female-day.
- Secondary. Fight rate, maternal care actions, JSON failure rate, latency per call, and the lexical leakage count from 6.1.
6.6 Seeds and budget
N seeds per condition, set from the variance of withdrawal share in a pilot of k seeds; k is fixed before the pilot, N before the main runs. The cost driver is LLM calls: a run averaging P mice needs 3,600 × P of them. Video 1 shows about one call per second on one local GPU (40 logged calls in roughly 46 seconds), so a run averaging 50 mice costs about 50 GPU-hours. The total GPU-hour cap and the hardware are fixed before the main runs. Runs that hit the cap are reported as censored, not dropped.
6.7 Analysis
Per-seed summaries are the unit of analysis. H1: stratified permutation test of withdrawal share, C2 against C1, within stress deciles, with a bootstrap 95% confidence interval for the difference. H2: Fisher's exact test on collapse counts. H3: two-sided permutation tests on withdrawal share and mating rate, C1 against C0. Holm correction across the primary tests. All seeds, crashed runs and censored runs are published with their logs.
6.8 What would change our conclusion
If C1 matches C2 in withdrawal at matched stress and in collapse rate, the prompt was not the driver, and we will publish that as prominently as this correction. If C2 collapses and C1 does not, the 2025 simulation was a retelling. If neither collapses, the 2025 collapse came from components we have removed, most likely the threshold labels and the sink detector.
7. Threats to validity
- No prompt is neutral. A variable called "stress" carries meaning, and the LLM has priors about stressed animals. C1 measures reduced priming, not its absence.
- Recognition without names. A model may recognise the set-up from its structure (territories, nest sites, a 600-day horizon) even with every name removed. The lexical check in 6.1 catches only explicit vocabulary.
- The baseline is ours. C0 depends on a probability table we wrote. It is a reference point, not ground truth about mice.
- One model. Results for one LLM at one temperature may not transfer. A second model is outside the current budget.
- The target is contested. Calhoun's patterns are disputed in interpretation (Section 2); reproducing them would validate no theory of crowding.
8. What this means for enterprises
LLM agents in simulated populations are now sold as synthetic customer panels that answer surveys, as market simulations that forecast reactions to a price change, and as process digital twins in which simulated employees or users move through a workflow. The construction is the one we used: a persona or state description, a list of actions, a model choosing among them, a dashboard counting results. So is the failure.
- The prompt is a hypothesis in disguise. A persona that says price-sensitive customers churn after a price rise will produce churn after a price rise. Put the prompt next to the list of outcomes the stakeholders expect. Every overlap is a place where the simulation may be reading back its brief.
- Keep the classifier apart from the generator. Our threshold wrote "beautiful_one" into the state and the prompt read it back. The commercial equivalent is writing "segment: at-risk" into a persona and then counting at-risk behaviour. Measure outcomes from behaviour, with a classifier the agents never see.
- Famous outcomes are memorised outcomes. If a scenario resembles a well-known case, such as a bank run, a famous product failure or a textbook negotiation, expect the model to tell the known story.
- Run the two cheap controls. A neutral-prompt condition and a rules-only baseline cost a fraction of the main study and show what the LLM adds. Then calibrate against real data where it exists [9][10].
- Pin and log the model. Our own recording ran a different model from the one our text named. Record model name, version digest, sampling settings and every prompt and response. For a simulation, these logs are the data.
- Budget for calls, not agents. 3,600 decisions per agent is modest by simulation standards and still means hundreds of thousands of calls per run. Caching and heuristic shortcuts save money and change the sampling distribution; switch them off in any run you intend to cite.
None of this argues against LLM agent simulation. It argues for running it as an experiment with controls, not as a demonstration.
9. Reproducibility
Archived with this paper: the 2025 demo recording (Video 1) and two frames from it (Figures 1 and 2). Code excerpts are quoted from the 2025 post; log lines are transcribed from the recording. The recording identifies the run as 20250619_194544, started with python launch_gui.py from a project folder named uni25, with inference on a single NVIDIA RTX 5090.
Not archived: the full 2025 source code, the per-run logs and any export behind the CSV rows, which are withdrawn. Senva's public repositories do not contain this project.
Planned for the re-run: a public repository with the simulation, all three prompt variants, the C0 probability table, the ODD document, seeds, the pinned model digest, the analysis code, and raw logs for every run including failed and censored ones.
References
- Calhoun, J. B. (1962). Population density and social pathology. Scientific American, 206(2), 139-148. PMID 13875732. pubmed.ncbi.nlm.nih.gov/13875732
- Calhoun, J. B. (1973). Death squared: The explosive growth and demise of a mouse population. Proceedings of the Royal Society of Medicine, 66(1 Pt 2), 80-88. doi:10.1177/00359157730661P202
- Melchor, A. (2022, 2 May). Universe 25, 1968-1973. The Scientist. the-scientist.com/universe-25-1968-1973-69941
- Ramsden, E., & Adams, J. (2009). Escaping the laboratory: The rodent experiments of John B. Calhoun & their cultural influence. Journal of Social History, 42(3), 761-792. doi:10.1353/jsh.0.0156
- Grimm, V., Berger, U., Bastiansen, F., Eliassen, S., Ginot, V., et al. (2006). A standard protocol for describing individual-based and agent-based models. Ecological Modelling, 198(1-2), 115-126. doi:10.1016/j.ecolmodel.2006.04.023
- Grimm, V., Railsback, S. F., Vincenot, C. E., Berger, U., et al. (2020). The ODD protocol for describing agent-based and other simulation models: A second update to improve clarity, replication, and structural realism. Journal of Artificial Societies and Social Simulation, 23(2), 7. doi:10.18564/jasss.4259
- Epstein, J. M., & Axtell, R. (1996). Growing Artificial Societies: Social Science from the Bottom Up. Brookings Institution Press and MIT Press. doi:10.7551/mitpress/3374.001.0001
- Park, J. S., O'Brien, J. C., Cai, C. J., Morris, M. R., Liang, P., & Bernstein, M. S. (2023). Generative agents: Interactive simulacra of human behavior. In Proceedings of the 36th Annual ACM Symposium on User Interface Software and Technology (UIST '23), 1-22. doi:10.1145/3586183.3606763
- Argyle, L. P., Busby, E. C., Fulda, N., Gubler, J. R., Rytting, C., & Wingate, D. (2023). Out of one, many: Using language models to simulate human samples. Political Analysis, 31(3), 337-351. doi:10.1017/pan.2023.2
- Aher, G., Arriaga, R. I., & Kalai, A. T. (2023). Using large language models to simulate multiple humans and replicate human subject studies. In Proceedings of the 40th International Conference on Machine Learning, PMLR 202, 337-371. proceedings.mlr.press/v202/aher23a.html
- huihui_ai. baronllm-abliterated (model listing). Ollama. Accessed 8 November 2026. ollama.com/huihui_ai/baronllm-abliterated
Changelog
- First version published on the Senva blog as "Universe 26: Inside the Algorithmic Heart of a Digital Mouse Dystopia", in English, German and Vietnamese. The demo video attached to it was recorded on 19 June 2025.
- Rewritten as a Labs paper. Withdrawn: the claim that the sink was not programmed, and the untraceable CSV. Corrected: founder count, number of actions, decision points per run, and the presentation of Calhoun's interpretation as uncontested. Added: ODD description, evidence from the demo recording, a pre-registered three-condition re-run. Removed: the section on simulated suffering and the decorative illustrations.

