Files
nimmerworld.eachpath.local/topology-and-rendering/architecture.md
2026-04-26 02:11:10 +02:00

14 KiB
Raw Blame History

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)