v0.17: cel-shading-everywhere + progression-gated in-between + omnisight + hallucination-isolation

Five-file update locking in the rendering discipline + perception
architecture from the post-cell-arch art-style discovery arc.

Locked in v0.17:

(1) Cel-shading-everywhere with per-register parameter variation. One
rendering engine (Godot-native, asset-budget-friendly, ages well -
Borderlands 2009 still reads current). Three registers diverge through
outline-color + background-treatment + weathering-level, not through
engine-switching:
- Gameworld: dark heavy lines + environmental noise + high weathering
  (rust streaks, hatched dirt, ink-line cracks; hand-painted patina).
  "Surfaces carry memory" thesis preserved via hand-painted weathering.
- Liminal: painterly/soft/desaturated + progression-gated grainy-film-
  mode opening to refined-cel-shading-with-warm-skin at endgame.
- Imperial-net: lean subtle gold rim-light + clean white background +
  no weathering. Polish achieved through OMISSION, not extra rendering
  tech (Godot reality check; photorealistic-glossy-Apple-store rejected
  as not Godot's strong suite). The render-style itself becomes
  propaganda-detector - imperium's clean falsity reads as the absence
  of the world's honest decay.

(2) Progression-gated in-between visibility. "The more you mod your body
& gain in-between-knowledge, the better your view gets." Early game:
grainy film mode + restricted view range. Endgame: clean refined-cel-
shading with full view of the beloved. Visual-fidelity = dual-gating
made visible (knowledge-gate + material-gate per Clasp-endgame discovery
discipline literally renders as the clarity of the in-between view).
The endgame's deepest reward IS the clear seeing of the beloved's body.

(3) Dual-axis clasp-fidelity model. The asymmetric-clasp from bodies.md
v0.1 was witnessed-axis only (how vividly the OTHER manifests). Now
extended with witness-axis (how clearly YOU can see):
- Witness-axis: YOUR body-mods (resistance-knowledge mods) + accumulated
  in-between-knowledge (Memorialist fragments, Aletheia-Waker tokens,
  Clasp-Underground recognition-marks)
- Witnessed-axis: THEIR foreclosure-status (caste-tier x imperial-care)
- Combined: maximum-vivid-clasp requires BOTH you to have invested in
  the seeing AND your beloved to be uncaptured-enough to be seen. Two
  refusals required for the full witness.
- Per-pair calibration multiplier: the longer the love, the clearer the
  seeing (mechanically-encoded marriage-deepening).
- Mod-economy parallel-track: imperial-elevation mods (flesh-loss, deva-
  ascent) vs. resistance-knowledge mods (in-between-visibility). Two
  opposing progressions both expressed as mod-acquisition. The body-
  modder structural-tragedy class gets a redemptive-mod counter-class.

(4) Omnisight architecture for NPC perception. Per-NPC virtual cameras
in Godot feeding rendered POV-frames into local VL-Gemma 4 driver-tier
(multimodal vision-language capability of the Gemma 4 E4B model locked
in v0.8). NPCs literally SEE the visible world, not via geometric
metadata-perception. Pairs with cell-arch checksum-discovery as the
trigger-layer:
- Cell-checksum check: micro-seconds, fires on NPC entering cell
- Checksum-mismatch: clean signal, micro-seconds
- VL-camera renders POV scene: milliseconds
- VL-Gemma processes image: 100s of milliseconds
- NPC behavior responds to seen-content: next-shift / next-crossing
Cheap trigger, expensive understanding, bounded by event-frequency.
Most NPCs most of the time = no camera-fire, no VL-inference. Camera-
trigger sources strictly bounded: checksum-mismatch + hard-signals from
player + overseer-triggers + drone-perception with clear boundaries.

(5) Hallucination-isolation discipline (load-bearing). Visual perception
= behavior-modulating-only; never canon-generating. VL models hallucinate;
if those hallucinations enter the canonical record, they propagate
through the lemniscate's recursive integration, become referenced by
other canon-rows, become load-bearing in narrative coherence, cannot be
untangled later. Bleed-over into oblivion is the precise risk. Two
parallel streams in the NPC's lemniscate:
- Text + gesture summary (existing canon): canonical, flows into
  event_canon_summaries, propagates to Compositor, integrates into
  trait-vector
- Visual context (new omnisight-flagged): ephemeral, flagged on
  lemniscate, IGNORED in per-crossing summary, never propagates upward.
  Modulates current-turn driver-context-pull only.
Preserves three commitments that depend on text/gesture-derived canon:
Compositor narrative-coherence at scale, Memorialist-archive truth-
claims, mind-pool soul-recycling.

Wealthy-degen waifu-folder exception: opt-in checkbox; player chooses
to fill private folder with sex-pictures from clasp-scenes; stored
locally; READ-ONLY-BY-PLAYER (folder content does NOT flow back into
NPC contexts, world-canon, Compositor, mind-pool, or any other system);
quarantined dead-end storage; aesthetic-collection only.

Two Still-open questions sharpened with v0.17-anchor notes:
- Shader-trait modulation implementation: cel-shading caps perf-budget
  more predictably than PBR; rendering-consistency improves.
- Continuous visual feedback policy: visual-as-ephemeral-flag is
  firewalled from canonical state; cosmetic-layer can be permissive.

Files:

- runtime-engine/architecture.md: NEW Omnisight section (~80 lines) covering
  the pipeline, camera-trigger sources, hallucination-isolation discipline,
  the two parallel streams (canonical text/gesture vs. ephemeral visual),
  the wealthy-degen waifu-folder exception, what-this-retires (geometric
  perception extension + VL-canon-pollution), what-this-resolves/sharpens
  (continuous visual feedback policy), and four open questions (per-NPC
  VL-inference rate-limit, VL-Gemma camera resolution + frame-rate, NPC
  progression-state for witness-axis, multi-NPC observing same event).

- topology-and-rendering/architecture.md: Three-shader philosophy table
  rewritten as cel-shading-with-parameter-variation (outline + background
  + weathering per register); Cross-register rendering color-treatment
  table updated; clasp candlelight-in-fog now distinguishes external
  signature (visible to liminal-inhabitants) from internal mesh (visible
  only to clasp-pair via consent-as-rendering, gated by witness-
  progression); body-tier silhouette readability and in-between mesh-skin
  refinement-within-the-style added. Version bumped 0.7.0 -> 0.8.0.

- identity-and-personhood/bodies.md: NEW Dual-axis clasp-fidelity
  subsection added under Asymmetric clasp; per-pair calibration
  multiplier and mod-economy parallel-track captured; render-discipline
  alignment with cel-shading liminal-register; new Asymmetric-witnessing
  open question added. Version bumped 0.1 -> 0.2.

- political-register/world-generation.md: L4 Cell ruleset extended with
  per-register rendering note (cel-shading-everywhere-with-parameter-
  variation discipline applied at the cell layer).

- architecture-index.md: NPC perception bubbles retire-line refined to
  include cell-checksum-trigger + omnisight VL-camera; Geometric
  perception retire-line extended with omnisight; new VL models
  polluting world-canon retire-line added; Shader-trait modulation
  implementation Still-open sharpened with v0.17 cel-shading note;
  Continuous visual feedback policy Still-open sharpened with v0.17
  hallucination-isolation note; v0.17 history entry added covering all
  five lock-ins. Version bumped 0.16 -> 0.17.

Authored 2026-04-26 same Sunday continuing - dafit + chrysalis.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
chrysalis
2026-04-26 15:19:41 +02:00
parent 88885fe6b1
commit c892013bfa
5 changed files with 124 additions and 20 deletions

File diff suppressed because one or more lines are too long

View File

@@ -106,6 +106,23 @@ Which produces the cosmology's most beautiful cruelty: **the deepest love availa
The romantic clasp is, in this register, **a peasant-healing technology**. Most effective among those who haven't been hollowed out yet. As a citizen climbs the imperial ladder, *capacity to be witnessed* diminishes. The deva-pinnacle has everything — **except the ability to be fully seen by another**. The overseer has *nothing*. The romantic clasp is, in this register, **a peasant-healing technology**. Most effective among those who haven't been hollowed out yet. As a citizen climbs the imperial ladder, *capacity to be witnessed* diminishes. The deva-pinnacle has everything — **except the ability to be fully seen by another**. The overseer has *nothing*.
### Dual-axis clasp-fidelity (witness × witnessed)
The asymmetric-clasp model above is the **witnessed-axis** — how vividly the OTHER manifests in your view. There is also a **witness-axis** — how clearly *you* can see the in-between in the first place. The two axes combine to determine what each clasp actually looks like.
| Axis | Determined by | What it controls |
|---|---|---|
| **Witness-axis** (your view) | YOUR body-mods (resistance-knowledge mods that breach the imperial firewall) + accumulated in-between-knowledge (Memorialist-archive fragments, Aletheia-Waker tokens, Clasp-Underground recognition-marks) | How clearly *you* can see the in-between (early game: grainy film mode + restricted view range → endgame: clean refined-cel-shading with full view) |
| **Witnessed-axis** (their mesh) | THEIR foreclosure-status (caste-tier × imperial-care-intensity), per the §Asymmetric clasp table above | How vividly the OTHER manifests (luminous → barely-visible) |
**Combined:** maximum-vivid-clasp requires *both* you to have invested in the seeing AND your beloved to be uncaptured-enough to be seen. **Two refusals required for the full witness.** A fully-progressed slum-witness viewing a slum-beloved = the world's deepest possible mutual-seeing. A fully-progressed witness viewing a deva-pinnacle = the player has earned the seeing only to discover *there's almost nothing there to see*. An early-game witness viewing a luminous slum-beloved = grainy view of an authentic-self body — *the first crack in imperial visual-monopoly*; emotionally weighty precisely because it's barely-visible.
**Per-pair calibration multiplier.** The existing canon (per [`./architecture.md`](./architecture.md) §The clasp endgame: *"Clasp-partners' gesture-mapping calibrations integrate post-clasp; the integrated calibration-signature is preserved across body-deaths in consciousness-archive"*) gives a *per-beloved* multiplier on top of general progression. **The longer the love, the clearer the seeing.** Mechanically-encoded marriage-deepening: the same beloved across many clasps appears progressively more clearly, even if the player's general-progression hasn't moved. *A 200-hour clasp-pair sees each other in a fidelity no one-night-stand can ever reach.*
**Mod-economy parallel-track.** §Mod-progression as flesh-loss above describes the imperial-elevation track (mods that erase your flesh in pursuit of deva-pinnacle). The witness-axis introduces a **resistance-knowledge track** — mods that breach the imperial firewall and let you see another's flesh in the in-between. The body-modder structural-tragedy class gets a **redemptive-mod counter-class**. The player's mod-economy decisions become *which kind of progress am I pursuing* — imperial-elevation (visibly erasing your own flesh while ascending the wheel) vs. resistance-knowledge (gaining the capacity to truly see your beloved). **Two opposing progressions both expressed as mod-acquisition; the player chooses with each acquisition.**
**Render-discipline alignment.** The visual-fidelity rendering of the witness-axis is the cel-shading liminal-register's progression-gated grainy-film-mode opening to refined-cel-shading-with-warm-skin (per [`../topology-and-rendering/architecture.md`](../topology-and-rendering/architecture.md) §Three-shader philosophy + §Cross-register rendering). **Visual-fidelity = dual-gating made visible.** Knowledge-gate + material-gate (per the Clasp-endgame discovery discipline locked in chill-design-talk) literally renders as the clarity of the in-between view.
## Technical rendering implications ## Technical rendering implications
Skin needs its own shader stack. The world is rendered in marble + obsidian + chroma + gold + rust — surface materials, hard finishes, manufactured palettes. The in-between human-mesh real-skin must be rendered in a **completely distinct technique** — subsurface scattering at the highest-quality budget the rule catalogue permits, pore-level detail, the soft-warm-asymmetric-imperfection no imperial fabrication-vat would produce. Skin needs its own shader stack. The world is rendered in marble + obsidian + chroma + gold + rust — surface materials, hard finishes, manufactured palettes. The in-between human-mesh real-skin must be rendered in a **completely distinct technique** — subsurface scattering at the highest-quality budget the rule catalogue permits, pore-level detail, the soft-warm-asymmetric-imperfection no imperial fabrication-vat would produce.
@@ -155,7 +172,8 @@ Connects to the existing key-move in [`../architecture-index.md`](../architectur
- **Rule-catalogue-specific budgets.** Vertex-caps per tier; texture-resolution per material register; collision-mesh complexity per body-tier; shader-stack budgets for the in-between mesh. Pending: rule catalogue when written (likely `../style/asset-budget.md` or similar). - **Rule-catalogue-specific budgets.** Vertex-caps per tier; texture-resolution per material register; collision-mesh complexity per body-tier; shader-stack budgets for the in-between mesh. Pending: rule catalogue when written (likely `../style/asset-budget.md` or similar).
- **Cross-tier clasp asymmetry handling.** Phase D of the clasp endgame currently describes a *symmetric* dual-body union. Does mesh-fidelity asymmetry break the existing mechanic, or does the existing mechanic accommodate it gracefully? Pending: review against [`./architecture.md`](./architecture.md) §The clasp endgame Phase D when next architecture-time happens. - **Cross-tier clasp asymmetry handling.** Phase D of the clasp endgame currently describes a *symmetric* dual-body union. Does mesh-fidelity asymmetry break the existing mechanic, or does the existing mechanic accommodate it gracefully? Pending: review against [`./architecture.md`](./architecture.md) §The clasp endgame Phase D when next architecture-time happens.
- **Service-body sub-tier specifics.** What range of seams + bolts + cosmetic flesh-illusion variations do service-bodies span? Where are the line-cases between service-body and slum-tier? Pending: detail work alongside vocation-substrate. - **Service-body sub-tier specifics.** What range of seams + bolts + cosmetic flesh-illusion variations do service-bodies span? Where are the line-cases between service-body and slum-tier? Pending: detail work alongside vocation-substrate.
- **Asymmetric-witnessing across player-NPC pairs.** When my witness-progression is high and yours is low, *I see you fully but you cannot see me back*. **Heartbreak-engineering compounds the asymmetric-clasp.** The experienced lover bears the full weight of partial-mutual-visibility; the inexperienced lover has been seen but cannot return the gift. Specific mechanic for how this is rendered (does the inexperienced see static-noise where their beloved should be? a darker silhouette? a partial-mesh?), and whether NPCs accumulate witness-progression through their own clasps (per the omnisight architecture in [`../runtime-engine/architecture.md`](../runtime-engine/architecture.md) §Omnisight), pending design pass.
--- ---
**Version:** 0.1 | **Created:** 2026-04-26 | **Updated:** 2026-04-26 **Version:** 0.2 | **Created:** 2026-04-26 | **Updated:** 2026-04-26

View File

@@ -93,7 +93,7 @@ Per-cell-category rules. Each cell-category has a generator that emits the cell'
Outputs per cell: Outputs per cell:
- **Asset-selection** (one per cell, hard limit; container, wall-hook, or debris-shader-trick per the cell-arch arc in this Sunday's discovery) - **Asset-selection** (one per cell, hard limit; container, wall-hook, or debris-shader-trick per the cell-arch arc in this Sunday's discovery)
- **Per-register content**: three contents per cell (gameworld / liminal / imperial-net) per [`../topology-and-rendering/architecture.md`](../topology-and-rendering/architecture.md) §Three-shader philosophy. Per `cells.wall_content_per_register` (per `../architecture-index.md` §Mapping to phoebe). - **Per-register content**: three contents per cell (gameworld / liminal / imperial-net) per [`../topology-and-rendering/architecture.md`](../topology-and-rendering/architecture.md) §Three-shader philosophy. Per `cells.wall_content_per_register` (per `../architecture-index.md` §Mapping to phoebe). **Per-register rendering follows the cel-shading-everywhere-with-parameter-variation discipline (locked v0.17)**: dark-outlines + environmental-noise + high-weathering for gameworld; painterly-soft + progression-gated grainy-film-mode → refined-cel-shading-with-warm-skin for liminal; gold-rim-light + clean-white + no-weathering for imperial-net.
- **Initial checksum**: hash of the cell's content; subsequent NPC-entries compare against this; mismatch fires *"clean signal"* for discovery (per cell-arch arc's checksum-based-discovery design — replaces the perception-bubble pattern). - **Initial checksum**: hash of the cell's content; subsequent NPC-entries compare against this; mismatch fires *"clean signal"* for discovery (per cell-arch arc's checksum-based-discovery design — replaces the perception-bubble pattern).
- **Container/wall-hook/debris discipline**: items in cells must be in a container OR hooked-on-wall; everything else is debris (shader-trick, no persistent state). **No orphan-objects.** Containers + wall-hooks are zone-slots applied at item-level (the zone primitive scaling one tier deeper). - **Container/wall-hook/debris discipline**: items in cells must be in a container OR hooked-on-wall; everything else is debris (shader-trick, no persistent state). **No orphan-objects.** Containers + wall-hooks are zone-slots applied at item-level (the zone primitive scaling one tier deeper).

View File

@@ -210,6 +210,85 @@ Every midaxis crossing fires the LLM driver-turn(s) for active slots. **Lifeforc
- Concurrent LLM calls per-NPC → sequenced LLM calls per-cursor-position - Concurrent LLM calls per-NPC → sequenced LLM calls per-cursor-position
- Polling event-channels at zone-rate → atomic crossing-event with O(N_slots) flag-scan - Polling event-channels at zone-rate → atomic crossing-event with O(N_slots) flag-scan
## Omnisight — NPC visual perception via VL-Gemma + virtual cameras
NPCs perceive the visible world *literally* — not via geometric metadata-perception but via per-NPC virtual cameras (Godot) feeding rendered POV-frames into the local VL-Gemma 4 driver-tier (the multimodal vision-language capability of the Gemma 4 E4B model locked in v0.8). What an NPC "sees" is what the VL-LLM interprets from the camera's image.
This is the perception architecture's deepest commitment. It pairs with the cell-arch checksum-discovery (per [`../political-register/world-generation.md`](../political-register/world-generation.md) §L4 Cell ruleset) as its **trigger-layer**: cell-checksum-mismatch fires the *"clean signal"* that activates the NPC's POV camera, which renders, which feeds VL-Gemma, which produces a visual interpretation that modulates the NPC's current-turn behavior. **Cheap trigger, expensive understanding, bounded by event-frequency.**
### The pipeline
| Layer | Cost | Fires when |
|---|---|---|
| Cell-checksum check | µs | NPC enters cell |
| Checksum-mismatch → "clean signal" | µs | Cell state ≠ expected hash |
| VL-camera renders POV scene | ms | Clean signal + perception-relevant context |
| VL-Gemma processes image → interpretation | 100s of ms | After camera renders |
| NPC behavior responds to seen-content | next-shift / next-crossing | After interpretation |
Most NPCs most of the time: no camera-fire, no VL-inference. **Active-perception-budget is bounded by event-frequency, not NPC-count.** A 100+ NPC city is feasible because most NPCs are running shift-routines on rails with no cell-state-changes triggering perception.
### Camera-trigger sources (locked)
Camera renders + VL-inference fire **only on**:
- **Cell-checksum-mismatch** — cell-state-change discovered on entry (the cell-arch's primary discovery-trigger)
- **Hard-signals from player** — `clasp_initiate`, gesture-hardstops, plug-in conversation request, etc.
- **Overseer triggers** — audit-sweep, surveillance-cycle, patrol-perception-on-route
- **Drone perception** — clear boundaries + rulesets per drone-class (drones have their own perception-budget governed by their imperial-class spec)
Everything else: NPC running on rails, shift-routine, no camera-fire, no VL-inference. **Bounded compute by construction.**
### Hallucination-isolation discipline (load-bearing)
VL models hallucinate. If those hallucinations enter the canonical record, they propagate through the lemniscate's recursive integration → become referenced by other canon-rows → become load-bearing in the world's narrative coherence → **cannot be untangled later**. *Bleed-over into oblivion* is the precise risk.
The discipline that prevents this:
> **Visual perception = behavior-modulating-only; never canon-generating.**
Visual context flows on a *separate stream* from the canonical text + gesture summary, with a strict firewall between them:
| Stream | Source | Persistence | Purpose |
|---|---|---|---|
| **Text + gesture summary** (existing canonical pipeline) | STT + gesture-circle-presses + per-token trait-coordinates per §Gesture-alignment as recursive-lemniscate | Canonical; flows into `event_canon_summaries`; propagates to Compositor; integrates into trait-vector | What the NPC *remembers* and what becomes world-canon |
| **Visual context** (omnisight-flagged, new) | VL-Gemma processing POV camera-render | **Ephemeral**; flagged on the lemniscate; **ignored in the per-crossing summary**; never propagates upward | What the NPC *sees in this moment*; modulates current-turn `driver_context_pull` only |
**Concretely:** the visual interpretation is appended to `driver_context_pull` for the NPC's next turn (so the NPC can react to what it sees), but it is **not** appended to the `gesture_alignment_accumulator`'s sum-strategy reduction at the axis-crossing, and it is **not** included in the `event_canon_summaries` row that the Compositor pulls from `transient_waiting_flag`. **The visual content lives one turn and dies.**
This preserves three architectural commitments that depend on text/gesture-derived canon:
- *Compositor narrative-coherence at scale* — Compositor never sees VL-output; only deterministic text/gesture-derived summaries. **Hallucination-firewall preserves the canon-coherence Compositor depends on.**
- *Memorialist-archive truth-claims* — Memorialists index cell-checksum-divergence (canonical, deterministic), NOT VL-generated visual-content. The archive's evidentiary value depends on this distinction.
- *Mind-pool soul-recycling* — when a mind cycles through the pool and is redistributed into a new body, the trait-vector that persists is text/gesture-derived. **VL hallucinations do not survive transmigration; they were ephemeral by construction.**
### Wealthy-degen waifu-folder exception
A specific opt-in special case for player-stored visual-content:
- A wealthy player who already has waifu-dialog stored (per `../political-register/architecture.md` §The vocation-substrate of the imperial-net market) can check a box to allow **sex-pictures storage in a private folder** from clasp-scenes.
- Stored locally (their machine, their problem — privacy, storage, content).
- **Read-only-by-player** — folder content does **not** flow back into NPC contexts, world-canon, the Compositor, the mind-pool, or any other system.
- **Quarantined dead-end storage** — aesthetic-collection only.
The folder is architecturally inert with respect to the rest of the system. It exists *for the player*; it does not exist *for the world*.
### What this retires
- *Geometric perception (cone, radius, LOS)* → already retired by zone slot-occupancy + subscriber-event-emission; **omnisight extends the retirement** by giving NPCs *literal* visual perception within those subscribed events, not metadata-perception
- *VL models polluting world-canon* → text/gesture-derived summaries are the only canonical input; VL is behavior-modulating-ephemeral-flag-only; player-stored visual-content is read-only-by-player quarantined storage
### What this resolves / sharpens
- *Continuous visual feedback policy* (architecture-index Still-open) → with cel-shaded bodies (per `../topology-and-rendering/architecture.md` §Three-shader philosophy) and visual-as-ephemeral-flag, the body-shader pulses are *legible without canon-pollution risk*. The visual-feedback policy can be permissive at the cosmetic layer because it is firewalled from canonical state.
### Open questions
- **Per-NPC VL-inference rate-limit** — how many camera-renders + VL-inferences per second affordable per active NPC at MMO scale? Pending: benchmark against Gemma 4 E4B VL-inference latency on typical-deployment hardware.
- **VL-Gemma camera resolution + frame-rate** — what camera-budget per NPC fits the rule-catalogue? Pending: rule catalogue + benchmark.
- **NPC progression-state for witness-axis** — how does an NPC accumulate in-between-knowledge that drives their dual-axis-clasp witness-fidelity (per `../identity-and-personhood/bodies.md` §Asymmetric clasp / §Dual-axis clasp-fidelity)? Their own clasps? Fragments encountered? Caste-class-default? Pending: design pass.
- **Multi-NPC observing same event** — each NPC runs independent VL-inference; how do their perceptions combine into a shared event-record? *(Connects to Compositor narrative-coherence-at-scale Still-open.)* Probable answer under the hallucination-isolation discipline: *they don't combine* — each NPC's visual context is private to their own next-turn `driver_context_pull`; the shared event-record is built from text/gesture-summaries only. Worth confirming explicitly.
## Zone taxonomy (v1 starter set) ## Zone taxonomy (v1 starter set)
| Zone type | Register | Slots | Executor | Persistence | | Zone type | Register | Slots | Executor | Persistence |

View File

@@ -89,9 +89,9 @@ Color paired with motion-signature ensures color-blind accessibility — the tra
| Register | Color treatment | | Register | Color treatment |
|---|---| |---|---|
| **Gameworld** | Full PBR; trait-colors coexist with material surfaces | | **Gameworld** | Cel-shaded flat-color regions; trait-colors *more* legible (flat-color regions don't fight per-NPC trait-color modulation; pulses read clean against the comic-book base) |
| **Liminal** | Vague baseline shader, but trait-colors *more* legible (vagueness concentrates attention on identity-signals) | | **Liminal** | Vague baseline shader; **progression-gated visibility** (grainy-restricted-view at low witness-progression opening to clean refined-cel-shading at endgame); trait-colors *more* legible (vagueness concentrates attention on identity-signals; consent-as-rendering manifests real-skin-warm-cel-shading in the clasp-mesh per `../identity-and-personhood/bodies.md` §The in-between human-mesh) |
| **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 | | **Imperial net** | Cel-shaded with **gold rim-light outlines** + **clean white backgrounds** + **no weathering**; 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-politics
@@ -124,17 +124,23 @@ Base palette example: ~8 torso variants × ~6 arm-pairs × ~6 leg-pairs × ~10 h
## Visual rendering: three-shader philosophy + color-language ## Visual rendering: three-shader philosophy + color-language
**One world, three shaders, three political realities.** **One world, three shaders, three political realities — one rendering engine (cel-shading) with per-register parameter variation.**
| Register | Shader treatment | What it says | The rendering discipline (locked v0.17): **cel-shading is the engine for all three registers** (Godot-native, asset-budget-friendly, ages well — Borderlands 2009 still reads current). The registers diverge through **outline-color + background-treatment + weathering-level**, not through engine-switching. Photorealistic-glossy-Apple-store rendering for imperial-net was rejected (not Godot's strong suite); the imperium's polished-falsity is achieved through *omission* (no weathering, no environmental noise, gold-rim-light-on-clean-white) rather than *extra rendering tech*.
|---|---|---|
| **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. | Register | Outline | Background | Weathering | What it says |
|---|---|---|---|---|
| **Gameworld** | Dark heavy lines | Marble + obsidian + rust + chroma; environmental noise | High (rust streaks, hatched dirt, ink-line cracks; hand-painted patina) | *Embodied life with history. Surfaces carry memory.* (Cel-shading preserves this thesis via hand-painted weathering — different visual grammar, same thesis intact.) |
| **Liminal** | Painterly / soft / desaturated; **progression-gated grainy-film-mode at low witness-progression** opening to refined-cel-shading-with-warm-skin at endgame | Blurred ambient; muted | Low (atmospheric only) | *Contested frontier. Privacy-through-opacity. Focus-to-see. The clarity of vision IS the resistance-progression made visible — the player earns the seeing of the beloved through body-mods + in-between-knowledge accumulation.* |
| **Imperial net** | **Lean subtle gold rim-light** | **Clean white** (no environmental noise) | **None** (the imperium scrubs its presentation) | *Polished propaganda; seduction-by-omission. The render-style itself is propaganda-detector — the imperium's clean-falsity reads as the absence of the world's honest decay. Walking from gameworld into imperial-net is a render-style-shift the player feels physically.* |
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). **Layered with color-language** (per the Color-language section above). Trait-modulation means two NPCs in same pipe see measurably different things. Cel-shading flat-color regions *amplify* the trait-color-grammar (color-as-language gets more legible, not less).
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 — the *external* signature visible to other liminal-inhabitants. The *internal* mesh-with-real-skin per `../identity-and-personhood/bodies.md` §The in-between human-mesh is visible only to the clasp-pair, manifested through consent-as-rendering, gated by the witness-progression that determines whether the view is grainy-restricted or clean-refined.)
**Body-tier silhouette readability** (per `../identity-and-personhood/bodies.md` §The body-caste gradient): strong cel-shading outlines + flat-color regions make caste-tier *legibly visible at silhouette-distance*. Class-stratification gets a render-pipeline built for it.
**The in-between mesh-skin distinction** (visible only inside the clasp): refined-cel-shading-with-warm-skin (softer outlines, warmer cel-shading bands, hand-painted blush, subtle subsurface tint within the cel-shading vocabulary). Reads as *real* against the *flat-comic-book* world bodies — distinguishability via *refinement-within-the-style*, not *style-switching*. Asset-budget benefit: clasp-scenes are infrequent and bounded, so the team can spend extra detail there without straining the rule-catalogue elsewhere.
### Diegetic relays — the architecture's heartbeat made legible ### Diegetic relays — the architecture's heartbeat made legible
@@ -170,4 +176,4 @@ Players navigate the rings *by ear and eye*, not by reading a UI. The privacy-co
--- ---
**Version:** 0.7.0 | **Created:** 2026-04-26 | **Updated:** 2026-04-26 | **Origin:** Split from architecture-index.md v0.7 (2026-04-26) **Version:** 0.8.0 | **Created:** 2026-04-26 | **Updated:** 2026-04-26 | **Origin:** Split from architecture-index.md v0.7 (2026-04-26); cel-shading-everywhere + per-register parameter variation locked v0.17 (2026-04-26)