Symbolic cognition infrastructure for emotional AI, narrative engines, and tonal NPCs.
This Phase 1 release includes the core pipeline from tone signal detection to field resonance and contextual modulation.
🚀 Live Demo: https://spanda-engine-predemo.vercel.app
This is a simplified public preview of the Spanda Engine™ — a system for real-time emotional resonance modeling, symbolic tone parsing, and recursive narrative logic.
The full PUTMAN Suite of Emotive Software will be released in stages.
- Node.js v16+ (recommended: v18+)
- npm v8+
git clone https://github.com/putmanmodel/spanda-pranasphere.git
cd spanda-pranasphere
npm installnpm run liveNuanceTest
# or
npm run test:nuanceThis simulates the full flow:
- Injects mock tone signals
- Detects arcs from deviation
- Tracks resonance in the PranaSphere
- Runs contextual inference
| Module | Description | Sample Output |
|---|---|---|
stackedDeviation.ts |
Detects arcs from emotional deviation | arcType: 'swing' |
toneArcMemory.ts |
Tracks tone memory across poles | avgDeviation: 0.35 |
contextualToneInference.ts |
Infers alignment between tone + mood | resonance: 'aligned' |
memoryBuffer.ts |
Temporary buffer for tone snapshots | n/a |
liveNuanceTest.ts |
Runs the full Spanda + PranaSphere stack | Full inference output |
flowchart TD
A["Tone Input (Vector)"] --> B["ToneSig Generation"]
B --> C["Deviation Analysis"]
C --> D["Arc Classification"]
D --> E["PranaSphere Update"]
E --> F["Contextual Tone Inference"]
F --> G["Modulation Strategy"]
npm run lint
npm run typecheck- Cover edge cases: sarcasm flips, zero-deviation, conflicting poles
- Write unit tests for each module under
src/
To run symbolic tone engine tests against curated edge case scenarios:
npm run edge-case -- <case-id>| ID | Description |
|---|---|
sarcasm-flip |
High-tone input meant ironically — initial positivity flips to sharp negative. |
flatline-no-deviation |
Repeated neutral inputs show no emotional swing — stability with zero arc. |
clashing-signals |
Two poles receive opposing inputs — system must choose dominant or flag conflict. |
overamplification-drift |
Rapid tone escalation leads to runaway loop — tests intensity vs decay balance. |
| Case ID | Arc Type | Peak Pole | Avg Deviation | Inference Summary |
|---|---|---|---|---|
sarcasm-flip |
surge |
1 | -0.20 | Clashing → Redirect; then Neutral → Dampen |
flatline-no-deviation |
flat |
2 | 0.00 | Both aligned → Amplify |
clashing-signals |
swing |
4 | -0.03 | Both clashing → Redirect |
overamplification-drift |
swing |
5 | +1.23 | Dampen → Dampen → Amplify |
- Fork the repo
- Create a feature branch
- Add your code + tests
- Submit a PR with a clear explanation
- TS errors after file changes? → Restart the TypeScript server or clear your IDE cache
- No tone data? → Run
liveNuanceTestonce to seed memory before inference
📄 License
Licensed under CC-BY-NC 4.0
Free for research, education, and non-commercial use.
Commercial licensing available by inquiry.
- Email: putmanmodel@pm.me
- X (Twitter): @putmanmodel
- LinkedIn: Stephen A. Putman
- BlueSky: @putmanmodel.bsky.social
The included
tonePairs.jsonandkeywordMap.jsonform the symbolic base for future emotional modeling tools.
These files support upcoming visual and semantic systems currently in active R&D.
- 🎨 ToneGlowHUD™ — Real-time emotional field overlays (Unity-ready)
- 🧠 Nuance Engine — Symbolic tone memory with recursive deviation tracking
- 📊 ToneSig Scene Designer — Visualize NPC state arcs + resonance clusters
These features are exploratory and may evolve as the Spanda Engine develops.
1.0.0