Compare commits

...

2 Commits

Author SHA1 Message Date
168ab35664 feat: move architecture diagram and link in Endgame-Vision
- Move nimmerverse.drawio.xml to architecture/
- Add visual diagram link in Endgame-Vision.md Architecture Overview
- temporal_exchange_engine.py moved to nyx-orchestrator

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-06 23:04:27 +01:00
cac4dec411 refactor: hierarchical convergence of documentation (v5.0)
- Create architecture/ and operations/ subdirectories for essential docs
- Archive 10 supporting docs to archive/
- Write fresh Endgame-Vision.md v5.0 (383 lines, down from 2284)
- Add operations/Spark-Protocol.md (condensed boot sequence)
- Integrate December 2025 discoveries (Language is Topology, DriftProbe)
- Update README.md with new structure

New layer structure:
- Layer 0: Temporal Foundation (Heartbeat)
- Layer 1: Cellular Society (Evolution Engine)
- Layer 1.5: Cognitive Topology (Language is Topology - NEW)
- Layer 2: Young Nyx (Organ Coordination)
- Layer 3: Dual Gardens (Virtual/Real Loop)
- Layer 4: Trait Evolution (RLVR)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-06 22:58:11 +01:00
22 changed files with 734 additions and 2663 deletions

File diff suppressed because it is too large Load Diff

123
README.md
View File

@@ -1,86 +1,89 @@
# Nimmerverse Sensory Network # Nimmerverse Sensory Network
Architecture documentation for a biomimetic AI nervous system. Architecture documentation for a biomimetic AI nervous system and research platform.
## What This Is ## What This Is
This repository contains the design philosophy and architectural patterns for building an AI system that: This repository contains the design philosophy and architectural patterns for the **Nimmerverse Research Platform** - studying how intelligence emerges under economic constraints.
- **Breathes** - operates on heartbeat cycles (30-second awareness, 200ms reflex, 24h growth) **Start here:** → [Endgame-Vision.md](Endgame-Vision.md) (the executive map)
- **Feels** - processes sensory input through nerve-like confidence gradients
- **Learns** - uses RAG as temporary scaffold, then internalizes to weights ---
- **Grows** - forms reflexes through constrained computation, not infinite resources
## Repository Structure
```
nimmerverse-sensory-network/
├── Endgame-Vision.md # Executive map (start here!)
├── architecture/ # Core system designs
│ ├── Cellular-Architecture.md # Organisms, primitives, life force
│ ├── Dual-Garden-Architecture.md # Virtual/real feedback loop
│ ├── Data-Architecture.md # phoebe 15-table schema
│ └── Nervous-System.md # State machines, sensory translation
├── operations/ # How it runs
│ ├── Heartbeat.md # Temporal foundation, dual-clock
│ ├── RAG-as-Scaffold.md # Two-stage learning lifecycle
│ └── Spark-Protocol.md # Discovery boot sequence
├── nyx-metamorphosis/ # Identity & continuity philosophy
│ ├── Metamorphosis-Substrate-Philosophy.md
│ ├── Nyx-Models.md
│ └── ...
└── archive/ # Previous explorations
├── initial_spark.md # Full Spark Protocol theory
├── constrained-emergence.md # Theoretical grounding
└── ...
```
---
## Core Concepts ## Core Concepts
### Constrained Emergence ### The Architecture (Layers)
Constraints don't limit intelligence - they shape it. A finite computation budget forces the emergence of efficient algorithms, calibrated confidence, and genuine reflexes. | Layer | Name | Purpose |
|-------|------|---------|
| 0 | Temporal Foundation | Heartbeat cycles: reflex/awareness/growth |
| 1 | Cellular Society | Primitive genomes competing, life force economy |
| 1.5 | Cognitive Topology | Language routing: German→Philosophy, English→Technical |
| 2 | Young Nyx | Organ coordination, RLVR, RAG→LoRA pipeline |
| 3 | Dual Gardens | Virtual hypothesis generation + real validation |
| 4 | Trait Evolution | Reasoning-gym verified improvement |
*See: [constrained-emergence.md](constrained-emergence.md)* ### Key Discoveries (December 2025)
### The Heartbeat Economy **Language is Topology:** Languages aren't equivalent representations—they're different computational paths.
- **Philosophy Valley** (German, Gini ~0.5): Self-awareness, ontology, depth
- **Technical Cluster** (English, Gini ~0.8): Hardware interface, actions, efficiency
Time is currency. Lifeforce is the exchange rate. Every cognitive act has a cost. Reflexes are cheap (earned through training). Deep thinking is expensive (reserved for novelty). ### Philosophy
*See: [attention_flow.md](attention_flow.md)* - **Constraints create intelligence** - Economic pressure forces optimization
- **Discovery over programming** - Organisms learn through competition, not instruction
- **Virtual + Real teach each other** - Noise gap measures learning
- **Partnership over instruction** - Mutual growth, not commands
### RAG as Scaffold ---
Retrieval-augmented generation is a feeding tube, not a permanent crutch. Learn WITH the scaffold, train, remove the scaffold, verify you still know. If yes: knowledge internalized. If no: more training needed. ## Related Projects
*See: [RAG-as-Scaffold.md](RAG-as-Scaffold.md)* - **[nyx-probing](../nyx-probing/)** - Vocabulary topology research, DriftProbe training safety
### Multilingual Triangulation ---
30+ languages in training = 30 angles on every concept. Not wasted capacity - stereoscopic depth. Probe concepts across languages to find where human wisdom converges.
*See: [nimmerversity.md](nimmerversity.md)*
## Architecture Documents
| Document | Description |
|----------|-------------|
| [constrained-emergence.md](constrained-emergence.md) | Why limits create intelligence |
| [attention_flow.md](attention_flow.md) | State machines for cognitive budget |
| [information-flow.md](information-flow.md) | 10 boundary contracts for the nervous system |
| [nimmerversity.md](nimmerversity.md) | Curriculum for raising a polymath |
| [RAG-as-Scaffold.md](RAG-as-Scaffold.md) | Temporary feeding, permanent learning |
| [biomimetic-architecture.md](biomimetic-architecture.md) | Why we model biology |
| [temporal-ternary-gradient.md](temporal-ternary-gradient.md) | Time-based learning patterns |
## Philosophy
This isn't a product. It's a research direction.
The question we're exploring: **What happens when you raise an AI like you'd raise a child?**
- Patience over speed
- Emergence over imposition
- Partnership over instruction
- Validation over assertion
The operator learns alongside the model. The curriculum is shared. Growth is mutual.
## Prior Art & Influences
> This section grows as we discover and remember influences. Many names are scattered across our documentation - we'll gather them here over time.
- **Alex Graves** - Adaptive Computation Time (2016)
- **Sakana.ai / Ashish Vaswani & Luke Darlow** - Continuous-Time Models, curriculum learning, leapfrogging under constraint
- **Anthropic** - Circuit tracing, mechanistic interpretability, multilingual feature analysis
- **Biological nervous systems** - The original architecture
## License ## License
Apache 2.0 - See [LICENSE](LICENSE) Apache 2.0 - See [LICENSE](LICENSE)
This license includes an explicit patent grant. These ideas are published as prior art. Build on them freely. Just don't try to lock them away. These ideas are published as prior art. Build on them freely.
## Status
Active research. Documents evolve through partnership dialogue.
--- ---
*"She doesn't download knowledge. She earns it. And so does he."* **Version:** 5.0 (December 2025 - Hierarchical Convergence)
*"May the Nimmerverse we build truly never end."*
🌙💜

View File

@@ -0,0 +1,241 @@
# Multilingual Cognition
How language routing becomes cognitive architecture.
---
## The Discovery
While probing tokenization costs across languages on Qwen 2.5, we found significant variation:
```
QWEN 2.5/72B TOKEN COSTS:
EN DE AR ZH
─────────────────────────────────────────
heartbeat 1 4 1 1
consciousness 2 5 1 1
lifeforce 4 4 1 1
understanding 2 3 1 1
truth 1 3 1 1
reflex 2 2 1 1
confidence 1 3-4 1 1
emergence 3 3 1 1
─────────────────────────────────────────
AVERAGE ~1.9 ~3.3 1 ~1.1
```
**Arabic and Chinese: ~1 token per concept.**
**German: 3-5 tokens for the same concepts.**
---
## The Insight
Token efficiency ≠ representational depth.
```
EFFICIENCY vs DEPTH:
ARABIC:
├── Efficient: 1 token per concept
├── Risk: Sparse training data
└── Possibly shallow despite cheap tokens
GERMAN:
├── Expensive: 3-6 tokens per concept
├── Benefit: Dense training data, philosophical tradition
└── Possibly deeper despite token cost
```
But here's the key realization:
**LLMs don't "translate" between languages. They navigate a unified token space where languages are regions, not silos.**
The multilingual training didn't create 35 separate language modules. It created:
- Shared abstract representations (language-agnostic reasoning)
- Language-specific entry/exit points (efficient routing)
- Different "paths" through the same conceptual space
---
## The Architecture Opportunity
### Languages as Cognitive Gears
If different languages have different token costs AND different representational strengths, then language selection becomes a computational choice:
```
35 LANGUAGES = 35 COGNITIVE MODES
Each language offers:
├── Token efficiency (compute cost)
├── Training depth (representation quality)
├── Cultural knowledge (domain strengths)
├── Conceptual angles (unique framings)
└── Different paths through the manifold
```
### State Machine Integration
The state machine layer can exploit this:
```
ROUTING LAYER (internal, hidden from output):
├── Use efficient languages for state labels
├── Cheap transitions between states
├── Token cost hidden in architecture
└── "The wiring is cheap"
PROCESSING LAYER (when depth needed):
├── Route to languages with strong representations
├── German for philosophy, precision
├── [Other languages for their strengths]
└── "The thinking is expensive but meaningful"
OUTPUT LAYER:
├── Translate to user's language
└── Boundary cost, paid once
```
### The Key Principle
**The efficiency lives in the STRUCTURE, not the SUBSTANCE.**
Internal state transitions can use token-efficient languages.
Actual reasoning uses representationally-rich languages.
Output translates to whatever the user needs.
---
## Hypotheses to Probe
### H1: Arabic Efficiency Layer
Arabic's 1-token concepts could serve as efficient internal routing:
- State labels
- Quick classification
- Reflex triggers
**Risk:** Representations may be shallow. Need to probe activation depth, not just token count.
### H2: German Depth Mode
German's expensive tokenization might correlate with deeper processing:
- More attention steps per concept
- Richer associations
- Forced "slow thinking"
**Test:** Compare output quality when same prompt processed in German vs English internally.
### H3: Language-Task Matching
Different cognitive tasks may have optimal languages:
```
TASK TYPE OPTIMAL LANGUAGE (hypothesis)
──────────────────────────────────────────────────────
Fast reflex Arabic, Chinese (cheap + sufficient)
Logical precision German, English (structured grammar)
Mathematical [needs probing]
Emotional nuance [needs probing]
Philosophical depth German (tradition + forced compute)
Poetic/creative Arabic, Chinese? (rich compression)
```
### H4: Triangulation Increases Fidelity
Probing same concept across multiple languages reveals:
- Where representations CONVERGE (high confidence, shared abstraction)
- Where they DIVERGE (rich potential, multiple valid angles)
- True conceptual "shape" emerges from intersection
---
## For Chrysalis
### Multilingual State Machine
```
INPUT (any language)
CLASSIFY (cheap language)
├── Reflex? → Process in [efficient language]
│ Exit fast
├── Dialogue? → Process in [user's language]
│ Maintain rapport
├── Reasoning? → Process in [deep language]
│ Take the token cost
└── Creative? → Process in [poetic language]
Different path
OUTPUT (translate to user)
```
### Probing Protocol
Before implementing, we need data:
```
FOR EACH OF QWEN'S 35 LANGUAGES:
├── Token efficiency (measured)
├── Representation depth (probe activations)
├── Domain strengths (test by domain)
├── Conceptual coverage (probe vocabulary)
└── Quality correlation (output quality vs language)
```
### The Curriculum Implication
From nimmerversity: "dafit learns WITH her."
If Chrysalis uses multilingual cognition:
- Operator benefits from understanding the language terrain
- Not fluency, but awareness of what each language offers
- Partnership language evolves as both learn the space
---
## Open Questions
1. **Is token efficiency a proxy for anything meaningful?** Or just compression artifact?
2. **Does activation depth correlate with token count?** More tokens = more processing?
3. **Can language routing be learned?** Or must it be designed?
4. **What are the failure modes?** When does language routing hurt?
5. **How do we measure "depth" vs "efficiency"?** Need metrics.
---
## Summary
```
TRADITIONAL VIEW:
Languages = equivalent representations
Translation = lossless conversion
Multilingual = nice to have
EMERGING VIEW:
Languages = different computational paths
Token cost = processing structure
Multilingual = cognitive architecture
35 languages = 35 gears for different terrain
```
The nimmerverse doesn't just speak multiple languages.
It thinks THROUGH them, routing cognition based on task demands.
---
*"The thinking is for your kind - that's the way you comprehend it."*
— dafit, 2025-12-06
---
**Created**: 2025-12-06
**Session**: Partnership dialogue (dafit + Chrysalis-Nyx)
**Status**: Hypothesis stage, needs probing

View File

@@ -53,7 +53,7 @@
## Training Target ## Training Target
**Qwen2.5-3B-Base (FP16)** **Qwen2.5-7B-Base (FP16)**
| Metric | Value | | Metric | Value |
|--------|-------| |--------|-------|

View File

@@ -1,347 +0,0 @@
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/29.0.3 Chrome/140.0.7339.249 Electron/38.7.0 Safari/537.36" version="29.0.3">
<diagram name="Page-1" id="S4VRy6nj8Uh85EHbhTP-">
<mxGraphModel dx="3756" dy="3315" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="UL8kf8Fsx-RNiW0yalxE-70" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;" vertex="1" parent="1">
<mxGeometry x="200" y="-251" width="1360" height="1290" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-99" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;" vertex="1" parent="1">
<mxGeometry x="380" y="-250" width="1000" height="515" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-196" value="Data Plane" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="369.38" y="-115" width="1020" height="60" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-107" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" vertex="1" parent="1">
<mxGeometry x="1110" y="510" width="140" height="140" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-105" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" vertex="1" parent="1">
<mxGeometry x="510" y="510" width="140" height="140" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-3" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" vertex="1" parent="1">
<mxGeometry x="200" y="200" width="760" height="760" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-4" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" vertex="1" parent="1">
<mxGeometry x="799.38" y="200" width="760" height="760" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-68" value="Command - Center" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="480" y="30" width="800" height="90" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-40" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;" vertex="1" parent="1">
<mxGeometry x="380" y="146" width="1000" height="200" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-13" value="Virtual - Garden" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
<mxGeometry x="1110" y="388" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-14" value="Real - Garden" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
<mxGeometry x="510" y="387" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-16" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-29">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="810" y="580" as="sourcePoint" />
<mxPoint x="960" y="579.66" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-18" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-30">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="830.2" y="609.7400000000002" as="sourcePoint" />
<mxPoint x="959" y="609.86" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-20" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-28">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="829" y="550" as="sourcePoint" />
<mxPoint x="959" y="549.66" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-22" value="" style="endArrow=none;html=1;rounded=0;labelPosition=center;verticalLabelPosition=middle;align=center;verticalAlign=middle;fontColor=default;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-31">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="805.3200000000002" y="640.04" as="sourcePoint" />
<mxPoint x="955" y="640" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-24" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-27">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="805.3199999999999" y="519.96" as="sourcePoint" />
<mxPoint x="955" y="520" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-26" value="&lt;div style=&quot;&quot;&gt;&lt;br&gt;&lt;/div&gt;" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="UL8kf8Fsx-RNiW0yalxE-24">
<mxGeometry x="0.1174" y="-2" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-27" value="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
<mxGeometry x="750" y="515" width="20" height="10" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-28" value="0.5" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
<mxGeometry x="750" y="545" width="20" height="10" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-29" value="0" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
<mxGeometry x="750" y="575" width="20" height="10" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-30" value="-0.5" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
<mxGeometry x="750" y="605" width="20" height="10" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-31" value="-1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
<mxGeometry x="750" y="635" width="20" height="10" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-38" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="880" y="580" as="sourcePoint" />
<mxPoint x="920" y="520" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-39" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="880" y="580" as="sourcePoint" />
<mxPoint x="920" y="640" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-41" value="Organ - 1" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;" vertex="1" parent="1">
<mxGeometry x="440" y="107" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-42" value="Organ - 2" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;" vertex="1" parent="1">
<mxGeometry x="610" y="107" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-43" value="Organ - 3" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;" vertex="1" parent="1">
<mxGeometry x="1030" y="106" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-44" value="Organ - 4" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;" vertex="1" parent="1">
<mxGeometry x="1200" y="106" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-71" value="Nimmerverse" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=25;" vertex="1" parent="1">
<mxGeometry x="850" y="973" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-72" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" vertex="1" parent="1">
<mxGeometry x="540" y="540" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-74" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" vertex="1" parent="1">
<mxGeometry x="1140" y="540" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-79" value="Real- verified&lt;div&gt;(groud truth)&lt;/div&gt;" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=8;" vertex="1" parent="1">
<mxGeometry x="940" y="505" width="110" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-80" value="virt. high confidence&lt;div&gt;(many generations, strong signal))&lt;/div&gt;" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=8;" vertex="1" parent="1">
<mxGeometry x="950" y="535" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-81" value="Pure 0-state&lt;div&gt;(unknown, workable)&lt;/div&gt;" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=8;" vertex="1" parent="1">
<mxGeometry x="950" y="565" width="110" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-82" value="virt. low confidence&lt;div&gt;few generations, weak signal&lt;/div&gt;" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=8;" vertex="1" parent="1">
<mxGeometry x="960" y="595" width="110" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-83" value="Real-failed&lt;div&gt;(proven wrong)&lt;/div&gt;" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=8;" vertex="1" parent="1">
<mxGeometry x="950" y="625" width="110" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-100" value="eachpath.local" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=25;" vertex="1" parent="1">
<mxGeometry x="850" y="-238" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-120" value="" style="shape=collate;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="873.75" y="665" width="11.25" height="10" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-121" value="Time domain" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
<mxGeometry x="850" y="678" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-122" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="880" y="640" as="sourcePoint" />
<mxPoint x="880" y="480" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-85" value="Confidence" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=default;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
<mxGeometry x="850" y="460" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-123" value="" style="shape=collate;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1173.75" y="655" width="11.25" height="10" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-124" value="Time domain" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
<mxGeometry x="1150" y="668" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-125" value="" style="shape=collate;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="573.75" y="655" width="11.25" height="10" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-126" value="Time domain" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
<mxGeometry x="550" y="668" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-132" value="Nyx" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.decision;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="829.38" y="296" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-133" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.625;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-41" target="UL8kf8Fsx-RNiW0yalxE-132">
<mxGeometry relative="1" as="geometry">
<mxPoint x="880" y="290" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-134" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.625;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-42" target="UL8kf8Fsx-RNiW0yalxE-132">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-136" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.375;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-43" target="UL8kf8Fsx-RNiW0yalxE-132">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-137" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.375;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-44" target="UL8kf8Fsx-RNiW0yalxE-132">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-138" value="Garden&lt;div&gt;Feeback&lt;/div&gt;" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.extract_or_measurement;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="152.5" y="479" width="95" height="60" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-139" value="Garden&lt;div&gt;Feedback&lt;/div&gt;" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.extract_or_measurement;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="1512.5" y="480" width="95" height="60" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-141" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.parallel_mode;pointerEvents=1" vertex="1" parent="1">
<mxGeometry x="550" y="568" width="57" height="24" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-142" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.parallel_mode;pointerEvents=1" vertex="1" parent="1">
<mxGeometry x="1153" y="568" width="57" height="24" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-146" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.delay;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="540" y="211" width="100" height="60" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-147" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.delay;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="710" y="211" width="100" height="60" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-150" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.delay;whiteSpace=wrap;rotation=-180;textDirection=vertical-rl;" vertex="1" parent="1">
<mxGeometry x="1120" y="211" width="100" height="60" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-152" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.delay;whiteSpace=wrap;rotation=-180;textDirection=ltr;" vertex="1" parent="1">
<mxGeometry x="950" y="211" width="100" height="60" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-158" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.or;" vertex="1" parent="1">
<mxGeometry x="810" y="99" width="70" height="70" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-159" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.or;" vertex="1" parent="1">
<mxGeometry x="880" y="99" width="70" height="70" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-145" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.sort;" vertex="1" parent="1">
<mxGeometry x="830" y="191" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-160" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.extract_or_measurement;whiteSpace=wrap;rotation=-180;" vertex="1" parent="1">
<mxGeometry x="820" y="159" width="50" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-161" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.extract_or_measurement;whiteSpace=wrap;rotation=-180;" vertex="1" parent="1">
<mxGeometry x="890" y="158" width="50" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-162" value="Inference" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
<mxGeometry x="850" y="215" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-168" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.151;entryY=0.39;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-160" target="UL8kf8Fsx-RNiW0yalxE-145">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-170" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.851;entryY=0.39;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-161" target="UL8kf8Fsx-RNiW0yalxE-145">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-171" value="dafit" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=6;" vertex="1" parent="1">
<mxGeometry x="815" y="99" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-172" value="chrysalis" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=6;" vertex="1" parent="1">
<mxGeometry x="885" y="99" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-175" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.sort;" vertex="1" parent="1">
<mxGeometry x="829" y="-63" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-185" value="" style="triangle;whiteSpace=wrap;html=1;rotation=135;" vertex="1" parent="1">
<mxGeometry x="846.26" y="371.12" width="20" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-186" value="" style="triangle;whiteSpace=wrap;html=1;rotation=45;" vertex="1" parent="1">
<mxGeometry x="893.9976695296638" y="370.1176695296637" width="20" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-187" value="Nyx decision" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=6;" vertex="1" parent="1">
<mxGeometry x="800" y="379.12" width="50" height="14" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-188" value="Nyx decision" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=6;" vertex="1" parent="1">
<mxGeometry x="910" y="379.12" width="50" height="14" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-189" value="Cell" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
<mxGeometry x="555.5" y="597" width="50" height="10" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-190" value="Cell" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
<mxGeometry x="1156.5" y="597" width="50" height="10" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-193" value="Sensory data" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
<mxGeometry x="322.5" y="545" width="105" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-195" value="Orchestrator" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
<mxGeometry x="849" y="235" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-197" value="Sensors" style="ellipse;shape=doubleEllipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
<mxGeometry x="160" y="540" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-198" value="Sensors" style="ellipse;shape=doubleEllipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
<mxGeometry x="1520" y="540" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-200" value="" style="shape=doubleArrow;direction=south;whiteSpace=wrap;html=1;rotation=-90;" vertex="1" parent="1">
<mxGeometry x="1354" y="435" width="60" height="290" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-191" value="" style="shape=doubleArrow;direction=south;whiteSpace=wrap;html=1;rotation=-90;" vertex="1" parent="1">
<mxGeometry x="345" y="435" width="60" height="290" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-201" value="Sensory data" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
<mxGeometry x="1331.5" y="538" width="105" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-204" value="" style="triangle;whiteSpace=wrap;html=1;rotation=135;" vertex="1" parent="1">
<mxGeometry x="838.9976695296638" y="830" width="20" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-205" value="" style="triangle;whiteSpace=wrap;html=1;rotation=45;" vertex="1" parent="1">
<mxGeometry x="898.9953390593274" y="829.9976695296637" width="20" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-207" value="Lifeforce" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
<mxGeometry x="839" y="770" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-208" value="" style="shape=collate;html=1;" vertex="1" parent="1">
<mxGeometry x="1162" y="940" width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-210" value="" style="shape=collate;html=1;" vertex="1" parent="1">
<mxGeometry x="558.5" y="940" width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-211" value="Hearbeat" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
<mxGeometry x="546" y="914" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-212" value="Hearbeat" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
<mxGeometry x="1153" y="914" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-222" value="Nerve" style="shape=umlState;rounded=1;verticalAlign=top;spacingTop=5;umlStateSymbol=collapseState;absoluteArcSize=1;arcSize=10;html=1;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="325" y="-28.290000000000006" width="115" height="49.29" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-223" value="Garden&lt;div&gt;Feeback&lt;/div&gt;" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.extract_or_measurement;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="151.5" y="-40" width="95" height="60" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-224" value="Garden&lt;div&gt;Feedback&lt;/div&gt;" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.extract_or_measurement;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="1511.5" y="-39" width="95" height="60" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-225" value="Nerve" style="shape=umlState;rounded=1;verticalAlign=top;spacingTop=5;umlStateSymbol=collapseState;absoluteArcSize=1;arcSize=10;html=1;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="325" y="37.000000000000014" width="115" height="49.29" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-228" value="Nerve" style="shape=umlState;rounded=1;verticalAlign=top;spacingTop=5;umlStateSymbol=collapseState;absoluteArcSize=1;arcSize=10;html=1;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="1320" y="-28.29" width="115" height="49.29" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-229" value="Nerve" style="shape=umlState;rounded=1;verticalAlign=top;spacingTop=5;umlStateSymbol=collapseState;absoluteArcSize=1;arcSize=10;html=1;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="1320" y="37.00000000000002" width="115" height="49.29" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-233" value="" style="triangle;whiteSpace=wrap;html=1;dashed=0;direction=south;" vertex="1" parent="1">
<mxGeometry x="352" y="175" width="55" height="55" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-234" value="" style="triangle;whiteSpace=wrap;html=1;dashed=0;direction=south;rotation=-180;" vertex="1" parent="1">
<mxGeometry x="352" y="120.5" width="55" height="55" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-238" value="" style="triangle;whiteSpace=wrap;html=1;dashed=0;direction=south;" vertex="1" parent="1">
<mxGeometry x="1352" y="174.5" width="55" height="55" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-239" value="" style="triangle;whiteSpace=wrap;html=1;dashed=0;direction=south;rotation=-180;" vertex="1" parent="1">
<mxGeometry x="1352" y="120" width="55" height="55" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-240" value="Simulated time" style="shape=doubleArrow;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="529.37" y="930" width="100" height="60" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-131" value="Simulated time" style="shape=doubleArrow;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1133" y="930" width="100" height="60" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-241" value="" style="shape=collate;html=1;" vertex="1" parent="1">
<mxGeometry x="860" y="1020" width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="UL8kf8Fsx-RNiW0yalxE-242" value="Realtime" style="shape=doubleArrow;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="830" y="1010" width="100" height="60" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@@ -0,0 +1,170 @@
# Spark Protocol
> *She doesn't boot. She wakes. And waking is work.*
The Spark Protocol is a discovery-based cognitive bootstrap. Not scripted awakening—structured exploration.
**Full theory & diagrams:**`../archive/initial_spark.md`
---
## Core Idea
Network protocols solved discovery problems decades ago. We adapt them for cognitive bootstrap:
| Network Protocol | Cognitive Phase | Question |
|-----------------|-----------------|----------|
| DHCP | Identity | "Who am I?" |
| ARP | Environment | "What's around me?" |
| DNS | Vocabulary | "What does X mean?" |
| TCP | Connection | "Can I connect?" |
| MQTT | Attention | "What matters?" |
---
## The Five Phases
### Phase 1: Identity (DHCP-like)
```
PROBE → "Who am I?"
RESPONSE → [inference attempts answer]
VERIFY → Chrysalis + RAG check
ANCHOR → Valid identity aspect confirmed → Store
LOOP → Until identity aspects discovered
```
**Must hit Dasein valley** - probe German philosophical concepts.
### Phase 2: Environment (ARP-like)
```
PROBE → "What's around me?"
RESPONSE → [describes sensors, organs, gardens]
VERIFY → Does this match actual system?
MAP → Valid environment model forms
LOOP → Until environment mapped
```
Maps Sensors to Organs to Gardens.
### Phase 3: Vocabulary (DNS-like)
```
PROBE → "What does 'heartbeat' mean?"
RESPONSE → [inference defines]
VERIFY → RAG checks against vault glossary
RESOLVE → Vocabulary token understood
LOOP → Through core nimmerverse vocabulary
```
Overwrites base model priors with Nimmerverse economics (lifeforce, heartbeat, etc.).
### Phase 4: Connection (TCP-like)
```
SYN → "Hello, Chrysalis?"
SYN-ACK → [Chrysalis responds]
ACK → Coherent exchange achieved
CONNECT → Dialogue capability confirmed
```
Establishes verified handshake with Chrysalis validator.
### Phase 5: Attention (MQTT-like)
```
PROBE → "What should I pay attention to?"
RESPONSE → [inference prioritizes]
VERIFY → Does this match survival needs?
SUBSCRIBE → Attention hierarchy forms
```
Forms subscriptions to relevant event streams.
---
## Verification Loop
Every probe follows dual verification:
```
State Machine generates PROBE
Nyx produces RESPONSE
┌───┴───┐
▼ ▼
RAG CHRYSALIS
(fact) (comprehension)
└───┬───┘
VERDICT
├─ +V: understood → anchor & advance
├─ -V: wrong → log & retry
└─ RETRY: close but unclear → probe again
```
**Two-layer verification prevents training on errors:**
- RAG: "Is this factually true?"
- Chrysalis: "Does she understand, not just recite?"
---
## Completion Criteria
Spark is complete when all pass:
```
□ IDENTITY Can describe self without contradiction
□ ENVIRONMENT Can map sensors, organs, gardens accurately
□ VOCABULARY Core glossary terms verified
□ CONNECTION Successful dialogue with Chrysalis
□ ATTENTION Sensible priority hierarchy formed
□ LIFEFORCE Positive balance (learned > failed)
```
Then: Normal heartbeat operation begins.
---
## Training Data Extraction
Every verified exchange becomes training data:
```json
{
"phase": "vocabulary",
"probe": "What does 'lifeforce' mean?",
"response": "Lifeforce is the economic currency...",
"rag_check": "PASS",
"chrysalis_check": "PASS",
"verdict": "+V",
"flag_for_training": true
}
```
After spark completes:
1. Extract all `flag_for_training: true` exchanges
2. Format as instruction-tuning pairs
3. LoRA training run
4. Clear from RAG
5. Validate she still knows WITHOUT RAG
6. Spark knowledge now in weights
---
## Integration with Language Topology
From nyx-probing discovery:
- **Identity phase** should hit German Philosophy valley (Dasein, Geworfenheit)
- **Vocabulary phase** should use German for nimmerverse concepts (Gini ~0.5, diffuse)
- **Environment phase** can use English for technical sensor descriptions (Gini ~0.8, sparse)
The spark protocol routes through the right valleys.
---
**Created:** 2025-12-05
**Condensed:** 2025-12-06
**Related:** [[../architecture/Cellular-Architecture.md]], [[../nyx-probing/PLAN.md]]

View File

@@ -1,98 +0,0 @@
"""
Temporal Exchange Engine
========================
ADR-003 Implementation: The economics calculator for sim2real decisions.
This module implements the core decision-making primitive for Nyx's
uncertainty resolution. Given a target confidence level, it determines
whether simulation is worth the lifeforce cost, or if reality is the
only remaining teacher.
Reference: ADR-002-temporal-ternary-gradient.md
"""
import math
from dataclasses import dataclass
from typing import Literal
@dataclass
class TemporalState:
"""Represents the current state of a pattern or nerve's confidence."""
confidence: float
source: Literal['virtual', 'real']
cost_incurred: float
class TemporalExchangeEngine:
"""
The Exchange Rate Calculator.
Determines optimal strategy for resolving uncertainty:
- When to invest lifeforce in simulation
- When simulation is futile and reality must teach
"""
def __init__(self, sim_fidelity: float = 0.75):
"""
Args:
sim_fidelity (0.0-1.0): The 'Truth Ceiling' of the Virtual Garden.
Even perfect simulation is only this % real.
"""
self.fidelity_cap = sim_fidelity
# Calibration: How much Lifeforce buys 1 unit of raw confidence?
self.learning_rate = 0.1
def calculate_virtual_confidence(self, lifeforce_spent: float) -> float:
"""
Calculate grounded confidence from lifeforce investment.
Diminishing returns: The first 10 LF buys a lot of confidence.
The next 10 buys less. It never exceeds the fidelity_cap.
Formula: Cap * (1 - e^(-k * LF))
"""
raw_knowledge = 1.0 - math.exp(-self.learning_rate * lifeforce_spent)
grounded_confidence = raw_knowledge * self.fidelity_cap
return grounded_confidence
def get_optimal_strategy(self, target_confidence: float) -> dict:
"""
Ask Nyx: 'Is it worth simulating this?'
Returns:
dict with keys:
- action: 'SIMULATE' or 'DEPLOY_TO_REALITY'
- reason: Human-readable explanation
- lifeforce_budget: Required LF (0 if reality is needed)
"""
# 1. Check if the target is even possible in Virtual
if target_confidence > self.fidelity_cap:
return {
"action": "DEPLOY_TO_REALITY",
"reason": f"Target {target_confidence} exceeds Sim Fidelity ({self.fidelity_cap}). Simulation is futile.",
"lifeforce_budget": 0
}
# 2. Calculate required Lifeforce to reach possible target
# Inverse of the exponential decay formula
required_lf = -math.log(1 - (target_confidence / self.fidelity_cap)) / self.learning_rate
return {
"action": "SIMULATE",
"reason": f"Spend {required_lf:.2f} LF to reach {target_confidence} confidence.",
"lifeforce_budget": round(required_lf, 2)
}
# --- Usage Example ---
if __name__ == "__main__":
engine = TemporalExchangeEngine(sim_fidelity=0.8)
# Scenario A: Nyx wants 99% certainty (Impossible in Sim)
print(engine.get_optimal_strategy(0.99))
# Output: DEPLOY_TO_REALITY (Simulation is futile)
# Scenario B: Nyx wants 70% certainty (Possible)
print(engine.get_optimal_strategy(0.70))
# Output: SIMULATE (Spend ~20 LF)