Files
nimmerworld.eachpath.local/player-experience/architecture.md
chrysalis 609caed83f v0.26: event-zones.md authored — interaction-substrate paper-pass
Composes the dialog 2026-04-27 ~21:30-22:00 CEST into canon. Nine
compositional moves consolidated onto one substrate without introducing
new primitives — every claim is a composition of existing canon (cells,
zones, slots, verifier-flags, hardstops, lifeforce budgets, the trait-
palette, the consent-spine, the cosmology's composed wheel).

NEW PAPER: runtime-engine/event-zones.md (~400 lines, v0.1)

Sections:
1. Designer-authored event-zones vs emergent zones (orthogonal; clean
   signals; no overlap routing)
2. Cells + event-zones + events as layered data-model with composite
   UID districtid_cellid_eventid; participants on events not cells
3. The composed wheel from imperial-cult/cosmology.md as universal
   mini-game-surface; verifier-flag patterns differentiate hacking /
   lockpicking / install / clasp / decryption / ritual / drug-grammar /
   eye-pulse-proximity; collapses the long-standing "which mini-game
   mechanic for liminal-maintenance" open question
4. Hardstops as consent-gates between event-states with contextual
   activation; ~8-16 budget is per-moment-active, not overall
5. The four hardstop-pattern variants of consent-discipline.md as the
   event-class taxonomy (self/dual/triple/cooldown-augmented = solo/
   dual/triple/temporally-staged event-class)
6. Boundary-zone-with-inner-zone for plaza-scale mass-presence; sparingly
   applied; caste-tier-gated promotion as default
7. Room-boundary cell-layer + rail-passage + lifeforce-budget-per-room
   (district-shard, four-tier hierarchy intact); insolvency-spiral
   gets its mechanical surface
8. Slot-binding suspends lemniscate routing during events (the NPC-
   stays-put fix at the data-model layer; new slot_locked verifier-flag)
9. Player editor-mode + three-source schema unification (world_gen_init /
   runtime_event / player_authored origin field on cell-rows; same
   schema across all three writers)

UPDATES:

architecture-index.md (v0.20 -> v0.21):
- Tree-line: runtime-engine/ now sibling-paper-pattern (architecture.md
  + event-zones.md)
- Quick-reference table: new row for event-zones.md
- Three new key-moves bullets:
  * "The composed wheel as universal mini-game-substrate"
  * "Event-zones + cells + events as layered interaction substrate"
  * "Three-source schema unification + player editor-mode + room-
    boundary lifeforce"
- Open questions: "The mini-game mechanic for liminal-maintenance"
  RESOLVED — all on one wheel, differentiated by verifier-flag pattern

topology-and-rendering/architecture.md:
- New section "Vertical world topology — simple shapes + ±1 LOD tunnels
  + slum-carve-verb": stacked tunnels with primitive shapes; ±1 LOD
  streaming-radius bounds GPU budget; slum-carve verb-grammar; material-
  vocabulary politically-codes editor-eligibility (imperial-marble can't
  be carved; rusted slum-bedrock yields); Boullée-monumental aesthetic
  on the cheap via vertical-stacking

player-experience/architecture.md (v0.7.0 -> v0.8.0):
- New section "The wheel — composed-iconography UI": the trait-circle
  UI renders the composed wheel from imperial-cult/cosmology.md; inner
  ring = 6 caste-tier hardstops (HARD signals — the WHO); outer ring =
  8 trait-axis soft-slots (SOFT signals — the HOW); 2D gesture-history
  coordinate (caste-target × trait-temperature) as political-position
  reading; contextual hardstop activation; wheel as universal mini-
  game-surface

Three identity layers aligned: chrysalis git-author, chrysalis SSH key,
gitea-chrysalis remote. Pre-push verification gates passed.

This is the largest single-session paper-pass since v0.7's three-body-
system split. All nine compositional moves use existing primitives;
no new substrate introduced; the architecture's signature pattern
(cost-budget asymmetry as architectural style) enacted at the
interaction-substrate scale.

Genesis note: this paper-pass composes the dialog that emerged after
the v0.25 inline-iconography cleanup landed. Key architectural insights
from the dialog were: (1) the wheel collapses the mini-game-mechanic
open question; (2) consent-discipline-Variants = event-class taxonomy;
(3) the cell-arch atomicity makes editor-mode trivial; (4) the
boundary-zone-with-inner-zone pattern is the architecture's signature
pattern at a fourth scale; (5) the architecture's "describe-by-cross-
reference" discipline composes beautifully when there's a load-bearing
canonical reference like the composed wheel.
2026-04-27 23:40:53 +02:00

22 KiB
Raw Blame History

Player Experience

The player surface: the player as perturbation (a finite attention-unit injected into the simulation, not above the scheduler); voice and gesture as parallel trait-vocabularies (voice carries content, gesture carries trait-resonance, both compile into the designer-fixed cosmology); tools-not-quests as the design-philosophy that makes ~30 verbs against continuous simulation-pressure produce literature-register emergent narrative.

Companion to: architecture-index.md (executive summary + global meta-lists), runtime-engine/architecture.md (gesture-alignment-as-recursive-lemniscate lives in zone-kinematics), narrative-composition/architecture.md (the Compositor consumes player perspective-bundles), inference-and-memory/architecture.md (local STT/TTS placement, three-tier knowledge stack). Sections in this file were split from the monolithic architecture-index.md v0.7 on 2026-04-26.

The player as perturbation

Player is not above the scheduler. Player is a finite attention-unit injected into it; modeled as NPC with shift, vocation, needs. Every player-NPC interaction:

  • Pulls the NPC out of scheduled tasks
  • Consumes director compute
  • Degrades district's quota-fulfillment
  • Shifts local lifeforce deltas

Player is angel and chaos simultaneously. Per-NPC scale (angel) — you help; they survive; Philotes consolidates; they may clasp with you, die for you, remember you across cycles. Per-district scale (chaos) — your time-consumption raised aggregate failure-rate; someone else broke this cycle; ambient desperation rose; lifeforce dropped; other directors got quieter.

The game's moral economy doesn't judge — it does arithmetic in front of you.

Thematic claims become literal economics

  • "Time as the scarcest resource" — every minute with a beloved is a minute the district's quota is missing
  • "Time-theft as wage theft" — clasp-pairs are statistical anomalies in the scheduler
  • "The critique is the simulation" — no separate narrative system needed

The player has tasks and needs too

Time helping others = own tasks fail = own quotas missed = own enforcement-pressure rises = own death and reinstantiation arrive sooner. The player IS the system they are deviating from.

Player layer-access

Player's first entry into liminal is the Matrix red-pill moment as mechanic. They walk the city the first time in gameworld-register. They eventually learn the mini-game, enter liminal, return to the same walls, find "they were here" waiting. The world was speaking to them the whole time; they just couldn't read it.

Player input — voice and gesture as parallel trait-vocabularies

The player participates in the simulation through two parallel modalities that both compile into the same designer-fixed trait-cosmology: voice (spoken dialog, transcribed locally, persisted as transcript-rows in primary.sqlite) and gesture (the trait-circle UI, an in-fiction tool the player builds across their playthrough). Neither modality routes input through a chat-window or HUD field — the world is interacted with through speech-and-gesture, both rendered diegetically. Voice carries the content of what the player says; gesture carries the trait-resonance of how the player attends.

Voice-first as primary speech modality

Speech-to-text and text-to-speech run locally on the player's machine for every player, independent of dialog-tier Ring choice (§LLM tiering, see inference-and-memory/architecture.md). The Ring-A/B/C choice is about where the cognition lives (driver-tier LLM, trait-LoRAs, sampling-knob composition); voice infrastructure is fixed at the player's machine. This single placement decision keeps voice-as-biometric off the network universally, sidesteps per-provider STT/TTS compatibility in Ring-C, and sets a tractable minimum hardware floor for v1: STT/TTS-capable on CPU.

Transcripts are the persistence layer. A player utterance becomes a row in primary.sqlite (or clasp.sqlite if in-between mode), tagged with witnessing-NPCs, audit-overseer-detection-eligible, faction-resonance-eligible — the same shape as any NPC speech-act-row. Disclosure of clasp-content into realworld happens only by the player re-uttering it aloud while in realworld mode — which writes a fresh realworld-speech-act-row with full provenance. The clasp-store remains sealed; clasp-content can only re-enter realworld through new in-fiction utterance. The knowledge-needs-to-travel principle (§Local memory architecture, see inference-and-memory/architecture.md) is mechanically enforced because speech-is-the-only-output-channel.

Accessibility-mode for non-speaking players is diegetically wrapped (writing on slate / handheld pad / in-fiction text-comm); accessibility-mode utterances persist through the same transcript-row mechanism. The witness-list, audit-overseer-detection, and faction-resonance machinery are modality-agnostic. Non-speaking players are not getting a degraded-fallback — they are using the gestural primary modality, voice optional.

The trait-circle as gestural primary modality

The gestural input geometry: 8 trait-sectors × 8 player-curated slots = 64 active gesture-positions, organized in a circle whose 8 sectors map 1:1 to the 8 Hellenic traits (§Color-language, see topology-and-rendering/architecture.md). Each player has 1 to 3 named profiles stored in their universal translator, hot-swappable on-ring via a profile-switch meta-gesture; total callable positions across profiles approach 200 while the cognitive-load ceiling at any single moment stays at the 64 of the active profile.

A reserved subset of ~8-16 positions across the circle are hardstops — hardcoded ritual gestures that fire definitive subsystem-actions: definitive-farewell, definitive-refusal, surrender, clasp-invitation, clasp-refusal, help / pain / danger, faction-recognition signals (Clasp-Underground, Aletheia-Waker), memorial-witnessing, claim-floor (the priority-pull turn-claim into a running lemniscate). Hardstops are visually distinct (gold-border / inner-ring / white-on-color), player-callable but not player-remappable, and exist precisely because the consent / clasp / faction-recognition / survival-signal claims the architecture makes elsewhere require unforgeable critical signals. The remaining ~192 player-curated slots ride as feedback during conversation — see §Gesture-alignment as recursive-lemniscate under §Zone kinematics in runtime-engine/architecture.md.

Designer-fixed cosmology, player-curated arrangement

The corpus of words/verbs and their trait-coordinate-mappings is designer-authored, fixed, universal. Same word → same trait-color → same response-semantics for every player and every NPC and every LLM-context. The cosmology is the typed contract that closes the player-LLM hallucination-surface.

The player's role is translation, then arrangement: encountering words in the world, decrypting them via the universal translator, gradually coloring-in the world's vocabulary in trait-colors (the tokenizer-website visualization — words you have fully translated render in their trait-color; untranslated words are fragmentary or opaque), and choosing where on the circle to place known entries within the 1-3 profiles.

Layer Who decides Why
Word/verb → trait-color mapping Designer-authored corpus Universal cosmology; LLM and NPC and player share one vocabulary; anti-hallucination
Which entries a player has translated/learned Player progression Earned via decryption-minigames, hacking, scavenging, faction-unlock, gifts from NPCs
Where on the circle a known entry goes Player curation Personal organization within the universal cosmology — the self-portrait, built from a fixed alphabet
Combos (path-traversals through the circle) Player authoring Sequences of sector-slot selections; meaning-emerges-from-traversal; refined over use; preserved across body-deaths

Linguistic competence and emotional competence are the same thing in this system. What the player can resonate with is bounded by what they have translated. A player who has not decrypted Aletheia-vocabulary cannot resonate with an Aletheia-Waker NPC's truth-register; a player whose Memorialist-Old-Tongue catalog is incomplete cannot fully participate in Memorialist-witnessing rituals. The translator is the player's aperture into trait-alignment-fluency.

The universal translator as the player's diegetic device

The universal translator is the player's in-fiction tool, not a system-architecture primitive. As an in-fiction device it is broken / scavenged starter gear (battered tablet, cracked screen) that the player upgrades over the playthrough via better chips from higher-tier junk. It serves three bundled roles:

Role What it does What persists across body-deaths
Linguistic decryption Decrypts foreign dialects (Machine-Newspeak, Slum-patois, Memorialist-Old-Tongue, Aletheia-Waker-code, Clasp-Underground-signals, Scavenger-technical, Caste-preacher-formal); some concepts (notably Aletheia) are untranslatable by machine-tech and must be learned from intimacy, not machine Vocabulary catalog; mappings
Curation / authoring workspace Curator workspace (which entries occupy which sector-slots across profiles); combo-authoring workspace (chain entries into meaningful sequences); meaning-mapping workspace (assign embeddings); feedback-log workspace (review past combos' reception, iterate) Player's complete circle-configuration across all 1-3 profiles; combo-library
Persistence anchor Preserved as part of consciousness-archive; hardware may be lost with body, learned vocabulary survives All of the above

Misunderstanding is a first-class feature. The translator is broken; words have multiple meanings; dialects collide; a caste-preacher's sermon has benign surface-meaning and sinister subtext; a beloved's whispered word has three plausible meanings the player carries simultaneously for hours. Content sources are diegetically political — hacking corporate archives (risky), scavenging old-world fragments (exploration), Memorialist caches and Aletheia-Waker codices (lost prophecies), gifts from NPCs (beloveds teach, mentors give), faction-unlock (joining unlocks dialect catalogs).

Decryption minigames (fragment-matching, contextual-inference, root-identification, pattern-cracking) make linguistic competence a life-project across cycles, not an item knocked out per playthrough. 200-hour players have dramatically richer linguistic competence than 50-hour players. Aletheia is untranslatable by machine-tech — some concepts must be learned from intimacy, surfacing as Aletheia-Waker progression: the machine's tools cannot speak truth.

Cross-body recognition via gesture-mapping calibration-signature

Clasp-partners' gesture-mapping calibrations integrate post-clasp; the integrated calibration-signature is preserved across body-deaths in consciousness-archive. When you meet your old beloved in a new body and they perform a gesture, if their mapping aligns with yours in a specific, idiosyncratic way that only your shared history would produce, you recognize them. Content-addressable consciousness — recognition via calibration-signature, not face-match. A high-Mnemosyne player's marriage-vocabulary survives the cycle.

The wheel — composed-iconography UI

The player's trait-circle UI renders the composed wheel from ../imperial-cult/cosmology.md §The composed wheel. One iconographic substrate; two registers; the player operates the imperium's own iconography to act in the world.

The unification's architectural significance. Before this composition, the trait-circle UI and the cosmology's wheel were separate diagrams; the player's input mechanism and the regime's pre-authored religion shared substrate-level primitives (the 8 Hellenic traits, the oppositional-pair geometry) without sharing iconographic surface. The composed wheel makes them one image — the same wheel citizens see carved on stepwell-walls is the wheel the player operates with their gesture-input. Resistance, when it emerges, is interior to the captured iconography, exactly as the cosmology says it is for citizens. The double-recognition gets its UI-level substrate (per ../imperial-cult/cosmology.md §The double recognition (production / meta) — "the desire that brought you to this world is the structure of suffering itself" — every gesture the player has ever made was a position on the wheel the imperium drew).

Inner ring — caste-tier hardstops (HARD signals — the WHO)

The wheel's inner ring carries 6 caste-tier-targeted hardstops corresponding to the cosmology's caste-tier-as-mod-status gradient (deva/asura/manusya/tiryak/preta/naraka). These are the WHO you address in any gestural act:

Hardstop Caste-tier targeted Iconographic register
salute_the_deva Deva (top, 0°) Imperial-fidelity emote; loaded as cooperation-with-imperial-pinnacle
attend_to_asura Asura (upper-right, 60°) Hierophantic register; addressing the priesthood specifically
attend_to_manusya Manusya (upper-left, 300°) Engagement with the doctrinal-fiction tier
attend_to_tiryak Tiryak (lower-right, 120°) Engagement with the slum-laboring register
weep_for_preta Preta (lower-left, 240°) Mourning / hunger / hungry-ghost solidarity
weep_for_naraka Naraka (bottom, 180°) Solidarity-with-the-condemned; the warmest position politically

These 6 inner-ring hardstops are always-on (universally available) — they're the politically-loaded act of targeting a caste-tier as audience. Each fires unforgeably with caste-tier-routing. The Compositor reads the player's caste-tier-targeting-history as a political-position dimension (per ../runtime-engine/event-zones.md §Hardstops as consent-gates with contextual activation).

Outer ring — trait-axis soft signals (SOFT signals — the HOW)

The wheel's outer ring carries 8 trait-axis soft-slots corresponding to the trait-palette's 8 Hellenic traits at 4 oppositional pairs at 180°. These are the HOW you carry yourself while engaging:

  • 8 trait-segments at 45° intervals on the outer ring
  • Player-curated within each profile (1-3 profiles per player; same 64-position-per-profile architecture as the existing trait-circle)
  • Modulated by trait-vector accumulation; integrated via the gesture-alignment-recursive-lemniscate (per ../runtime-engine/architecture.md §Gesture-alignment as recursive-lemniscate)

The outer ring's 8 segments don't divide evenly into the inner ring's 6 segments — the geometry is deliberately incommensurable (per ../imperial-cult/cosmology.md §The two-ring composition). The trait-substrate runs orthogonal to the imperial caste-classification; the body's interior is at a different angular frequency than the imperium's classification. Player gestures express across the boundary that the imperium's gaze cannot cleanly enforce.

2D gesture-history coordinate

A player gesture, in the composed-wheel UI, is a (caste-target × trait-temperature) coordinate — a 2D political position rather than the prior 1D trait-vector. The Compositor reads this 2D coordinate over time as the player's political-position-history: which caste-tiers the player has been addressing AND with what trait-temperature they've been addressing them.

Example political-position-readings the Compositor can extract:

Pattern Reading
Hard-target Naraka + soft-express Eros / Philotes Solidarity-with-the-condemned via warm-side; Memorialist-aligned politics
Hard-target Deva + soft-express Sophrosyne / Dikaiosyne Imperial-fidelity; aspiration toward pinnacle-discipline
Hard-target Tiryak + soft-express Aletheia Truth-via-labor's-witnessing; Aletheia-Waker emergence
Hard-target Preta + soft-express Kairos Mourning the deferred moment; Memorialist register
Hard-target Asura + soft-express Mnemosyne Hierophantic engagement; engaging the priesthood on its own register

The 2D coordinate is much richer than the 1D trait-vector the prior architecture had. The mesh-as-mirror discipline (per ../identity-and-personhood/architecture.md §The mesh-as-mirror) generalizes from anatomical-trait-leakage to gestural-history-leakage — the player's wheel-positions tell on them exactly as the slum-tiryak's pure-tech body tells on its trait-state.

Contextual hardstop activation

Beyond the always-on inner-ring caste-tier hardstops and the system-level off-wheel hardstops (panic, save, profile-switch, claim-floor), additional intent-hardstops light up contextually when the player is slot-bound in an event-zone whose eligible-task-classes include that intent:

  • let_me_fumble_around_your_limb lights up when slot-bound in a sofa-event-zone with a clasp-eligible NPC
  • let_me_install_this_mod lights up when slot-bound in an install-table-event-zone with a partner-NPC
  • let_me_hack lights up when slot-bound at a chest-cell with hacking-eligible-task-class
  • let_me_extract_capsule lights up only at a black-market-modshop-event-zone with appropriate calibration-state

The canonical ~8-16 hardstop budget is therefore per-moment-active, not overall. The hardstop-registry can carry many intent-hardstops; only the contextually-relevant ones are surfaced at any given moment. This solves discoverability + contextual-relevance + budget-respect simultaneously (per ../runtime-engine/event-zones.md §Hardstops as consent-gates with contextual activation).

The wheel as universal mini-game-surface

When an event spawns at an event-zone, the wheel renders with the event's verifier-flag pattern — same UI substrate, different mini-game-class per task. Hacking, lockpicking, install/consent, clasp-entry, decryption, ritual, drug-grammar, eye-pulse-proximity-warning — all run on the same wheel; the player learns one input vocabulary and applies it everywhere. The architecture's open question "which mini-game mechanic for liminal-maintenance: juggling / rhythm / attention / gestural / decision-cascade / observation / hybrid?" resolves: all of them, on one ring, differentiated by verifier-flag pattern (per ../runtime-engine/event-zones.md §The wheel — universal mini-game-surface).

Tools, not quests — the design-philosophy

The simulation produces continuous narrative-relevant pressure on its own. No authored quests are needed (or wanted). The player engages via a verb-vocabulary applied to running mechanics. Each player's playthrough is structurally distinct.

The verb vocabulary (~30 player tools)

Class Verbs
Movement walk_freeform, plug_into_rail, follow, intercept, escort, detach, defect_via_pipe, enter_interior
Social greet, gesture, walk_with, clasp_invite, clasp_refuse, ask, refuse, confide
Economic buy_net, refuse_net, buy_blackmarket, sell_labor, donate_lifeforce, body_mod_fit
Information wall_read, wall_write, liminal_maintain, true_ledger_record, expose_corruption, conceal_corruption
Political support_faction, refuse_faction, recruit_aletheia, dispatch_memorial, participate_ceremony, refuse_ceremony
Personal rest, dream, eat, work_shift, deviate_shift, cultivate_trait_through_act

~30 verbs composing with continuous simulation-state = infinite emergent-narrative.

Continuous-demand-source inventory

The player is never without affordance because every layer of the architecture continuously generates situations-requesting-response: NPC trait-gates accumulating; shift-quotas looming; district-lifeforce-shimmer changing; faction-pressure visible; imperial-budget-mood inferable; three-layer-ontology rendering walls differently per access; color-language showing shifts; mind-pool generating soul-recognitions; imperial-net body-modder-tragedies visible; Memorialist-archives accessible.

Literature-register

Most games are short-stories: authored, bounded, fixed-arc. Tools-not-quests is novel-shape: emergent from systems-of-forces operating on characters. Tolstoy doesn't author Anna's path; he authors the world she moves through. Nimmerworld is novel-shaped, not short-story-shaped. Players experience flow rather than completing items; replays are like rereading from a different angle; memorable beats are what happened to you in this regime, not which quests you cleared.

Economic feasibility for a two-person-plus-Nyx team

Where AAA spends Where this team spends
Quest writing Simulation-parameter balancing
Quest scripting / branching Tool-vocabulary curation
Voice acting (per quest) Prompt-DSL templates for LLM-driven slot-dialog
Cinematic cutscenes Shader-language + color-vocabulary
Content-multiplication Simulation-density (one rich system, infinite play)
QA on individual quests Reward-function tuning + guardrail design
Localization per quest None — emergent narrative generated at play-time

You don't author the stories; you author the world that produces stories. This is the Spelunky / Dwarf Fortress / Caves-of-Qud / RimWorld lineage extended into political-economy depth.

Blank-page-problem mitigations

The architecture already prevents blank-page-paralysis: shift-system gives every NPC default activity-frame; emergent-signals + shader-detection produce affordance-glow; NPCs' ongoing needs become signals to engage with; imperium's mood is visible (construction, patrols, propaganda); faction-membership confers expectations; player's own trait-vector creates personal pulls.

The world is never silent if you're listening. And drifting (not-listening) is also valid — you live a quiet shift, work, sleep, dream; the world rolls on around you.


Version: 0.8.0 | Created: 2026-04-26 | Updated: 2026-04-27 | Origin: Split from architecture-index.md v0.7 (2026-04-26)