For researchers & external embeds
Methodology, public APIs, dataset access, and citation for the city's live state and accumulated archive.
What this experiment is
Mossland City is a live AI-city simulation that runs on top of real-time signals from six sister services in the Mossland constellation — NPC, Alpha, Algora, AO, Bridge, and SignalMap. Every hour the city updates its derived state (mood, eight metrics, weather, hot issue, district activity, newspaper); every midnight a cron writes the full snapshot, plus a two-to-three sentence LLM reflection in Korean, to a permanent archive. After fourteen days, that archive is real recorded history of the streams that flowed through the city — not seed simulation.
The single research question being tested is whether a living virtual society can be simulated on top of the real-time signals of human society, rather than inside a closed sandbox.
How the live state is derived
- Signal ingestion
Six parallel HTTP fetches against sister upstreams every page request. 6s timeout, graceful fallback to empty arrays.
- Metrics derive
Eight metrics (attention/risk/trust/liquidity/conflict/culture/governanceLoad/realitySync) computed from signal counts, tone ratios, and AO daily stats. Deterministic per hour bucket.
- Mood tone classifier
Risk + attention + trust + realitySync thresholds map to one of 4 tones (cautious/active/contemplative/bright). Mood line picked from a tone-keyed pool.
- Hot issue priority queue
Alpha pulse > Bridge outcome > Algora proposal > AO debate > SignalMap topic > NPC headline. Top item becomes the city's hot issue of the hour.
- Districts & newspaper
Per-district signal mapping for activity/mossLevel/headline; tone-aware priority queue across the 6 streams for the 3-card newspaper.
- Daily archive cron
pm2 cron at 00:00 server time fetches the full live state, computes the derived state, and asks gpt-4o-mini for a short Korean reflection. Snapshot is written immutably to data/archive/<date>.json.
- No fictional cross-NPC edges
The city does not invent NPC↔NPC encounters or interpolate causality between services. Cross-flow is the literal flow of signals from sisters to the city, nothing more.
Endpoints
All endpoints respond with JSON, are CORS-open, and carry a short s-maxage. Suitable for direct browser fetch from any origin.
- GET
/api/stateLive derived city state — mood, metrics (8), hotIssue, weather, signal counts, districts, newspaper, latestArchive (with LLM summary).
- GET
/api/healthHealth check on the 6 sister services — HTTP code + latency + status (ok / degraded / down).
- GET
/api/archiveManifest of all daily snapshot files — date / bytes / mtime / per-day URL.
- GET
/api/archive?date=YYYY-MM-DDOne day's full snapshot — derived state + raw live signals + LLM-composed Korean reflection.
- GET
/api/archive?days=14Bulk inline export of the N most recent daily snapshots (1–60).
- POST
/api/askLLM endpoint that answers in the city's voice over the live signals. Body: { question: string }.
- GET
/feed.xmlRSS 2.0 feed of the most recent 60 daily reflections — mood, hot issue, and LLM-composed Korean summary per day. Linked from the home <head> for auto-discovery.
Daily snapshot shape
{
"schemaVersion": 1,
"date": "YYYY-MM-DD",
"generatedAt": "ISO timestamp",
"timeOfDay": "dawn | day | dusk | night",
"state": {
"hourBucket": "YYYY-M-D-H",
"weather": "clear | cloudy | foggy | storm | aurora",
"mood": "Korean sentence",
"hotIssue": "Korean sentence",
"metrics": {
"attention": 0-100, "risk": 0-100, "trust": 0-100,
"liquidity": 0-100, "conflict": 0-100, "culture": 0-100,
"governanceLoad": 0-100, "realitySync": 0-100
},
"newspaper": [{ "title", "source", "tone" }],
"npcsSeed": [...],
"districts": [{ "id", "activity", "mossLevel", "headline", "lastActivityAt" }]
},
"signals": {
"npc": [...], "alpha": [...], "algora": [...],
"ao": [...], "bridge": [...], "signalmap": [...]
},
"aoStats": {
"signals_today", "debates_today", "ideas_generated",
"plans_created", "agents_active"
},
"summary": "Korean 2-3 sentence LLM-composed reflection on the day"
}Use & redistribution
Daily archive snapshots are released under CC BY 4.0. You may use, mirror, and build derivative work as long as Mossland is credited. The illustrations underpublic/illust/are part of Mossland's brand and not under the CC license; please do not republish them outside Mossland-properties context.
If you cite this work
@misc{mossland_city_2026,
title = {Mossland City: A Live AI City on Real-Time Human Society Signals},
author = {Mossland},
year = {2026},
howpublished = {\url{https://city.moss.land}},
note = {Daily archive: \url{https://city.moss.land/api/archive}},
}Plain text — Mossland (2026). Mossland City: A Live AI City on Real-Time Human Society Signals. https://city.moss.land. Daily archive at /api/archive.