도시로 돌아가기
Research · Mossland City

For researchers & external embeds

Methodology, public APIs, dataset access, and citation for the city's live state and accumulated archive.

Premise

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.

Methodology

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.

Public API

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/state

    Live derived city state — mood, metrics (8), hotIssue, weather, signal counts, districts, newspaper, latestArchive (with LLM summary).

  • GET/api/health

    Health check on the 6 sister services — HTTP code + latency + status (ok / degraded / down).

  • GET/api/archive

    Manifest of all daily snapshot files — date / bytes / mtime / per-day URL.

  • GET/api/archive?date=YYYY-MM-DD

    One day's full snapshot — derived state + raw live signals + LLM-composed Korean reflection.

  • GET/api/archive?days=14

    Bulk inline export of the N most recent daily snapshots (1–60).

  • POST/api/ask

    LLM endpoint that answers in the city's voice over the live signals. Body: { question: string }.

  • GET/feed.xml

    RSS 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.

Schema

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"
}
License

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.

Citation

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.

Contact

Reach the operators

For research collaboration, dataset use beyond personal scope, or to report a sister service health issue you saw on /status, reach Mossland via moss.land.