Files
nimmerworld.eachpath.local/style/trait-palette.md
dafit 5f216aaf5f v0.8 + v0.9 — intimate-architecture absorbed, driver-tier locked,
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.
2026-04-26 04:31:13 +02:00

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