style-spine created, DESING retired, schemas relocated
The owl-breakfast architectural arc from 2026-04-25 night through
2026-04-26 morning. Two version-bumps landing as one commit because
they share the working-tree state and complete a coherent design-window.
v0.8 — intimate-architecture, driver-tier lock, style-spine:
* Three-tier intimacy structure (standard-rental, premium-waifu-
with-traitor-marker-and-pruning, in-between clasp) — same v0.7
machinery, opposite value-flows. Premium-net technical excellence
makes the moral-weight-of-pruning land as informed-consent ethics.
* Deletion-as-spectacle: in-net minds as pure compute; imperial
broadcasts execution-as-content; Memorialist counter-archive as
in-fiction protest against deletion-spectacle commerce.
* EVE-principle vocation-substrate of the imperial-net market: every
product produced by NPC labor; no silent feeding; body-modder
structural-tragedy generalizes to all imperial-net-feeding vocations.
World-gen Phase-2 ruleset must handle vocation-distribution.
* Clasp endgame (Phase A-E): mini-game entry → body-mod progression
→ exit-chassis → human-mesh-visible-to-pair → clasp = two-bodies-
two-meshes → dual-body-dual-mind-dual-shift cascade → automatic
hunt-pressure. Identity-as-trait-emergent made felt rather than
just structural.
* waifu.sqlite as third local store (audited counterpart to
clasp.sqlite; manual-prune mechanism with explicit-implications
consent UI as moral-gravity discipline).
* Intimacy-as-recursive-lemniscate: same machinery as dialog
(slot-tokens, cursor at axis-crossing, alignment-accumulator,
sum-strategy reduction); sex-positions as designer-fixed catalog
entries; body-parts as visible expression of trait-state.
Cross-context-consistency operationalized.
* Driver-tier locked to Gemma 4 E4B (Apache 2.0, 4.5B effective,
128K context, speech-capable) under new "tier-by-role binary-
deferred" discipline: locking requires prototype-criticality +
irreplaceable license/capability combination. Optional Ring-A
upgrade: 26B-A4B MoE for upper-consumer GPUs, single-LoRA-on-
routed-experts. Resolves 4 prior open questions (LoRA-blend →
single-LoRA-per-turn-selection driven by gesture_alignment_
accumulator; LoRA rank → benchmark-resolvable; sampling-knobs →
benchmark-resolvable; 8 Hellenic trait enumeration → canonical
wheel-mapping in style/trait-palette.md).
* style/ directory introduced: style-index.md (skeleton + spine-
rule: "trait-palette is exclusively chromatic; achromatic
reserved for UI/environment so diegetic text rendering can skip
the textbox") + style/trait-palette.md (canonical 8 traits as 4
oppositional pairs at 180° on the artist's color wheel:
Eros↔Sophrosyne, Philotes↔Dikaiosyne, Aletheia↔Moira,
Mnemosyne↔Kairos. Schoolchild-simple descriptions paired with
each Greek canonical name).
v0.9 — directory cleanup completing the arc:
* DESING-VISION.md (1899 lines, v0.1 first-pass narrative-design
doc) retired — most content absorbed across v0.4-v0.8; bare-
minimum extracts (Tonal Register + Tragic-Romantic Register +
Authorial Politics + Reference Lineage table) now live in README
so the project's identity anchor stays visible at the entry
point. Full DESING-VISION content preserved in git history.
* findings.md moved to schemas/findings.md — new top-level peer to
architecture-index.md and style/. ~20 tables of DDL drafts as
reference material; will get reviewed and progressively split
per-domain as implementation begins.
* Cross-references swept across 5 files (README,
architecture-index, authority-and-decision, runtime-engine,
style/trait-palette).
* architecture-index.md trimmed: version-footer paragraphs removed
per "git-is-changelog" discipline. From 374 → 287 lines; every
remaining line load-bearing.
The architecture is now organized for the implementation territory
ahead. Each domain a typed-contract surface; cross-references
explicit; filesystem mirrors the architecture's own typed-contract
discipline at the directory layer.
8.4 KiB
Nimmerworld — Trait Palette
The 8 personal traits, their canonical Greek names, schoolchild-simple descriptions, color-wheel positions, and motion-signatures. The trait-palette is the spine of the entire visual / linguistic / cognitive system — everything in nimmerworld either preserves the spine or violates it.
Companion to:
style-index.md,../architecture-index.md. Cross-referenced from every architecture domain file because the trait-vocabulary is what those files all run on.
The 8 traits — Greek canonical names + schoolchild descriptions
The architecture has been using Hellenic personality-virtues as the trait-cosmology since v0.4. The names are kept for their literary depth and faction-naming use. The descriptions are written at schoolchild-level so they travel through subtitles, NPC speech, tutorial text, and the universal-translator tokenizer-view without ever needing a glossary.
| Greek name | Schoolchild description |
|---|---|
| Sophrosyne | holding back when I want to act |
| Dikaiosyne | standing for what's fair |
| Philotes | loving and staying close |
| Mnemosyne | remembering what mattered |
| Aletheia | seeing what's hidden |
| Kairos | catching the right moment |
| Moira | reading what's coming |
| Eros | reaching for what I want |
Players read the descriptions in everyday play; the Greek names live in faction-naming, deep-lore, scholar-NPC speech, and Memorialist-archive context. A player can complete the entire game without ever consciously learning the Greek names — the trait-vocabulary travels through colors and descriptions. Players who lean into the depth discover the classical-philosophical lineage as a deeper-tier reward (Souls-game discipline applied to vocabulary).
The wheel — 4 oppositional pairs at 180°
The traits form 4 natural oppositional pairs. The 12-segment artist's color wheel renders these as direct complementary pairs (180° apart on the wheel) — visual contrast carries the philosophical opposition.
| Pair | The opposition | Wheel positions (180° apart) |
|---|---|---|
| Eros ↔ Sophrosyne | reaching for ↔ holding back | Red ↔ Green |
| Philotes ↔ Dikaiosyne | loving close ↔ standing fair (partial ↔ impartial) | Orange ↔ Blue |
| Aletheia ↔ Moira | seeing what's hidden ↔ reading what's coming (past-revealed ↔ future-fated) | Yellow ↔ Violet |
| Mnemosyne ↔ Kairos | remembering what mattered ↔ catching the right moment (past-dwelling ↔ present-piercing) | Red/Violet ↔ Yellow/Green |
Why this is the right move. Complementary pairs maximize perceptual contrast (Red and Green can never be confused at a glance) AND carry the trait-system's philosophical structure (the trait-pair is the moral/dramatic axis the simulation is built around). When two NPCs in conversation pulse with complementary colors, the opposition is felt — Red-Eros longing pressing against Green-Sophrosyne restraint becomes a chromatic conflict the player reads pre-verbally. The color wheel does the dramaturgy for free.
Each pair is a real philosophical axis the architecture has been quietly relying on:
- Reaching ↔ Holding — the structural tension the clasp-mechanic lives inside (you reach toward your beloved; you hold back to stay disciplined for your shift)
- Partial ↔ Impartial — the eternal classical tension of justice-vs-love (Antigone, Lear). Architecturally: love-the-bonded vs serve-the-fair
- Past-revealed ↔ Future-fated — Aletheia uncovers what was buried; Moira reads what was always coming. Time-axis bookends
- Past-dwelling ↔ Present-piercing — Memorialist-honor-the-dead vs Kairic-strike-now. Two ways of being-in-time the regime tries to police separately
The full table — color + motion-signature + description per trait
| Greek | Description | Color (canonical hue) | Wheel position | Motion-signature |
|---|---|---|---|---|
| Eros | reaching for what I want | Red | 12:00 | uneven flame-flicker |
| Philotes | loving and staying close | Orange | 1:30 | breath-rate warm pulse |
| Aletheia | seeing what's hidden | Yellow | 3:00 | clear, no pulse — still and bright |
| Kairos | catching the right moment | Yellow/Green (chartreuse) | 4:30 | lightning-flicker |
| Sophrosyne | holding back when I want to act | Green | 6:00 | steady, even pulse |
| Dikaiosyne | standing for what's fair | Blue | 7:30 | weighted slow pulse |
| Moira | reading what's coming | Violet | 9:00 | slow-thread undulation |
| Mnemosyne | remembering what mattered | Red/Violet (dusky-rose) | 10:30 | depth-shimmer |
Motion-signature paired with color provides color-blind accessibility — every trait is uniquely identifiable via two independent channels. A player with red-green color blindness still distinguishes Eros (uneven flame-flicker) from Sophrosyne (steady, even pulse) by motion alone.
Wheel layout (clockwise from 12 o'clock)
Eros
(Red)
╔═════════════╗
Mnemosyne Philotes
(R/Violet) (Orange)
│ │
Moira ────────●──── Aletheia
(Violet) (Yellow)
│ │
Dikaiosyne Kairos
(Blue) (Y/Green)
╚═════════════╝
Sophrosyne
(Green)
The wheel's natural temperature-axis aligns with the architecture's dramatic structure. Warm side (Eros, Mnemosyne, Philotes, Aletheia, Kairos) carries outward / present-active / engaged registers; cool side (Sophrosyne, Dikaiosyne, Moira) carries inward / withholding / contemplative registers. Aletheia at 3:00 sits at the brightness-zenith; Sophrosyne at 6:00 sits at the cool-balance-base; Eros at 12:00 sits at the heat-apex.
The achromatic exception — Aletheia is not white
In earlier drafts (the v0.1 design-vision doc, retired in v0.9 — preserved in git history), Aletheia was rendered as luminous-white (off-the-wheel, achromatic). v0.1 of this trait-palette places Aletheia on Yellow — the brightest chromatic hue. The metaphor of truth as illumination is preserved (Yellow is the brightest color the eye can read), and white is freed up for its proper job: rendering text and pure-light UI overlay (per style-index.md §Spine rule).
This is a deliberate constraint — the trait-palette is exclusively chromatic so that achromatic colors (white, black, grey, brown) remain reserved for non-trait roles. Aletheia is bright, not transcendent; the brightness IS the truth-revealing register.
Designer-fixed corpus — words to colors
Every word in the universal-translator's vocabulary corpus is mapped to one (or a primary + secondary) trait-coordinate. The mapping is designer-authored, fixed, universal — the same word means the same trait-color for every player and every NPC and every LLM-context.
When a player encounters a word in the world, the universal-translator's tokenizer-view renders that word in its trait-color (or fragmentary / opaque if untranslated). Over hundreds of hours of play the player learns the trait-cosmology through observation, not glossary. The corpus is the typed contract that closes the player-LLM hallucination-surface (per ../player-experience/architecture.md §Designer-fixed cosmology, player-curated arrangement).
Cross-domain rendering — where trait-colors appear
The trait-palette is rendered across many surfaces. Each surface gets specific style-rules in the relevant sub-guide:
| Surface | Sub-guide |
|---|---|
| NPC chassis pipe-flow + accents | body-feedback.md |
| Gesture-circle UI sectors | ui-elements.md |
| Universal-translator tokenizer-view word-coloring | ui-elements.md |
| Mod cosmetic accents (within trait-bearer rules) | asset-aesthetic.md |
| Diegetic relay pulses | relays.md |
| Faction heraldry | asset-aesthetic.md |
| Liminal / imperial-net shader transformations of the palette | shaders-by-register.md |
The trait-palette defined here is the canonical reference. All sub-guides import these definitions; none redefine them.
Version: 0.1 | Created: 2026-04-26 | Updated: 2026-04-26