introduce nimmerworld/style/ — visual-language as its own typed contract Style is a cross-cutting concern (trait-palette touches at minimum 5 of the 9 architecture domains); it deserves its own typed-contract surface, mirroring the architecture-index → 9 domain files pattern.
This commit is contained in:
112
style/trait-palette.md
Normal file
112
style/trait-palette.md
Normal file
@@ -0,0 +1,112 @@
|
||||
# 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`](./style-index.md), [`../architecture-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 (DESING-VISION v0.1), 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`](./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`](../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
|
||||
Reference in New Issue
Block a user