- web/index.html: GEN_HOUSE_SLOTS (52 positions across whole map) replaces
old hash-to-bottom-strip logic; 4 corner apartments + diner/pharmacy added
to LOCATION_POSITIONS
- config/city.yaml: 4 corner apartment blocks (apt_northeast/northwest/
southeast/southwest) and Blue Moon Diner + SociMed Pharmacy added
- generator.py: 20% of generated agents are children (age 8-17) with
elementary/middle/high school student occupations and child backstories
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Expand city to 34 locations with new buildings, pan controls, and 2.5D web UI
- Add school, office tower, factory, hospital, 3 apartment blocks, bakery,
cinema, church, town square, sports field, east/west avenues
- New building sprites: factory with chimney smoke, hospital with red cross,
church with steeple, cinema with marquee lights, sports field with track
- Pan system: drag canvas or use sliders to scroll larger world (1.6x1.4)
- Sidebar narrowed 380->260px, agent clustering improved for large crowds
- Occupation-aware work locations (lawyer->tower, mechanic->factory, etc.)
- Routines use new locations for lunch, leisure, and evening entertainment
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Redesign city: individual houses, real streets, async Ollama client
- Replace 2 apartment blocks with 10 individual houses (1-3 agents each)
- Pair agents by relationships: siblings, couples, roommates, families
- Redesign web UI canvas: road grid with asphalt/lane markings/sidewalks,
varied house colors, trees, street lamps, park with pond and benches
- Convert OllamaClient from sync httpx.Client to async httpx.AsyncClient
to prevent blocking the event loop during LLM inference
- Enable Ollama native JSON mode (format:"json") in complete_json
- Update tests for new 20-location city layout
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add gender, romance system, web UI, and API event log
- Add gender field to all 20 personas (male/female/nonbinary)
- Implement romance system: romantic_interest tracking with relationship
progression (crushing -> dating -> engaged -> married)
- Add partner_id to agents for tracking romantic partners
- Create web UI (web/index.html): canvas-based city visualization with
buildings, animated agents with gender-specific sprites, weather effects,
day/night cycle, couple hearts/lines, event log, and agent detail panel
- Add /api/events endpoint and persistent event history in simulation
- Serve web UI from FastAPI with static file mounting
- Update default Ollama model to llama3.2
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Initial implementation of Soci city population simulator
LLM-powered simulation of 20 diverse AI people living in a city.
Architecture: world (clock, city map, events), agents (persona, memory,
needs, relationships), actions (movement, activities, conversation, social),
engine (simulation loop, scheduler, entropy management, Claude API),
persistence (SQLite), and API server (FastAPI REST + WebSocket).
All 12 integration tests pass with mock LLM.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>