Build Roadmap
From nothing to a stable civilisation loop. Each phase unlocks the next. Nothing is skipped.
Infrastructure
Getting the world to exist
Phase 01Foundation
Complete- ✓Project scaffold, folder structure, config.js
- ✓SQLite schema, flush-to-disk on chronicle tick
- ✓World grid - Float32Array, 4 channels (R/T/C/H)
- ✓Entity spawning (flora, fauna, terrain)
- ✓Season cycle - 4 seasons, 36 days each, 20 min = 1 sim day
Phase 02Scintillae
Complete- ✓Scintilla spawn, needs decay (satiety / thirst / fatigue / health / safety / fear)
- ✓Aging and life stages (child / adolescent / adult / elder)
- ✓Death - starvation, thirst, predator, old age
- ✓Perception - local radius, fog of war, biome modifiers
- ✓Heuristic policy - action selection by need urgency
- ✓Persistent goal system - commit windows, directional wander
- ✓Stamina - fast-cycling bar, drains on hunt/flee, slows movement
- ✓Skills via procedural memory - forage/hunt/drink improve with practice
Phase 03Substrate
Complete- ✓Micro tick loop (20/sec), cognitive tick (every 5 micro), chronicle tick (every sim day)
- ✓Immutable event log via EventEmitter + SQLite
- ✓SIGINT handler, clean shutdown with flush
- ✓Railway deploy, persistent volume, env vars
Phase 04World fidelity
Complete- ✓Azgaar map integration - 1000×1000 voronoi grid, real biome data
- ✓Biome rasterization - voronoi polygons stamped into grid, per-cell biome lookup
- ✓Entity biome gating - water only on river/coastline, prey only on plains/forest
- ✓Resource stock system - each flora/fauna has finite stock, depletes, respawns with new random amount
- ✓Fauna AI - taunt system, apex chase, prey flock/flee, large prey charge
- ✓Day/night cycle - perception penalty, fear baseline, stamina cost, canvas overlay
- ✓Land cell precomputation - iterate only non-ocean cells in regen/decay loops
Current work
Survival loop stabilisation
Phase 05World generation
- Chunk-based entity placement - 50×50 cell chunks, feature budgets per biome type
- Biome feature budgets - guaranteed minimums, controlled maximums per chunk
- Apex separation enforcement - minimum distance between predator spawns (~80 cells)
- Spawn anchor from entity density - post-gen scan, not grid resource channel
- Haven lock - anchor 0 always at Azgaar spawnHavenCenter
Phase 06Observer split
- Admin.js split - clean JSON API endpoints (Railway) vs frontend console (Vercel)
- CORS + bearer token auth replacing session cookie
- Cardinal Time smooth interpolation - server source of truth, 5s poll, client-side fill
- Event feed filter - type dropdown (deaths / food / social / all), activity counter in strip
- Map inspect mode - click any entity/scintilla for inline detail panel
Social emergence
First signs of civilisation
Phase 07Continuity
- Memory layers active - episodic / semantic / procedural / social decay and reinforcement
- Knowledge artifacts - lifecycle (spread / mutate / decay / myth), confidence tracking
- Knowledge gates behavior - agents who know a location path there, those who don't wander
- Fear distortion - memories recalled under high fear are less accurate
- Elder knowledge value - elder procedural memory stabilises group survival rate
Phase 08Social layer
- Reproduction and gestation - trust threshold, bonding duration, shelter condition
- Genetic inheritance with mutation - trait weighted average + noise
- Group identity - in-group vs stranger distinction in policy
- Group formation detection and DB write
- Primitive signals - approach / flee / follow / threat tokens
- Terrain memory - desire paths accumulate from repeated movement, decay slowly
- Death leaves traces - corpse as scavenger resource, fear memory trigger for witnesses
Phase 09Groq integration
- Chronicle narration - one paragraph per sim day from event stream, per-group + global
- Continuity distillation - episodic → semantic compression via Groq
- Communication utterances - inter-scintilla signals with LLM-generated content
- Groq client with rate limit handling, retry, token budget
Deep emergence
What we're actually watching for
Phase 10Language
- Signal co-occurrence tracking - repeated signal + context = weak association
- Token stabilisation - reinforced associations become shared tokens
- Token transmission - imitation spreads stable tokens to nearby agents
- Dialect divergence - cross-group token overlap tracking
- Semantic drift - meaning of a token changes over 10 generations
- Naming system - scintillae develop names for recurring entities/locations
Phase 11Institutional emergence
- Settlements - repeated return to fixed location becomes home, detectable as DB pattern
- Leadership - high trust + resource success → proto-authority, others defer
- Norms - consistently punished/rewarded behaviors become social rules
- Trade routes - resource exchange paths that survive across individual agents
- Rituals - repeated group behaviors with no direct survival function
- Farming seed - agents tending depleted resource locations before respawn