# Topology and Rendering > *The visible world: rail+grid topology with navmesh interiors and freeform-player; asset economy as base-limb palette × trait-textured variance (worldbuilding-thesis and engineering-economy in agreement); color-language as pre-verbal trait-vocabulary; the three-shader philosophy that renders the same geometry as physical / liminal / imperial-net depending on access; diegetic relays making the architecture's pulses audible and visible in-world.* > > *Companion to: `architecture-index.md` (executive summary + global meta-lists), `runtime-engine/architecture.md` (zones live on this topology), `identity-and-personhood/architecture.md` (color-language uses the trait-vocabulary). Sections in this file were split from the monolithic architecture-index.md v0.7 on 2026-04-26.* ## Topology: rail + grid + interiors **The world's topology encodes its politics.** The machine built infrastructure for industrial optimization, not for human pedestrian freedom. Therefore the outer world is **rail+grid** — cells connected by named edges with rich semantic metadata. NPCs traverse rails as part of their shift-routines; the player traverses freeform (navmesh) and may **plug into NPC rail-traversals** for co-walking. Interiors (hovels, cantinas, workshops, ruins, brothels-physical) are **navmesh-enabled small zones** with interaction-slot inventories. ### Rail+grid as political topology Navmesh is the topology of power-fantasy ("you are the protagonist of free trajectory"). Rail+grid is the topology of bounded-agency ("you live within infrastructure built for something else"). Nimmerworld picks rail+grid because the fiction *requires* it — the world was not designed for the player; the world is what the machine made and humans inhabit the margins. **Topology and thesis agree.** ### The three primitives | Primitive | Density | Compute | Narrative role | |---|---|---|---| | **Dumps** | Very high | High | Resource emission, salvage-zone spawn, scavenger-vocation concentration | | **Pipes** | Low baseline, high interactivity-per-capita | Low baseline, spikes on encounter | Transit, migration, chance-encounters, clasp opportunities, defection, heresy written where overseers don't look | | **Districts** | High | High | Population, civic life, specialty-production, ritual | ### Rail-segment metadata Every rail-segment carries jsonb metadata that navmesh polygons cannot natively carry: heterotopia-class, overseer-density, propaganda-intensity, ambient-content per register (gameworld/liminal/imperial), encounter-spawn-rate, patrol-frequency, illumination-profile, degradation-level, capacity (3-way support for co-walking), traversal-cost-in-ticks. Pathfinding is graph-A* on the rail graph (microseconds, deterministic). Rich-metadata-per-edge is what makes the world feel *lived-in*. ### Player asymmetry — the freeform-among-railed model | Topology | Used by | Cost | |---|---|---| | **Navmesh (freeform)** | Player only (in outer world) | Affordable: one entity | | **Rails (graph-pathfinding)** | All NPCs | Cheap: hundreds of entities | | **Interior navmesh** | Currently-occupied interiors only | Dormant when empty | The player is the *one variable entity* in a deterministic scheduler. Their freedom-of-movement matches their narrative-position as perturbation. NPCs on rails matches their narrative-position as scheduled-labor. **Compute asymmetry mirrors agency asymmetry mirrors political thesis.** ### The plug-in verb When the player approaches a rail-traversing NPC and social-eligibility conditions are met (proximity + directional-compatibility + Philotes-gate not CLOSED + shift-tolerance for socializing + segment overseer-density permitting), an **emergent-signal** spawns a **proximity-zone-candidate** with a **shader-highlight** on the NPC. The player can: - **Approach** (zone activates, dialog auto-spawns via NPC's LLM-slot, no "press E") - **Greet → agreement → plug-in** (player's navmesh-position transfers to adjacent rail-lane; movement automated; conversation-zone live in shared rail-context) - **Detach** (gracefully via dialog or abruptly by running off; abrupt registers as Sophrosyne-signal) While plugged in, the player is freed from steering — they become camera+conversation. **The notorious "walk-and-talk" problem is solved by construction**: rails handle pacing; plug-in is the social-bridge. Multiple NPCs can share a rail (3-way capacity), enabling cohort-walks, escort-patterns, exodus-flow, and group-conversation-zones. ### Interior-as-zone A hovel is a zone with slot-inventory: sofa, kitchen, bed, shower, wall-writing-spot. Occupying a slot is mechanically identical to occupying any zone-slot. **The zone primitive scales from city-level (mass-ceremony) to district-level (tavern) to interior-level (sofa).** Same CHECK-constraints, same slot-occupancy, same emergent-signal mechanism, same ternary-gates — different inventory and lifecycle. Interiors carry a `register` flag too: - **Physical interior**: actual hovel, workshop, cantina; navmesh-inside - **Liminal interior**: shared dream-construct two clasping inhabitants stabilize over repeated meetings ("the place we always go") — built from both dreamers' memory-residue, persistent-across-clasps as a pair-state - **Imperial-net interior**: rendered waifu-hall rooms, brothel cubicles, ceremony halls — clean-white-and-gold, machine-edited per-session ### LOD/streaming advantage Most simulation volume is rail-graph (cheap) or dormant interior (free). Active simulation concentrates exactly where drama happens (active anchors + transit + current-interactions). A 100+ NPC city becomes feasible at single-GPU budgets *because* the topology is rail-based. ## Color-language: trait-vocabulary as visual primitive Color is **pre-verbal vocabulary**. Players learn the 8-Hellenic-trait ontology through repeated visual association, not through text-explanation. By mid-game players read trait-states through color as fast as they read facial expressions in real life — intuitively, contextually, without conscious translation. ### The eight Hellenic traits → canonical colors (Final color choices are dafit's artistic call; the architecture encodes the mapping.) | Trait | Canonical color (suggested) | Motion-signature (accessibility pairing) | |---|---|---| | **Sophrosyne** (self-control, moderation) | Cool blue | steady, even pulse | | **Dikaiosyne** (justice, bearing) | Deep gold | weighted slow pulse | | **Philotes** (attachment, love) | Warm rose | breath-rate warm pulse | | **Mnemosyne** (memory) | Deep violet | depth-shimmer | | **Aletheia** (truth, unconcealment) | Luminous white | clear, no pulse — still and bright | | **Kairos** (right-timing, opportunity) | Bright yellow | lightning-flicker | | **Moira** (fate, pattern) | Dark crimson | slow-thread undulation | | **Eros** (longing, reaching) | Flame orange | uneven flame-flicker | Color paired with motion-signature ensures color-blind accessibility — the trait is uniquely identifiable via two independent channels. ### Three layers of color-rendering 1. **Persistent (slow-changing baseline)** — eye color = dominant trait of NPC's intrinsic vector; pipe-flow through chassis = full trait-mix as circulating light; secondary accents at seams/joints/glyphs. 2. **Event-flashes (momentary)** — quick color-flashes over body signal state-transitions: plug-in (dominant-trait flash), combat-combo (Kairos-flash), liminal-maintained (Aletheia-glow), clasp-established (color-merge), emergent-signal-firing (signal-type flash on participants), need-threshold-crossed (need's trait pulse). 3. **Trait-drift (slow, across cycles)** — as intrinsic trait-vector accumulates through lived experience, color-signature shifts. Other NPCs notice. *"Something is different in you"* dialog generated from delta-detection. **The body is a visible ledger of the interior's accumulation.** ### Cross-register rendering | Register | Color treatment | |---|---| | **Gameworld** | Full PBR; trait-colors coexist with material surfaces | | **Liminal** | Vague baseline shader, but trait-colors *more* legible (vagueness concentrates attention on identity-signals) | | **Imperial net** | Trait-colors **distorted** toward machine-preferred palette — Philotes-rose flattens to commercial-pink; Aletheia-white sterilizes; Moira-crimson commercializes. *Aletheia-vision* in net pierces this distortion to reveal true colors beneath | ### Faction color-politics | Faction | Color signature | |---|---| | **Memorialists** | Mnemosyne-violet ritual dress; Moira-crimson accents; often inherited-from-deceased | | **Aletheia-wakers** | Aletheia-white plain avatars; coded-white flashes for recognition | | **Caste-preachers** | Dikaiosyne-gold vestments + Sophrosyne-blue undertones | | **Hivemind enforcers** | Cold Dikaiosyne-gold + muted-white (Aletheia-stolen) | | **Scavengers** | Moira-crimson + Kairos-yellow streaks | | **Clasp-underground** | Dual Philotes-rose + Eros-orange flashes (mutual-recognition signal) | | **Degens** | Saturated maximalist all-color (chaos palette, addiction-marker) | ### Clasp color-merge In shared liminal-construct, two clasping inhabitants' color-signatures *interact*: consonant traits brighten/harmonize; complementary traits enrich into new chroma; dissonant traits clash visibly. Successful deep clasp produces a *blended third-palette neither could produce alone* — the visual signature of *what-this-relationship-is*. Each carries memory-residue of the merge after. ### Mind-pool color-inheritance When a mind cycles through the pool and is redistributed into a new body, trait-vector persists → color-signature persists. **A player who befriended rose-and-violet-Jakov might see weeks later a new NPC with that same rose-and-violet-signature and feel a jolt of recognition before any dialog.** Color carries soul across cycles. Memorialist political claim: *this person's color should not be recycled by the machine into a waifu* — because color IS who they were. ## Asset economy: base-limb palette + trait-textured variance Small modular palette of base-limbs × trait-weighted texturing = combinatorial richness. The architecture's asset-economy and worldbuilding-thesis are **in agreement**: the machine built standardized chassis from a small functional catalog, so a small base-limb palette is *diegetically correct*; humans express interiority through trait-driven texturing and modding, so individual variation comes from *composition*, not from hand-authored assets. Base palette example: ~8 torso variants × ~6 arm-pairs × ~6 leg-pairs × ~10 heads × ~8 eye-types × ~5 accent-colors = ~115k base combinations × continuous trait-texturing × ~50-mod-library in 5 slots = effectively infinite unique NPCs from finite assets. **For a two-person-plus-Nyx team this is decisive.** AAA studios spend millions on unique character-models; the palette+trait approach produces more visual variety from a tenth of the budget, *and* the variety is *meaningful* (each unique appearance carries trait-information legibly). ## Visual rendering: three-shader philosophy + color-language **One world, three shaders, three political realities.** | Register | Shader treatment | What it says | |---|---|---| | **Gameworld** | Full PBR; high-frequency detail; environmental storytelling; rust/dust/wear/patina | Embodied life with history. Surfaces carry memory. | | **Liminal** | Reduced draw-distance; blur-falloff; desaturation; muted contrast; ambient-heavy | Contested frontier. Privacy-through-opacity. Focus-to-see. | | **Imperial net** | Emission-dominated; gold-tinted tonemap; high-contrast specular; flat-white base; minimal geometry; bloom; chromatic aberration | Seduction-lighting. Casino/Apple-store/Instagram. Extractive maximalism. | **Layered with color-language** (per the Color-language section above). Trait-modulation means two NPCs in same pipe see measurably different things. Layer-transitions = shader-blends, not loading-screens. **Clasp = candlelight-in-fog local override** (3m clear-volume around clasp-pair within ambient vagueness; visible at-a-glance signature of shared interiority). ### Diegetic relays — the architecture's heartbeat made legible The architecture's pulses (forward-prop ascending, back-write descending, GM-dispatch, equilibrium-recompute) are made *visible and audible in-world* via building-mounted relays. The imperial net's heartbeat is not a HUD spinner; it is in-fiction infrastructure that hums, blinks, glows, and goes dark. | System event | Relay manifestation | |---|---| | Prune-blob ascending (logout sync) | Relay in district pulses; audible hum | | GM dispatch descending (event-chain incoming) | Relay glow brightens; cross-district shimmer for world-event | | Equilibrium recompute | Cross-district rhythm; world-level pulse | | Director receives tool-grant | Local relay pattern shifts | | Relay going dark | Audit-link severed; that block has gone in-between | | Lemniscate axis-rate | Environmental tempo; districts breathe in time with their gameservers | **Relay density is the legible gradient of the rings-of-access:** - **Imperial net (Ring A)** — relay-dense, constant hum, no shadow. Audit-gravity is *loud*. - **Liminal in-between (Ring B)** — sparse relays, intermittent. You can hear the gravity pulling in the distance. - **Gameworld commons (Ring C)** — relays absent or broken. *The silence itself is the signal.* Players navigate the rings *by ear and eye*, not by reading a UI. The privacy-cost of in-between is now physically experienced — you walk away from the hum, you spend lifeforce, you find the quiet places. **Dramatic surface this opens** (free, falls out of making the architecture visible): - Relay-watcher factions reading the pulses for intel - Cypherpunk-style sabotage to dim a relay and create local in-between space - Equilibrium events arriving with visible warnings (relays blaze before the GM's catalogued event spawns) - Relay-anomalies as puzzle/investigation mechanic - Players learning the *language* of pulses over hours and feeling clever for it **Architectural-honesty move.** Most surveillance-aware game design either hides the surveillance or abstracts it away. Nimmerworld makes it *impossible to forget*: the audit-system tells you when it's auditing. Players see what is watching them, hear what is reading them, and choose their proximity accordingly. **Privacy is not granted — it is achieved by walking away from the relays at lifeforce-cost.** --- **Version:** 0.7.0 | **Created:** 2026-04-26 | **Updated:** 2026-04-26 | **Origin:** Split from architecture-index.md v0.7 (2026-04-26)