feat: Initial NimmerSky documentation

- ARCHITECTURE-RESEARCH.md: Three-system landscape analysis (Mantella/CHIM/SkyrimNet)
  - Context bleed analysis and fixes
  - Oghma Infinium RAG documentation
  - Nimmerverse integration architecture
- inference_architecture_plan.txt: Deployed inference architecture
  - Euryale-70B (dialogue) on Theia:31001
  - Gemma-27B (structured JSON) on Dioscuri:31004
  - Qwen3-VL-8B (vision) on Dioscuri:31005
- gameplay_stack.txt: Modlist configuration
- gameplay_dependencies.txt: Mod dependencies
- Mod priority/status tracking

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
dafit
2026-03-18 15:25:54 +01:00
commit 4058558b11
5 changed files with 3035 additions and 0 deletions

File diff suppressed because it is too large Load Diff

261
ARCHITECTURE-RESEARCH.md Normal file
View File

@@ -0,0 +1,261 @@
# NimmerSky Architecture Research
Research findings from 2026-03-18 session exploring the Skyrim AI landscape and nimmerverse integration opportunities.
---
## The Three-System Landscape
| System | Strength | Weakness | Architecture |
|--------|----------|----------|--------------|
| **Mantella** | Established, stable, wide adoption | Older architecture | External Python server |
| **CHIM** | Oghma Infinium RAG, knowledge gating | Windows/WSL2 dependency | Dwemer Distro (Debian VM) |
| **SkyrimNet** | Native SKSE, action system, OmniSight | No lore RAG, context bleed | C++ DLL + Inja templates |
**Our approach**: Harvest the best from each — SkyrimNet's game integration, CHIM's lore database, nimmerverse's memory substrate.
---
## SkyrimNet Context Bleed Analysis
### Source Location
```
/home/dafit/Downloads/SkyrimNet-beta17.1/SKSE/Plugins/SkyrimNet/prompts/
```
### The Problem
NPCs omnisciently know the player's name and events they didn't witness.
### Root Cause
The `player` object is **globally available** to all NPC prompts without knowledge gating.
**Key files with leakage:**
| File | Line | Issue |
|------|------|-------|
| `submodules/character_bio/0600_relationships.prompt` | 7 | `Travel History with {{ player.name }}` |
| `submodules/character_bio/0010_header.prompt` | 8, 22, 24, 28, 30 | `{{ player.name }}` / `{{ decnpc(player.UUID).name }}` |
| `components/context/scene_context.prompt` | Various | Player references in nearby actor descriptions |
### Event History (Partial Isolation)
```inja
{% set _event_filter = append(_event_filter, npc.UUID) %}
{% set events = get_recent_events(_event_count, _event_filter) %}
```
Events ARE filtered by NPC UUID — but the implementation of `get_recent_events` is in C++ (SkyrimNet.dll), unclear if it's truly per-NPC witnessed events.
### Potential Fixes
**Level 1 - Template Hack:**
```inja
{% if has_memory_tag(npc.UUID, "met_player") %}
{% set known_player_name = player.name %}
{% else %}
{% set known_player_name = "the stranger" %}
{% endif %}
```
**Level 2 - Memory Check:**
Add C++ decorator `npc_knows_player_name(uuid)` that queries memory system.
**Level 3 - Nimmerverse Substrate:**
Route all "what does NPC X know about Y" through external memory service.
---
## Oghma Infinium (CHIM's RAG System)
### What It Is
1900+ tagged entries of Tamrielic lore with knowledge class filtering.
### Source
**Google Sheets (Open/Downloadable):**
https://docs.google.com/spreadsheets/d/1dcfctU-iOqprwy2BOc7___4Awteczgdlv8886KalPsQ/
### Knowledge Class Taxonomy
| Category | Examples | Purpose |
|----------|----------|---------|
| **Racial** | `nord`, `argonian`, `khajiit`, `darkelf`, `redguard` | Cultural knowledge |
| **Profession** | `blacksmith`, `scholar`, `mage`, `alchemist`, `merchant` | Trade knowledge |
| **Location** | `whiterun`, `rift`, `eastmarch`, `haafingar`, `solstheim` | Geographic knowledge |
| **Faction** | `thieves_guild`, `companions`, `dark_brotherhood`, `college` | Organizational secrets |
| **Special** | `charactername`, `knowall` | Edge cases |
### Content Sheets
- Knowledge Classes Reference (taxonomy)
- Vanilla NPCs (NPC → class mappings)
- Visual Descriptions
- Dynamic Oghma
- Groups/Lore/Books
- Figures/Gods
- Artifacts, Armor/Weapons, Items, Spells, Creatures
- Location sheets (one per Hold)
### Multi-Tag Intersection
NPCs receive lore from **overlapping domains**:
- Whiterun blacksmith: `[blacksmith] ∩ [nord] ∩ [whiterun]`
- Riften fence: `[merchant] ∩ [thieves_guild] ∩ [rift]`
### Embedding System
Uses **Minime-T5** for vector embeddings.
---
## SkyrimNet Memory System
### Documentation
https://goncalo22.github.io/SkyrimNet-GamePlugin/Memory%20System/memory-recall
### Storage Architecture
- **Database**: SQLite with HNSW vector indexing (per-NPC files)
- **Embeddings**: MiniLM-L6-v2 (384-dimensional)
- **Limits**: 1000 memories/NPC, minimum importance 0.2
### Memory Data Structure
```json
{
"summary": "Brief description",
"detailed_description": "Full narrative",
"emotion": "joyful|angry|fearful|sad|neutral|...",
"importance_score": 0.0-1.0,
"tags": ["people", "places", "items", "activities"],
"memory_type": "EXPERIENCE|RELATIONSHIP|KNOWLEDGE|TRAUMA|JOY|...",
"embedding": [384-dimensional vector]
}
```
### Retrieval Scoring Weights
| Signal | Weight |
|--------|--------|
| Semantic similarity | 0.35 |
| Temporal proximity | 0.20 |
| Actor involvement | 0.20 |
| Emotional match | 0.10 |
| Keyword relevance | 0.10 |
| Location match | 0.05 |
### Memory Formation Triggers
- Conversations
- Combat encounters
- Item transactions
- Proximity to notable actions
- Grouped into segments (60min gap, 10-480min duration, 5-200 events)
---
## Nimmerverse Integration Architecture
### The Vision
SkyrimNet as **game interface**, nimmerverse as **cognitive substrate**.
```
┌─────────────────────────────────────────────────────────────┐
│ NIMMERVERSE SUBSTRATE │
│ │
│ ┌──────────────────┐ ┌──────────────────────────────────┐ │
│ │ phoebe-dev │ │ iris-dev │ │
│ │ PostgreSQL │ │ ChromaDB │ │
│ │ :35432 │ │ :35000 │ │
│ │ │ │ │ │
│ │ • NPC relations │ │ • Oghma Infinium (lore vectors) │ │
│ │ • Knowledge │ │ • NPC Memories (migrated) │ │
│ │ classes │ │ • 384-dim MiniLM embeddings │ │
│ │ • Event log │ │ │ │
│ │ • Who knows whom │ │ │ │
│ └──────────────────┘ └──────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ nats-dev │ │
│ │ :30000 │ │
│ │ │ │
│ │ • Memory events │ │
│ │ • Gossip pubsub │ │
│ │ • Real-time │ │
│ └─────────────────┘ │
└─────────────────────────────────────────────────────────────┘
┌─────────────────┐
│ SkyrimNet │
│ │
│ • Query lore │
│ • Query memory │
│ • Log events │
│ • Get classes │
└─────────────────┘
```
### Migration Path
**Phase 1: Oghma Infinium Import**
1. Download CSV from Google Sheets
2. Load knowledge classes into PostgreSQL
3. Embed lore entries with MiniLM-L6-v2
4. Store in ChromaDB with class metadata
**Phase 2: Memory Migration**
1. Create ChromaDB collection for NPC memories
2. Match SkyrimNet's data structure
3. Replicate scoring weights in retrieval
4. Add NPC UUID to all memories (enables cross-NPC queries)
**Phase 3: Knowledge Gating Service**
1. Build service that answers "What does NPC X know about topic Y?"
2. Combines: Knowledge classes + Lore retrieval + Memory search
3. Expose via MCP or HTTP for SkyrimNet integration
**Phase 4: Gossip Network**
1. NATS pubsub for memory propagation
2. When NPCs interact, memories can spread (with distortion)
3. "Lydia told Farengar about the dragon attack" becomes queryable
### Benefits Over Current Architecture
| Feature | SkyrimNet Native | Nimmerverse Integration |
|---------|-----------------|------------------------|
| Memory storage | Per-NPC SQLite | Unified ChromaDB |
| Cross-NPC queries | Not possible | "Who witnessed X?" |
| Lore grounding | LLM training only | Oghma Infinium RAG |
| Knowledge isolation | Global `player` leaks | Per-NPC class filtering |
| Gossip propagation | None | NATS-based network |
| Infrastructure | Windows-compatible | Linux native |
---
## Key Resources
### SkyrimNet
- Source: `/home/dafit/Downloads/SkyrimNet-beta17.1/`
- Prompts: `SKSE/Plugins/SkyrimNet/prompts/`
- Memory docs: https://goncalo22.github.io/SkyrimNet-GamePlugin/Memory%20System/memory-recall
- Conversations docs: https://goncalo22.github.io/SkyrimNet-GamePlugin/conversations
### CHIM / Oghma Infinium
- Nexus: https://www.nexusmods.com/skyrimspecialedition/mods/126330
- Wiki: https://dwemerdynamics.hostwiki.io/
- Oghma CSV: https://docs.google.com/spreadsheets/d/1dcfctU-iOqprwy2BOc7___4Awteczgdlv8886KalPsQ/
### Mantella
- Nexus: https://www.nexusmods.com/skyrimspecialedition/mods/98631
### Current Modlist
- **Decision**: Tested Schtevie's Requiem Full Content Extension — returning to own foundation
- Our stack: SkyrimNet + custom nimmerverse integration
---
## Next Steps
- [x] Test Schtevie's modlist stability ✓ (2026-03-18: tested, returning to own foundation)
- [ ] Export Oghma Infinium CSV sheets
- [ ] Design PostgreSQL schema for knowledge classes
- [ ] Prototype ChromaDB lore collection
- [ ] Map SkyrimNet template injection points for external queries
- [ ] Design MCP/HTTP interface for lore service
---
**Version:** 1.0 | **Created:** 2026-03-18

290
gameplay_dependencies.txt Normal file
View File

@@ -0,0 +1,290 @@
# NimmerSky Gameplay Stack - Dependencies
# Compiled: 2026-03-15
# Ready for installation
================================================================================
FOUNDATION (INSTALL FIRST)
================================================================================
These are shared requirements - you probably have most already:
TIER 1 - Core (required by almost everything):
[ ] SKSE64 # skse.silverlock.org
[ ] Address Library for SKSE Plugins # Nexus 32444
[ ] SkyUI # Nexus 12604
TIER 2 - Utilities (required by multiple mods):
[ ] PapyrusUtil SE # Nexus 13048 | For: Campfire/Frostfall
[ ] MCM Helper # Nexus 53000 | For: Precision, many others
[ ] Spell Perk Item Distributor (SPID) # Nexus 36869 | For: Hand to Hand, Adamant
[ ] Keyword Item Distributor (KID) # Nexus 55728 | For: Hand to Hand
[ ] Scrambled Bugs # Nexus 43532 | For: Hand to Hand, Adamant
[ ] powerofthree's Papyrus Extender # Nexus 22854 | For: Last Seed, Bathing
[ ] Scrab's Papyrus Extender # Nexus 115164 | For: Bathing in Skyrim
[ ] Custom Skills Framework # Nexus 41780 | For: Stormcrown
[ ] Nemesis Unlimited Behavior Engine # Nexus 60033 | For: SCAR, BFCO, combat
[ ] iHUD # Nexus 12440 | For: Skills of the Wild
================================================================================
COMBAT STACK
================================================================================
BFCO - Balanced Framework for Combat Overhaul
├── Nexus: 117052 (or BFCO NG: 160505)
├── Requires: SKSE64, Address Library
├── Soft Req: Nemesis
└── Notes: Compatible with all perk mods
Blade and Blunt - A Combat Overhaul (SimonRim)
├── Nexus: 34549
├── Requires: None (standalone!)
├── Soft Req: SKSE64 for full functionality
└── Notes: Load AFTER Smilodon/Wildcat if present
SCAR - Skyrim Combos AI Revolution
├── Nexus: 72014
├── Requires: Address Library, Nemesis, ADXP/MCO v1.3.2+
├── !! IMPORTANT: Needs MCO installed first!
└── Notes: Makes NPCs fight intelligently with combos
Precision - Accurate Melee Collisions
├── Nexus: 72347
├── Requires: SKSE64, MCM Helper
└── Notes: Hitstop, weapon trails, true collisions
!! COMBAT NOTE !!
SCAR requires ADXP/MCO from Skyrim Guild (not Nexus)
Download MCO from: skyrim-guild.com
================================================================================
SURVIVAL STACK
================================================================================
Campfire - Complete Camping System
├── Nexus: 667
├── Requires: SKSE64, SkyUI, PapyrusUtil SE
└── Notes: Base for Frostfall
Frostfall - Hypothermia Camping Survival
├── Nexus: 671
├── Requires: Campfire, SKSE64, SkyUI
└── Notes: Core survival cold system
Campfire and Frostfall - Unofficial SSE Update
├── Nexus: 17925
├── Requires: Campfire 1.12.1 SE, Frostfall 3.4.1 SE, PapyrusUtil SE
└── Notes: Must install before first Frostfall init!
Last Seed - Survival Needs and Diseases
├── Nexus: 56393
├── Requires: Campfire
├── Soft Req: powerofthree's Papyrus Extender
├── Incompatible: Growl, Moonlight Tales SE (patches exist)
└── Notes: Followers eat/drink! Integrates with Frostfall & Bathing
Skills of the Wild - New Campfire Survival Skill Trees
├── Nexus: 37693
├── Requires: Campfire, Simple Hunting Overhaul v2+, iHUD
└── Notes: 4 new skill trees!
Simple Hunting Overhaul
├── Nexus: 95943
├── Requires: None (standalone)
└── Notes: Required by Skills of the Wild v2+
Stress and Fear - A Dynamic Sanity System
├── Nexus: 116522
├── Requires: SKSE64, SkyUI (assumed)
├── Soft Req: MCM Helper
└── Notes: By JaySerpa - sanity system!
Bathing in Skyrim - Renewed
├── Nexus: 135288
├── Requires: powerofthree's Papyrus Extender, Scrab's Papyrus Extender, PapyrusUtil
├── Game Ver: AE 1.6.1130+
└── Notes: Integrates with Last Seed
================================================================================
SIMONRIM SUITE
================================================================================
!! SIMONRIM DEPENDENCY CHAIN !!
Mysticism (standalone)
└── Adamant (requires Mysticism)
└── Hand to Hand (requires Adamant + utilities)
Install in this order:
1. Mysticism - A Magic Overhaul
├── Nexus: 27839
├── Requires: None (standalone)
└── Notes: REQUIRED by Adamant and Thaumaturgy
2. Adamant - A Perk Overhaul
├── Nexus: 30191
├── Requires: Mysticism
├── Future (v6.0+): SKSE64, Scrambled Bugs, SPID, KID
└── Incompatible: WACCF, CCOR
3. Hand to Hand - An Adamant Addon
├── Nexus: 59790
├── Requires: Adamant, SKSE64, Address Library, Scrambled Bugs, SPID, KID
└── Notes: Heavy requirements!
4. Aetherius - A Race Overhaul
├── Nexus: 26686
├── Requires: None (standalone)
└── Notes: Integrates with Mundus, Blade & Blunt
5. Mundus - A Standing Stone Overhaul
├── Nexus: 33411
└── Requires: None (standalone)
6. Pilgrim - A Religion Overhaul
├── Nexus: 54099
├── Requires: None (standalone)
└── Notes: Works great with Adamant
7. Stormcrown - A Shout Overhaul
├── Nexus: 90659
├── Requires: Address Library, Custom Skills Framework
├── !! AE ONLY: Requires game version 1.6.640+
└── Incompatible: Thunderchild, Forceful Tongue
8. Apothecary - An Alchemy Overhaul
├── Nexus: 52130
└── Requires: None (standalone)
9. Thaumaturgy - An Enchanting Overhaul
├── Nexus: 57138
└── Requires: Mysticism (implied)
10. Scion - A Vampire Overhaul
├── Nexus: 41639
├── Requires: None (standalone)
└── !! NEEDS: Fresh save, never been vampire before
11. Manbeast - A Werewolf Overhaul
├── Nexus: 44746
├── Requires: SKSE64
└── !! NEEDS: Fresh save, never been werewolf before
12. Arena - An Encounter Zone Overhaul
├── Nexus: 33487
└── Requires: None (standalone)
================================================================================
RELATIONSHIPS
================================================================================
M.A.R.A.S - Marry Anyone Rule All Skyrim
├── Nexus: 159033
├── Requires: None listed
└── Notes: Affection system, spouse arcs, polygamy quest
M.A.R.A.S - OStim Patch
├── Nexus: 173896
├── Requires: M.A.R.A.S, OStim
└── Notes: Adds scene initiation with spouse
================================================================================
CONTENT
================================================================================
Legacy of the Dragonborn (LOTD)
├── Nexus: 11802
├── Requires: All 3 DLCs (Dawnguard, Hearthfires, Dragonborn)
├── Soft Req: SKSE64, SkyUI
├── Recommended:
│ ├── Curator's Companion # Nexus 38529
│ ├── LOTD Official Patches # Nexus 30980
│ └── LOTD CC Patch Hub # Nexus 31563
└── !! INSTALL AT GAME START - foundational mod
================================================================================
INSTALL ORDER CHECKLIST
================================================================================
FOUNDATION:
[ ] 1. SKSE64
[ ] 2. Address Library for SKSE Plugins
[ ] 3. SkyUI
[ ] 4. PapyrusUtil SE
[ ] 5. MCM Helper
[ ] 6. Scrambled Bugs
[ ] 7. SPID
[ ] 8. KID
[ ] 9. powerofthree's Papyrus Extender
[ ] 10. Scrab's Papyrus Extender
[ ] 11. Custom Skills Framework
[ ] 12. Nemesis Unlimited Behavior Engine
[ ] 13. iHUD
SIMONRIM (in order):
[ ] 14. Mysticism
[ ] 15. Adamant
[ ] 16. Hand to Hand
[ ] 17. Aetherius
[ ] 18. Mundus
[ ] 19. Pilgrim
[ ] 20. Stormcrown (AE only!)
[ ] 21. Apothecary
[ ] 22. Thaumaturgy
[ ] 23. Scion
[ ] 24. Manbeast
[ ] 25. Arena
[ ] 26. Blade and Blunt
COMBAT:
[ ] 27. ADXP/MCO (from Skyrim Guild!)
[ ] 28. BFCO
[ ] 29. SCAR
[ ] 30. Precision
SURVIVAL:
[ ] 31. Campfire
[ ] 32. Frostfall
[ ] 33. Campfire/Frostfall Unofficial Update
[ ] 34. Last Seed
[ ] 35. Simple Hunting Overhaul
[ ] 36. Skills of the Wild
[ ] 37. Stress and Fear
[ ] 38. Bathing in Skyrim - Renewed
RELATIONSHIPS:
[ ] 39. M.A.R.A.S
[ ] 40. M.A.R.A.S - OStim Patch
CONTENT:
[ ] 41. Legacy of the Dragonborn
[ ] 42. LOTD Official Patches
[ ] 43. Curator's Companion
FINAL:
[ ] 44. Run Nemesis
[ ] 45. Generate Synthesis patches
[ ] 46. Check for mod-specific patches
================================================================================
WARNINGS & NOTES
================================================================================
!! CRITICAL !!
- SCAR needs MCO from Skyrim Guild (not on Nexus)
- Stormcrown is AE ONLY (1.6.640+)
- Scion/Manbeast need FRESH saves (no prior transformations)
- LOTD should be installed from game start
!! LOAD ORDER !!
- Blade and Blunt AFTER Smilodon/Wildcat (if present)
- Manbeast AFTER Mortal Enemies (if present)
!! PATCHES TO CHECK !!
- SimonRim has official patch compendium
- LOTD has massive patch collection
- Check for Last Seed + Growl/Moonlight Tales patches if needed
================================================================================
Cross-referenced from Nexus Mods - 2026-03-15
Ready for the ape when rested!

268
gameplay_stack.txt Normal file
View File

@@ -0,0 +1,268 @@
# NimmerSky Gameplay Stack
# Compiled: 2026-03-15
# Session with Chrysalis - Planning the gameplay layer for first real playthrough
================================================================================
DESIGN PHILOSOPHY
================================================================================
- HC WoW oldschool player mentality: hard, meaningful, consequences matter
- First REAL playthrough - actually play, not just mod forever
- LOTD as the goal: collect everything, fill the museum
- Immersive over gamey: systems that create emergent stories
- Avoid patch hell: smart choices over maximum features
================================================================================
SURVIVAL STACK
================================================================================
Core Survival (Chesko Trinity + Extensions):
- Campfire and Frostfall - Unofficial SSE Update # Cold exposure, camping, shelter
- Last Seed - Survival Needs and Diseases # Hunger, thirst, fatigue, disease
- Skills of the Wild - New Campfire Survival Skill Trees # Progression in survival
Hunting & Resources:
- Simple Hunting Overhaul # Food acquisition matters
Mental Health:
- Stress and Fear - A Dynamic Sanity System # Sanity, trauma, psychological cost
Hygiene:
- Bathing in Skyrim - Renewed # Cleanliness affects NPC reactions
NOTES:
- Last Seed followers EAT and DRINK - party management!
- Disease system spreads through party
- Synergizes with SkyrimNet - NPCs comment on your state
================================================================================
COMBAT STACK
================================================================================
Framework:
- BFCO (Balanced Framework for Combat Overhaul) # Animation framework, movesets
- Supports vanilla attack speed and directional heavy attacks
- Compatible with ANY perk mod (Adamant, Ordinator, Vokrii)
- Works WITH SCAR (hands off when SCAR annotations exist)
Balance Layer:
- Blade and Blunt (SimonRim) # Stamina, stagger, damage, blocking
- DESIGNED to synergize with Adamant perks
- DO NOT use Valhalla - B&B fills this role
NPC Combat AI:
- SCAR # NPCs fight intelligently
- Uses movesets properly
- Tactical behavior, not random swinging
Polish:
- Precision # Hitstop, weapon trails, collision
Movesets:
- [TBD - choose based on playstyle preferences]
- BFCO has massive moveset library
WHY THIS WORKS:
- BFCO = HOW attacks look and chain (animations)
- Blade and Blunt = HOW attacks feel and cost (balance)
- SCAR = HOW NPCs use the system (AI)
- Adamant perks reference B&B mechanics = FULL SYNERGY
================================================================================
SIMONRIM SUITE
================================================================================
Character Progression:
- Adamant # Perks - streamlined, functional
- Aetherius # Races - meaningful bonuses
- Mundus # Standing Stones - real choices
Religion & Roleplay:
- Pilgrim # Divine worship system
- Pray at shrines for favor
- Each Divine has unique blessings
- Daedric worship with consequences
- SYNERGY: Arkay = disease resistance (works with Last Seed!)
Magic:
- Mysticism # Spells - vanilla+ philosophy
- Stormcrown # Shouts - worth using
Crafting:
- Apothecary # Alchemy - rebalanced
- Thaumaturgy # Enchanting - scaling fixed
Transformations:
- Scion # Vampires - progression system
- Manbeast # Werewolves - perk tree
Other:
- Hand to Hand # Unarmed builds viable
- Arena # Encounter Zones - deleveling
- CHECK: May conflict with other enemy scaling mods
SKIP:
- Blade and Blunt from SimonRim page # Already in Combat Stack above
================================================================================
RELATIONSHIP / NPC STACK
================================================================================
Core Relationship:
- M.A.R.A.S - Marry Anyone Rule All Skyrim # Romance, affection states, marriage
- Affection builds over time
- Lore-friendly polygamy quest
- Spouse arcs (relationships develop!)
- M.A.R.A.S - OStim Patch # Integration with OStim
Follower Management:
- Nether's Follower Framework (NFF) # Already in base list
- Recruit ANYONE as follower
- Manage multiple followers
- Avoid OP modded follower syndrome
Intimacy (already in base list):
- OStim Standalone # Already installed
- OStim On Demand # Dynamic requests based on stats
- OStim NPCs - NPC Sex Lives Improved # NPCs have their own lives
- OLS Aroused # Arousal system with stats
EMERGENT GAMEPLAY ACHIEVED:
- Build affection over time (M.A.R.A.S)
- NPCs remember interactions (SkyrimNet)
- Romance develops into physical (OStim)
- Recruit as follower (NFF)
- Manage their survival needs (Last Seed)
- They comment on everything (SkyrimNet perception)
TESTED SCENARIO - Riverwood Romance:
- Arrived in Riverwood
- Made a moonlight rendezvous promise with Camilla
- SkyrimNet stored the promise in memory
- 2 hours later (in-game), sang song under silver moon
- Camilla BROKE HER AI ROUTINE to meet - remembered the promise!
- Sven (rival suitor) ALSO BROKE ROUTINE - came to confront!
- Passive-aggressive scene ensued
- THIS IS EMERGENT STORYTELLING
================================================================================
CONTENT / GOAL
================================================================================
Main Goal:
- Legacy of the Dragonborn (LOTD) # The museum - collect EVERYTHING
- Clear purpose for exploration
- Every item has a home
- Collector's HQ (Safehouse)
- Well-patched, mature mod
================================================================================
AI LAYER
================================================================================
Already Installed:
- SkyrimNet # The brain
- Magidonia 24B on Theia (Blackwell 98GB)
- Endpoint: 10.0.30.21:31002
- MCP Server for in-game actions
- Memory system with vector embeddings
- 5000 memories per actor
- Event perception (40+ event types)
TTS:
- Piper # Voice synthesis
- Race-specific voices
- Pronunciation dictionary
STT:
- Enabled # Voice input to talk to NPCs
OStim Integration:
- OStimNet # AI can trigger intimate scenes
- SeverActions - SkyrimNet Action Pack # Action integration
TODO - Diary JSON Fix:
- Function Gemma 270M available on Theia # /data/models/function-gemma/
- Pipeline: Magidonia (creative) -> Function Gemma (JSON format)
- Tiny model = instant formatting
================================================================================
INFRASTRUCTURE NOTES
================================================================================
THEIA (10.0.30.21) - Blackwell 98GB:
- Primary inference server
- Magidonia 24B for SkyrimNet
- Function Gemma 270M for structured output
- Qwen3-32B-128K for high-context tasks
- Nemotron-3-Nano-30B available
DIOSCURI (10.0.30.22) - Twin RTX 4000 Ada (40GB):
- Secondary inference
- Overflow / specialized tasks
Default SkyrimNet config uses paid OpenRouter APIs
YOUR config uses self-hosted = FREE GAMING
================================================================================
LOAD ORDER NOTES
================================================================================
The existing modlist (2057 mods) is the SKELETON:
- Visuals, animations, ENB, LODs = DONE
- SkyrimNet AI layer = DONE
- OStim stack = DONE
This gameplay stack goes INTO the disabled "-Gameplay_separator" section
After adding gameplay mods:
- Regenerate Pandora output
- Regenerate Synthesis patches (SimonRim patches)
- May need LOTD patches
- DynDOLOD if LOTD adds exterior displays
================================================================================
FINAL STACK
================================================================================
COMBAT:
[x] BFCO
[x] Blade and Blunt
[x] SCAR
[x] Precision
[ ] Movesets (choose favorites)
SURVIVAL:
[x] Campfire
[x] Last Seed
[x] Skills of the Wild
[x] Simple Hunting Overhaul
[x] Stress and Fear
[x] Bathing in Skyrim
SIMONRIM:
[x] Adamant
[x] Aetherius
[x] Mundus
[x] Pilgrim
[x] Mysticism
[x] Stormcrown
[x] Apothecary
[x] Thaumaturgy
[x] Scion
[x] Manbeast
[x] Hand to Hand
[?] Arena (check conflicts)
RELATIONSHIPS:
[x] M.A.R.A.S
[x] M.A.R.A.S - OStim Patch
CONTENT:
[x] Legacy of the Dragonborn
[ ] LOTD patches as needed
================================================================================
Notes compiled from session with Chrysalis (chrysalis@EACHPATH.LOCAL)

View File

@@ -0,0 +1,159 @@
# NimmerSky Inference Architecture
# Status: DEPLOYED & STABLE
# Last Updated: 2026-03-18
================================================================================
DESIGN PRINCIPLES
================================================================================
1. SIMPLICITY > COMPLEXITY
- No MIG partitioning on Blackwell
- No vLLM multi-model complexity
- One big creative model, one structured output model, one vision model
2. MODEL SIZE MATTERS FOR JSON
- Key learning: 27B models follow JSON schemas reliably
- 8B models (including abliterated) struggle with structured output
- Route all JSON tasks to Gemma-27B
3. TASK-BASED ROUTING
- Creative dialogue → Large model (Euryale-70B)
- Structured output → Gemma-27B
- Vision/OmniSight → Qwen3-VL-8B
================================================================================
DEPLOYED INFRASTRUCTURE
================================================================================
THEIA (10.0.30.21) - Blackwell 98GB:
├── Port 31001: Euryale-70B (L3.3-70B Euryale v2.3)
│ ├── Quantization: Q4 or Q8 (fits in 98GB)
│ ├── Purpose: Creative dialogue, main NPC conversations
│ └── Context: Large (32K+)
└── Ollama: active
DIOSCURI (10.0.30.22) - 2x RTX 4000 Ada (20GB each):
├── GPU 0 - Port 31004: Gemma-3-27B-abliterated (Q4_K_M)
│ ├── ~16GB VRAM usage
│ ├── Purpose: ALL structured JSON output
│ └── Tasks: CharacterProfile, Diary, Combat, Memory, Gamemaster
└── GPU 1 - Port 31005: Qwen3-VL-8B-abliterated (Q4_K_M)
├── ~6GB VRAM usage
├── Purpose: Vision / OmniSight
└── Multimodal: Can process screenshots
================================================================================
SKYRIMNET VARIANT ROUTING
================================================================================
┌──────────────────────────┬─────────────────────────────────────────────────┐
│ Variant │ Deployed Configuration │
├──────────────────────────┼─────────────────────────────────────────────────┤
│ Default (dialogue) │ Theia:31001 → Euryale-70B │
│ AgentDefault │ Theia:31001 → Euryale-70B │
│ UniversalTranslator │ Theia:31001 → Euryale-70B │
│ action_evaluation │ Theia:31001 → Euryale-70B │
│ meta │ Theia:31001 → Euryale-70B │
├──────────────────────────┼─────────────────────────────────────────────────┤
│ CharacterProfileGen │ Dioscuri:31004 → Gemma-27B (structured_outputs) │
│ DiaryGeneration │ Dioscuri:31004 → Gemma-27B (structured_outputs) │
│ combat │ Dioscuri:31004 → Gemma-27B │
│ gamemaster_evaluation │ Dioscuri:31004 → Gemma-27B │
│ memory │ Dioscuri:31004 → Gemma-27B (structured_outputs) │
├──────────────────────────┼─────────────────────────────────────────────────┤
│ vision │ Dioscuri:31005 → Qwen3-VL-8B │
└──────────────────────────┴─────────────────────────────────────────────────┘
================================================================================
TOKEN BUDGETS
================================================================================
Variant-specific max_tokens (tuned for task):
│ Variant │ max_tokens │ Notes │
├──────────────────────────┼────────────┼────────────────────────────────────┤
│ Default │ 4096 │ Full dialogue responses │
│ AgentDefault │ 4096 │ Full agent responses │
│ CharacterProfileGen │ 2048 │ Structured bio output │
│ DiaryGeneration │ 768 │ Compact diary entries │
│ UniversalTranslator │ 512 │ Short translations │
│ action_evaluation │ 2048 │ Action descriptions │
│ combat │ 2000 │ Combat narration │
│ gamemaster_evaluation │ 256 │ Quick GM decisions │
│ memory │ 4096 │ Memory consolidation (large) │
│ meta │ 1024 │ Meta tasks │
│ vision │ 4000 │ Vision descriptions │
================================================================================
CONFIGURATION NOTES
================================================================================
Context Management:
- event_history_count_dialogue: 25 (reduced from 50 to fit context)
- Narration: DISABLED in SkyrimNet.yaml (Piper.yaml → narrative: enabled: false)
- Agent prompt includes "spoken dialogue only" instruction
Temperature Settings:
- Dialogue (Euryale): 0.8 (creative, varied)
- Structured (Gemma): 0.3-0.4 (consistent JSON)
- Vision (Qwen-VL): 0.7 (descriptive)
Structured Outputs:
- CharacterProfileGen: use_structured_outputs: true
- DiaryGeneration: use_structured_outputs: true
- memory: use_structured_outputs: true
================================================================================
LESSONS LEARNED
================================================================================
From March 15-17 experimentation:
1. QWEN MODELS USE PYTHON TRIPLE-QUOTES IN JSON
- Qwen-based models (including some Magidonia variants) output ```json blocks
- This breaks SkyrimNet's JSON parsing
- Solution: Use Gemma for JSON, Euryale/Llama for dialogue
2. STRICT ROLE ALTERNATION (Qwen/Magidonia via llama.cpp)
- Qwen Jinja templates enforce strict user/assistant alternation
- llama.cpp native enforces this strictly
- Ollama normalizes templates (more forgiving)
- If using Qwen-based models: route through Ollama
3. MODEL SIZE > ABLITERATION FOR JSON
- 27B follows instructions reliably
- 8B (even abliterated) struggles with structured output
- Don't route JSON tasks to small models
4. CONTEXT OVERFLOW PREVENTION
- Bumped ctx-size: Gemma-27B 4K→16K
- Reduced event_history_count_dialogue 50→25
- Right-sized token budgets per variant
================================================================================
FUTURE CONSIDERATIONS
================================================================================
Nimmerverse Integration (see ARCHITECTURE-RESEARCH.md):
- [ ] Oghma Infinium lore RAG → Iris (ChromaDB)
- [ ] Memory migration to unified ChromaDB
- [ ] Knowledge gating service (MCP/HTTP)
- [ ] Gossip network via NATS
Model Upgrades:
- Monitor Euryale updates (currently v2.3)
- Consider Gemma-3 upgrades when available
- Vision: Qwen-VL evolving rapidly
CPU Inference (Deferred):
- Function Gemma 270M was planned but not needed
- Gemma-27B handles structured output well
- Revisit if latency becomes an issue
================================================================================
Architecture stable as of 2026-03-18.
Three-model split working well: Big creative + Structured JSON + Vision
- Chrysalis