A hierarchical world simulation system running on SpacetimeDB that models individuals, buildings, and cities through interconnected need systems with AI-powered narrative generation.
GitHub: https://github.com/Rhovasti/eno-world-simulation
This repository contains a sophisticated world simulation engine that supports multiple game worlds, narrative generation, economic systems, and political dynamics.
- Docker and Docker Compose
- SpacetimeDB CLI 1.1.2+ installed
-
Start the simulation:
docker-compose up
-
Initialize the simulation:
spacetime call worldsim init_simulation
-
Import test data:
# Single test city (1000 population) spacetime call worldsim import_test_city # Small dataset (3 cities, 2000 each) spacetime call worldsim import_small_dataset # Medium dataset (5 cities, 5000 each) spacetime call worldsim import_medium_dataset
-
Start time progression:
spacetime call worldsim tick_time
Setup:
init_simulation- Initialize the simulationimport_test_city- Create a test city with 1000 peopleimport_small_dataset- Create 3 test cities
Simulation Control:
tick_time- Advance time by 1 hourupdate_individuals- Process individual needsupdate_buildings_daily- Process building maintenance (every 24 hours)update_cities_weekly- Process city metrics (every 168 hours)
Queries:
get_simulation_status- Current time and overall statsget_city_status city_id:1- Detailed city informationget_individual_needs individual_id:1- Person's current needsget_building_status building_id:1- Building details
The simulation operates on three interconnected levels:
- Individual Level - People with physiological/psychological needs and AI goals
- Building Level - Structures that serve human occupants
- City Level - Urban systems emerging from building/human interactions
- Multi-World Support: Run 100+ simultaneous game worlds
- Narrative Generation: AI-powered story events and character arcs
- Economic Simulation: Market dynamics, trade routes, resource management
- Political Systems: Faction relationships, succession dynamics, diplomacy
- Natural Events: Weather patterns, seasonal cycles, disasters
- Agent AI: NPCs with goals, motivations, and relationship networks
- Tick Rate: Every hour
- Individual Updates: Every hour
- Building Updates: Every 24 hours
- City Updates: Every 168 hours (1 week)
All entities share 5 fundamental needs:
- Environment - Safety, comfort, livability
- Consumption - Resource intake and usage
- Connection - Social bonds and networks
- Rest - Recovery and maintenance
- Waste - Byproduct management
Building:
cd world-simulation
cargo build --target wasm32-unknown-unknownPublishing:
spacetime publish worldsimSee CLAUDE.md for detailed project guidelines and modifiers.md for all numerical rates and modifiers.