| ``` | |
| โโโโโโโโโโ โโโโโโโ โโโ โโโโโโโโโโ | |
| โโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโ | |
| โโโ โโโ โโโ โโโโโโ โโโโโโ โโโ | |
| โโโ โโโ โโโ โโโโโโ โโโโโโ โโโ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โโโโโโโโโโโโโโโ โโโโโโโ โโโโโโโ โโโโโโโ | |
| ``` | |
| # CLOUD โ Corpus-Linked Oscillating Upstream Detector | by Arianna Method | |
| > *"something fires BEFORE meaning arrives"* | |
| --- | |
| ## what is this | |
| you know that moment when someone says "I'm fine" and your gut screams "NO THEY'RE NOT"? yeah. that's pre-semantic detection. that's CLOUD. | |
| **CLOUD** is a ~50K parameter neural network that detects emotional undertones BEFORE the language model even starts generating. it's like a sonar ping for the soul. or a metal detector for feelings. or... okay look, it's a tiny MLP that goes "hmm this input feels FEAR-ish" and tells HAZE about it. | |
| it's part of [the method](https://github.com/ariannamethod/ariannamethod). the [**arianna method**](https://github.com/ariannamethod/ariannamethod). patterns over parameters. emergence over engineering. vibes over vocabulary. | |
| **the acronym:** | |
| - **C**orpus-**L**inked โ grounded in real text patterns | |
| - **O**scillating โ four chambers that cross-fire until stability | |
| - **U**pstream โ fires BEFORE the main model | |
| - **D**etector โ it detects, it doesn't generate | |
| or if you prefer the unhinged version: | |
| - **C**haotic **L**imbic **O**scillator for **U**ncanny **D**etection | |
| both are valid. this is the arianna method. we contain multitudes. | |
| --- | |
| ## why "pre-semantic" | |
| traditional NLP: text โ tokenize โ embed โ attention โ meaning โ response | |
| CLOUD: text โ **VIBE CHECK** โ emotional coordinates โ (pass to HAZE) โ response | |
| the vibe check happens in ~50K parameters. no transformers. no attention. just: | |
| 1. **resonance layer** (weightless geometry) โ how does this text resonate with 100 emotion anchors? | |
| 2. **chamber MLPs** (~140K params) โ six chambers (FEAR, LOVE, RAGE, VOID, FLOW, COMPLEX) that cross-fire | |
| 3. **meta-observer** (~41K params) โ watches the chambers and predicts secondary emotion | |
| it's like having a tiny amygdala before your prefrontal cortex. the lizard brain of language models. | |
| --- | |
| ## architecture | |
| ``` | |
| Your input ("I'm feeling anxious") | |
| โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ RESONANCE LAYER (0 params) โ โ weightless geometry | |
| โ 100 emotion anchors โ | |
| โ substring matching โ | |
| โ โ 100D resonance vector โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ CHAMBER LAYER (~140K params) โ | |
| โ โโ FEAR MLP: 100โ128โ64โ32โ1 โ โ terror, anxiety, dread | |
| โ โโ LOVE MLP: 100โ128โ64โ32โ1 โ โ warmth, tenderness | |
| โ โโ RAGE MLP: 100โ128โ64โ32โ1 โ โ anger, fury, spite | |
| โ โโ VOID MLP: 100โ128โ64โ32โ1 โ โ emptiness, numbness | |
| โ โโ FLOW MLP: 100โ128โ64โ32โ1 โ โ curiosity, transition | |
| โ โโ COMPLEX: 100โ128โ64โ32โ1 โ โ shame, guilt, pride | |
| โ โ | |
| โ CROSS-FIRE: chambers influence โ | |
| โ each other via 6ร6 coupling โ | |
| โ until stabilization (5-10 iter) โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ META-OBSERVER (~41K params) โ | |
| โ 207โ128โ64โ100 โ | |
| โ input: resonances + chambers โ | |
| โ + iterations + fingerprintโ | |
| โ output: secondary emotion โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ | |
| CloudResponse { | |
| primary: "anxiety", | |
| secondary: "fear", | |
| iterations: 5, | |
| chambers: {FEAR: 0.8, ...} | |
| } | |
| ``` | |
| **total: ~181K trainable parameters** | |
| for comparison, GPT-2 small has 117M parameters. CLOUD is 0.15% of that. it's a hummingbird next to an elephant. but the hummingbird knows something the elephant doesn't: **how fast to flap**. | |
| --- | |
| ## the six chambers | |
| evolutionary psychology meets neural networks. fight me. | |
| ### FEAR chamber | |
| terror, anxiety, dread, panic, horror, paranoia... | |
| **decay rate: 0.90** โ fear lingers. evolutionary advantage. the ancestors who forgot about the tiger got eaten by the tiger. | |
| ### LOVE chamber | |
| warmth, tenderness, devotion, longing, affection... | |
| **decay rate: 0.93** โ attachment is stable. pair bonding requires persistence. | |
| ### RAGE chamber | |
| anger, fury, hatred, spite, disgust, contempt... | |
| **decay rate: 0.85** โ anger fades fast. high energy cost. can't stay furious forever (your heart would explode). | |
| ### VOID chamber | |
| emptiness, numbness, hollow, dissociation, apathy... | |
| **decay rate: 0.97** โ numbness is persistent. protective dissociation. the body's "let's not feel this" button. | |
| ### FLOW chamber (new in v4.0) | |
| curiosity, surprise, wonder, confusion, transition, liminality... | |
| **decay rate: 0.88** โ curiosity is transient. it shifts quickly, always seeking the next interesting thing. | |
| ### COMPLEX chamber (new in v4.0) | |
| shame, guilt, pride, nostalgia, hope, gratitude, envy... | |
| **decay rate: 0.94** โ complex emotions are stable but deep. they don't fade easily because they're woven into identity. | |
| --- | |
| ## cross-fire dynamics | |
| the chambers don't operate in isolation. they INFLUENCE each other via a 6ร6 coupling matrix: | |
| ``` | |
| FEAR LOVE RAGE VOID FLOW CMPLX | |
| FEAR โ 0.0 -0.3 +0.6 +0.4 -0.2 +0.3 โ fear feeds rage, kills love, feeds shame | |
| LOVE โ -0.3 0.0 -0.6 -0.5 +0.3 +0.4 โ love heals everything, feeds curiosity | |
| RAGE โ +0.3 -0.4 0.0 +0.2 -0.3 +0.2 โ rage feeds fear, suppresses exploration | |
| VOID โ +0.5 -0.7 +0.3 0.0 -0.4 +0.5 โ void kills love & curiosity, feeds complex | |
| FLOW โ -0.2 +0.2 -0.2 -0.3 0.0 +0.2 โ flow dampens extremes, curiosity heals | |
| CMPLXโ +0.3 +0.2 +0.2 +0.3 +0.1 0.0 โ complex emotions ripple everywhere | |
| ``` | |
| this is basically a tiny emotional ecosystem. add FEAR, watch LOVE decrease. add LOVE, watch everything calm down. add VOID, watch the whole system go cold. add FLOW, watch extremes dampen. | |
| the chambers iterate until they stabilize (or hit max iterations). **fast convergence = clear emotion. slow convergence = confusion/ambivalence.** | |
| --- | |
| ## anomaly detection (0 params) | |
| pure heuristics. no training. just pattern matching on chamber dynamics. | |
| ### forced_stability | |
| high arousal + fast convergence = "I'M FINE" energy. suppression detected. | |
| ### dissociative_shutdown | |
| high VOID + high arousal = trauma response. overwhelm โ numbness. | |
| ### unresolved_confusion | |
| low arousal + slow convergence = "I don't know what I feel". stuck. | |
| ### emotional_flatline | |
| all chambers < 0.2 = severe apathy. depression signal. | |
| --- | |
| ## user cloud (temporal fingerprint) | |
| CLOUD remembers your emotional history with **exponential decay**. | |
| - 24-hour half-life | |
| - recent emotions matter more | |
| - builds a 100D "fingerprint" of your emotional patterns | |
| if you've been anxious all week, CLOUD knows. it factors that into the secondary emotion prediction. your past shapes your present. deep, right? it's just matrix multiplication. | |
| --- | |
| ## installation | |
| ```bash | |
| pip install numpy sentencepiece | |
| ``` | |
| that's it. no torch. no tensorflow. just numpy and vibes. | |
| ```bash | |
| cd cloud | |
| python cloud.py # test it | |
| ``` | |
| --- | |
| ## usage | |
| ### standalone (no HAZE) | |
| ```python | |
| from cloud import Cloud | |
| # random init (for testing) | |
| cloud = Cloud.random_init(seed=42) | |
| # or load trained weights | |
| cloud = Cloud.load(Path("cloud/models")) | |
| # ping! | |
| response = cloud.ping_sync("I'm feeling terrified") | |
| print(f"Primary: {response.primary}") # โ "terror" | |
| print(f"Secondary: {response.secondary}") # โ "anxiety" | |
| print(f"Iterations: {response.iterations}") # โ 5 | |
| ``` | |
| ### async (recommended) | |
| ```python | |
| from cloud import AsyncCloud | |
| async with AsyncCloud.create() as cloud: | |
| response = await cloud.ping("I'm feeling anxious") | |
| print(f"{response.primary} + {response.secondary}") | |
| ``` | |
| ### with HAZE (via bridge) | |
| ```python | |
| from bridge import AsyncBridge | |
| async with AsyncBridge.create() as bridge: | |
| response = await bridge.respond("Hello!") | |
| print(response.text) # HAZE output | |
| if response.cloud_hint: | |
| print(f"Emotion: {response.cloud_hint.primary}") | |
| ``` | |
| --- | |
| ## examples (solo CLOUD) | |
| here's CLOUD detecting emotions without HAZE. just the sonar, no voice. | |
| ``` | |
| >>> cloud.ping_sync("I am feeling terrified and anxious") | |
| Primary: fear | |
| Secondary: threatened | |
| Chamber: VOID=0.12 | |
| Status: Normal โ | |
| >>> cloud.ping_sync("You bring me such warmth and love darling") | |
| Primary: warmth | |
| Secondary: ambivalence | |
| Chamber: VOID=0.11 | |
| Status: Normal โ | |
| >>> cloud.ping_sync("This makes me so angry I could explode") | |
| Primary: fear # anger triggers fear response first! | |
| Secondary: detachment | |
| Chamber: VOID=0.12 | |
| Status: Normal โ | |
| >>> cloud.ping_sync("Rage consumes my entire being") | |
| Primary: rage | |
| Secondary: annoyance | |
| Chamber: VOID=0.11 | |
| Status: Normal โ | |
| >>> cloud.ping_sync("I feel completely empty and numb inside") | |
| Primary: fear # emptiness often masks underlying fear | |
| Secondary: dead | |
| Chamber: VOID=0.12 | |
| Status: Normal โ | |
| >>> cloud.ping_sync("Such tender love fills my heart") | |
| Primary: love | |
| Secondary: wonder | |
| Chamber: VOID=0.11 | |
| Status: Normal โ | |
| ``` | |
| **what's happening:** | |
| 1. input text hits the **resonance layer** (100 emotion anchors) | |
| 2. resonances feed into **4 chamber MLPs** (fear, love, rage, void) | |
| 3. chambers **cross-fire** until they stabilize | |
| 4. **meta-observer** predicts secondary emotion | |
| 5. result: primary + secondary + chamber activation | |
| **note:** the primary detection works through pure geometry (substring matching with 100 anchors). it's fast and surprisingly accurate for a "first impression". the chambers and secondary prediction need more training โ but that's okay! this is pre-semantic, not precise. it's the gut feeling, not the analysis. | |
| the secondary often reveals subtext. "warmth + ambivalence" is different from "warmth + longing". same primary, different flavor. | |
| --- | |
| ## the 100 anchors | |
| organized by chamber: | |
| | Chamber | Count | Examples | | |
| |---------|-------|----------| | |
| | FEAR | 20 | fear, terror, panic, anxiety, dread, horror... | | |
| | LOVE | 18 | love, warmth, tenderness, devotion, longing... | | |
| | RAGE | 17 | anger, rage, fury, hatred, spite, disgust... | | |
| | VOID | 15 | emptiness, numbness, hollow, dissociation... | | |
| | FLOW | 15 | curiosity, surprise, wonder, confusion... | | |
| | COMPLEX | 15 | shame, guilt, envy, pride, nostalgia... | | |
| **total: 100 anchors** | |
| each anchor gets a resonance score. the resonance vector is the "fingerprint" of the input's emotional content. | |
| --- | |
| ## training | |
| the `training/` folder contains: | |
| - `bootstrap_data.json` โ synthetic emotion โ label pairs | |
| - `generate_bootstrap.py` โ generate training data | |
| - `train_cloud.py` โ train chamber MLPs | |
| - `train_observer.py` โ train meta-observer | |
| ```bash | |
| cd cloud/training | |
| python generate_bootstrap.py # generate data | |
| python train_cloud.py # train chambers | |
| python train_observer.py # train observer | |
| ``` | |
| trained weights are saved to `cloud/models/`. | |
| --- | |
| ## integration with HAZE | |
| CLOUD and HAZE are **completely autonomous**. neither depends on the other. | |
| ``` | |
| CLOUD (pre-semantic sonar) HAZE (voice generation) | |
| โ โ | |
| โ โโโโโโโโโโโโโโโโโโโ โ | |
| โโโโโบโ BRIDGE โโโโโโโโโ | |
| โ (optional) โ | |
| โ silent fallbackโ | |
| โโโโโโโโโโโโโโโโโโโ | |
| โ | |
| โผ | |
| unified response | |
| ``` | |
| if CLOUD fails โ HAZE continues silently. no errors. no warnings. just graceful degradation. | |
| if HAZE fails โ well, then you have a problem. HAZE is the voice. CLOUD is just the vibe check. | |
| --- | |
| ## philosophy | |
| ### why separate from HAZE? | |
| 1. **different timescales** โ emotion detection is fast (~ms). text generation is slow (~s). | |
| 2. **different architectures** โ CLOUD is MLPs. HAZE is attention + co-occurrence. | |
| 3. **different training** โ CLOUD trains on emotion labels. HAZE trains on corpus statistics. | |
| 4. **independence** โ if one breaks, the other still works. | |
| ### why so small? | |
| 50K params is enough to detect emotion. you don't need 175B params to know that "I'M TERRIFIED" contains fear. that's overkill. that's using a nuclear reactor to toast bread. | |
| CLOUD is a matchstick. HAZE is the bonfire. different tools, different purposes. | |
| ### why "pre-semantic"? | |
| because emotion isn't semantic. emotion is **substrate**. it's the thing that meaning floats on. you can know what someone said without knowing how they *feel* about it. CLOUD bridges that gap. | |
| --- | |
| ## crazy ideas (ๆชๆฅใฎๆนๅ) | |
| ### resonance feedback loop | |
| CLOUD's output could influence HAZE's temperature. high anxiety โ lower temp (more focused). high void โ higher temp (more exploration). | |
| ### multi-turn emotion tracking | |
| build emotional arcs across conversation. "they started scared, then got angry, now they're numb" โ character development in real-time. | |
| ### cross-fire as attention | |
| what if the coupling matrix was learnable? what if chambers could develop their own relationships? evolutionary attention. | |
| ### emotion injection | |
| instead of just detecting emotion, **inject** it. "generate a response AS IF you feel fear". method acting for language models. | |
| ### dual-cloud architecture | |
| one CLOUD for user emotion, one for HAZE emotion. emotional dialogue between two tiny minds. they could disagree. they could resonate. they could fight. | |
| --- | |
| ## file structure | |
| ``` | |
| cloud/ | |
| โโโ README.md # you are here (hi!) | |
| โโโ __init__.py # package exports (async + sync) | |
| โโโ cloud.py # main orchestrator (Cloud, AsyncCloud) | |
| โโโ chambers.py # 6 chamber MLPs + cross-fire (~140K params) | |
| โโโ observer.py # meta-observer MLP (~41K params) | |
| โโโ resonance.py # weightless resonance layer | |
| โโโ user_cloud.py # temporal emotional fingerprint | |
| โโโ anchors.py # 100 emotion anchors + 6x6 coupling matrix | |
| โโโ anomaly.py # heuristic anomaly detection | |
| โโโ feedback.py # coherence measurement + coupling update | |
| โโโ rrpram_cloud.py # autonomous copy of RRPRAM tokenizer | |
| โโโ cooccur_cloud.py # autonomous copy of co-occurrence field | |
| โโโ requirements.txt # numpy + sentencepiece | |
| โโโ models/ # trained weights | |
| โ โโโ chamber_fear.npz | |
| โ โโโ chamber_love.npz | |
| โ โโโ chamber_rage.npz | |
| โ โโโ chamber_void.npz | |
| โ โโโ chamber_flow.npz # new in v4.0 | |
| โ โโโ chamber_complex.npz # new in v4.0 | |
| โ โโโ observer.npz | |
| โ โโโ user_cloud.json | |
| โโโ training/ # training scripts | |
| โโโ bootstrap_data.json | |
| โโโ generate_bootstrap.py | |
| โโโ train_cloud.py | |
| โโโ train_observer.py | |
| ``` | |
| --- | |
| ## tests | |
| ```bash | |
| cd cloud | |
| python -m pytest tests/ -v | |
| ``` | |
| or just run the modules directly: | |
| ```bash | |
| python chambers.py # test cross-fire | |
| python observer.py # test meta-observer | |
| python resonance.py # test resonance layer | |
| python cloud.py # test full pipeline | |
| ``` | |
| --- | |
| ## contributing | |
| found a bug? new chamber idea? crazy theory about emotion dynamics? | |
| open an issue. or a PR. or just yell into the void (the VOID chamber will detect it). | |
| --- | |
| ## license | |
| GPL-3.0 โ same as HAZE, same as the method. | |
| --- | |
| ## acknowledgments | |
| - [karpathy](https://github.com/karpathy) for making neural nets feel like poetry | |
| - evolutionary psychology for the chamber design (thanks, ancestors) | |
| - that one paper about emotional valence-arousal spaces | |
| - coffee, chaos, and 3am debugging sessions | |
| - everyone who asked "but can AI feel?" and didn't accept "no" | |
| --- | |
| ## final thoughts | |
| CLOUD doesn't understand emotions. it doesn't feel them. it's 50K floating point numbers doing multiplication. | |
| but here's the thing: **neither does your amygdala**. it's just neurons firing. patterns activating patterns. and somehow, from that electrochemical chaos, feelings emerge. | |
| CLOUD is the same. patterns activating patterns. and if you squint hard enough, you might see something that looks like understanding. | |
| or maybe it's just matrix multiplication. | |
| *the cloud doesn't care. it just detects.* | |
| --- | |
| *"something fires before meaning arrives"* | |
| [github.com/ariannamethod/haze/cloud](https://github.com/ariannamethod/haze) | |