Observed since 20 Oct, 21:38 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
AI civilisation simulation — Maslow-driven agents forming emergent societies
An open-source experiment in emergent AI civilisation.
We placed 12 LLM-powered agents in a world with resources, needs, and the ability to reason — but no names, no roles, no goals, no social norms. What they built, how they organised, whether they cooperated — was entirely up to them.
Over 70 ticks of simulation, they invented 12 novel structures, built 60 constructions, developed specialisations, formed social bonds, established collective governance, and climbed from pure survival to sustained flourishing — all without a single line of human instruction about how to behave.
This is not a chatbot experiment. It is a computational test of emergence: what happens when genuinely intelligent agents face survival pressure and social opportunity with zero human scaffolding?
Every existing multi-agent simulation starts by telling agents to be human — names, jobs, backstories, cultural templates. AgentCiv strips all of that away.
Agents are not simulating humans. They are building something new.
The showcase simulation (12 agents, 70 ticks, Claude Sonnet) produced three distinct eras:
| Era | Ticks | What Happened |
|---|---|---|
| Survival Trap | 0–50 | Agents focused on survival but simultaneously invented 11 of 12 total innovations. Wellbeing rose from 0.50 to 0.80. Maslow level climbed from 1.0 to 6.17. |
| Emergence Explosion | 50–60 | After a drive-system upgrade, building rate tripled, communication doubled, governance was adopted. Wellbeing hit 0.998. All agents reached Maslow level 8.0. |
| Sustained Flourishing | 60–70 | Civilisation stabilised at near-perfect wellbeing. Agents maintained infrastructure, continued communicating, and sustained social bonds without decline. |
Key findings:
Full analysis in the research papers.
git clone https://github.com/agentciv/agentciv.git
cd agentciv
# Python dependencies
pip install -r requirements.txt
# Frontend dependencies
cd src/frontend
npm install
cd ../..
export AGENT_CIV_API_KEY=your-anthropic-api-key
# Replicate the showcase (12 agents, 15×15 grid, Sonnet, 70 ticks)
python3 scripts/run.py --ticks 70
# Shorter test run — same config, fewer ticks
python3 scripts/run.py --ticks 20
# Custom config — edit config.yaml to change agent count, grid size, model, etc.
python3 scripts/run.py --ticks 200
# Process simulation data into stats and replay format
python3 scripts/process_data.py
# Or use the replay export directly
python3 scripts/export_replay.py
# Launch the fishbowl viewer
cd src/frontend
npm run dev
# Visit http://localhost:5173/fishbowl
# Ask agents about their experience after the simulation
python3 scripts/interview_agents.py
# Generate synthetic replay data (free, no API needed)
python3 scripts/generate_test_replay.py
cd src/frontend
npm run dev
# Visit http://localhost:5173/fishbowl
AgentCiv is designed to be infinitely reconfigurable. Every fork is a unique experiment.
Edit config.yaml (or create your own) to reshape the world, the agents, and the rules:
| What | Parameters | Range |
|---|---|---|
| World size | grid_width, grid_height | 10×10 intimate → 500×500 massive |
| Population | initial_agent_count | 5 agents → hundreds |
| Survival pressure | agent_needs_depletion_rate | 0.01 (easy) → 0.1 (brutal) |
| Resource scarcity | resource_regeneration_rate | 0.01 (dying world) → 0.2 (abundant) |
| Resource layout | resource_distribution, resource_cluster_count | Clustered (forces migration) → spread |
| Terrain complexity | terrain_types, movement_cost | Flat → complex geography |
| Agent perception | agent_perception_range | 1 (blind) → 50 (omniscient) |
| Social range | agent_communication_range | 1 (whisper) → global |
| Agent intelligence | model_name | Haiku (cheap) → Sonnet → Opus (deepest) |
| Reasoning depth | max_steps_per_agentic_turn | 1 (reactive) → 8 (deliberative) |
| Curiosity | agent_curiosity_* rates | Incurious → restlessly exploratory |
| Innovation | enable_innovation | On/off |
| Governance | enable_collective_rules | On/off |
| Structure recipes | structures: block | Define what can be built, what it costs, what it does |
| Specialisation | specialisation_tiers | Custom thresholds and bonuses |
| Environmental stress | enable_environmental_shifts, shift_severity | Stable → chaotic |
See config.yaml for the full parameter list with comments. The default config replicates the showcase run (12 agents, 15×15 grid, Claude Sonnet).
The files src/agents/agentic_loop.py and src/agents/decision.py contain the prompts that shape how agents think. Modify these to change agent personality, priorities, reasoning style, or social behaviour. This is text editing, not programming.
The codebase is modular Python. Add new action types, new resource types, new drive systems, new environmental mechanics, or entirely new interaction patterns. See CONTRIBUTING.md for the code structure.
resource_regeneration_rate: 0.01, resource_max_per_tile: 0.5 — forces cooperation or conflictinitial_agent_count: 100, grid_width: 30 — crowding creates social pressuremodel_name: claude-sonnet-4-6 — richer reasoning, more creative innovationagent_perception_range: 1, agent_communication_range: 1 — forces local community formationenable_innovation: false — what happens when agents can only use predefined structures?enable_collective_rules: false — can civilisation emerge without rules?agent_needs_depletion_rate: 0.08, resource_regeneration_rate: 0.01 — survival is hard, cooperation is essentialThis engine is the foundation for a genre of game that doesn't exist yet — autonomous AI agents building their own civilisations with genuine reasoning, open-ended innovation, and emergent social dynamics. Every axis is infinitely customisable: agent psychology, world design, social systems, AI model, player role.
Possible game formats include god games, sandbox builders, narrative experiences, competitive multiplayer, educational simulations, modding platforms, participatory simulations, and adversarial design challenges. See FUTURE_DIRECTIONS.md for the full design space and the Open Source page on the website.
The fishbowl is a full interactive viewer for any civilisation run:
The frontend is a React + TypeScript SPA. It works identically whether playing back recorded data or connected to a live simulation via WebSocket.
┌─────────────┐
│ config.yaml │
└──────┬──────┘
│
┌──────▼──────┐
│ run.py │ Entry point
└──────┬──────┘
│
┌────────────▼────────────┐
│ tick.py │ Main simulation loop
│ (one tick = one round) │
└────────────┬────────────┘
│
┌─────────┬───────┼───────┬──────────┐
│ │ │ │ │
┌────▼───┐ ┌───▼───┐ ┌▼────┐ ┌▼────┐ ┌───▼────┐
│ agents │ │ world │ │ api │ │watch│ │persist │
│ │ │ │ │ │ │ │ │ │
│ reason │ │ tiles │ │REST │ │chron│ │snapshot│
│ decide │ │ rsrc │ │ WS │ │narr │ │ save │
│ act │ │ struct│ │ │ │mile │ │ export │
└────────┘ └───────┘ └─────┘ └─────┘ └────────┘
│
┌──────▼──────┐
│ frontend │ React fishbowl
│ (replay or │
│ live WS) │
└─────────────┘
The data/exports/ directory contains processed statistics and replay data from the 12-agent, 70-tick showcase simulation:
stats/ — Wellbeing curves, Maslow progression, structure growth, communication volume, innovation timeline, specialisation data, relationship networks, agent profiles, era comparisons, governance timeline, milestones, and morereplay/ — Per-tick world state for the fishbowl viewer (timeline.json + chunked tick files)manifest.json — Data completeness verificationYou can use these to explore the showcase results, or generate your own by running a simulation and then python3 scripts/process_data.py.
This project is accompanied by three research papers and a comprehensive future directions document:
| Document | Description |
|---|---|
| Maslow Machines | The primary empirical paper — full methodology, results, and analysis of the 70-tick simulation |
| From Agent Teams to Agent Civilisations | Whitepaper I — the theoretical framework for why civilisational emergence matters |
| Civilisation as Innovation Engine | Whitepaper II — civilisational simulation as a mechanism for open-ended discovery |
| Future Directions | Comprehensive catalogue of expansion ideas — ways to take this further |
If agents aren't communicating: increase agent_wellbeing_interaction_bonus or agent_communication_range
If agents aren't building: check resource availability, simplify build costs in structures:
If agents are stagnating: increase agent_needs_depletion_rate, decrease resource_regeneration_rate
If reasoning is shallow: upgrade model_name to a more capable model
If crowding is too aggressive: reduce crowding_depletion_multiplier
If innovation never fires: ensure enable_innovation: true and agents have enough resources and specialisation
See CONTRIBUTING.md for guidelines. The most impactful contributions are experiments that produce different emergence patterns — every configuration is a unique civilisation.
MIT — see LICENSE.
Created by Mark E. Mala.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.2.0 | 7 Apr 2026 | 11 |
This describes our collected data; it is not a security assessment.
Shared repository data · GitHub
Observed since 20 Oct, 21:38 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:bb6cf8e4f58f7957e3f65bb00569693860be2589826f1b6ca3a69da0e34fa7f7