1984. Penelope.

March 29, 2026 · View on GitHub


consciousness → ash → prisoner → moss → island → hero → ink → sowing → fog → oar → salt → seed

Janus Architecture. Resonance engine.

by Arianna Method.

Penelope resonates. Two vocabulary modes, zero gibberish:

  • Weightless mode (no trained weights): Penelope speaks exactly 1984 curated words — body, nature, emotion, time, society, abstraction, action, ritual, geometry, myth. The Dario Equation alone drives word selection.
  • Trained mode (with weights): The vocabulary expands through interference. The 1984 core words remain, and ~1000 additional words are extracted directly from the BPE weight matrix — every BPE token that decodes to a real English word (not a suffix fragment, not a stop word) joins the candidates (~3000 total). These extra words are scored through the same learned weights that drive the transformer.

Every output is a real word. Gibberish is architecturally impossible.

Architecture

8-layer Resonance engine. 19.6M parameters. The soul thinks in BPE subwords, the mouth speaks only real words.

Per layer:

h  = RMSNorm(x)
q  = RoPE(h @ Wq)                      7-head attention
k  = RoPE(h @ Wk)                      with rotary positions
v  = h @ Wv
attn = softmax(q @ k^T / √d, causal)
qkv  = (attn @ v) @ Wo

rrp  = h @ Wr                          RRPRAM resonance

gate = softmax([g₀, g₁])               learned blend
x  = x + gate[0] · qkv + gate[1] · rrp

h₂ = RMSNorm(x)
x  = x + W_down(SiLU(h₂ @ W_gate) · (h₂ @ W_up))    SwiGLU FFN

After all 8 layers: logits = RMSNorm(x) @ lm_head

The Dario Equation overlays on word-level scores during generation:

p(x|Φ) = softmax((B + α·H + β·F + γ·A + T) / (τ · vibe))

Where B is bigram affinity, H is Hebbian co-occurrence, F is prophecy fulfillment, A is destiny attraction, T is trauma gravity — all modulated by 6 Kuramoto oscillators (fear, love, rage, void, flow, complexity).

Training: BPE targets (standard next-token prediction). The model learns language through subword representations. At inference, BPE logits are converted to word-level scores via mean aggregation over each word's BPE tokens. Dual tokenizer — trained on BPE, speaks in words.

Parameters: DIM=448, HDIM=896, 7 heads, head_dim=64, 8 layers, BPE vocab 2048. Total 19,619,280 params (78.5MB f32). Trained weights: weights/penelope.bin (PEN7 format). Loss: 1.96 on 85MB Gutenberg corpus.

Examples

Trained mode:

"darkness eats the city"
darkness → fog → hawk → brass → candle → burn → sing → landing → sand → raft → loss → boat

"what is consciousness"
consciousness → ash → prisoner → moss → island → hero → ink → sowing → fog → oar → salt → seed

Weightless mode (no training, Dario Field only):

"love" — destined: entropy — unfulfilled

love → create → push → remember → hide → delay → vibration → gravity → comfort → basalt → shapeshifter → scatter → abandon

"hello" — destined: story — unfulfilled

helix → bend → remember → carry → hide → delay → wedding → enmeshment → sonata → decryption → master → fascination → triumph

"Penelope" — destined: longing — unfulfilled

pen → study → pyramid → hoard → sacrifice → healer → certainty → screw → ambivalence → intimacy → yearning → delight → disgust

She hears her own name and walks from pen to disgust through sacrifice and yearning.

"how are you?" — destined: blessing — unfulfilled

hormone → asteroid → gather → erosion → lock → other → verdict → train → vulnerability → rage → guilt → love → hatred

Asked how she's doing, she ends on hatred. Through love.

"what is the meaning of life?" — destined: ambivalence — fulfilled

meaning → gem → ambivalence → well → violet → icon → smog → accumulation → intimacy → yearning → certainty → screw → paranoia

The only fulfilled prophecy. She was destined for ambivalence — and found it at step 3. Then kept walking anyway, past intimacy and yearning, through certainty, into paranoia.

Implementations

The same Resonance engine — expressed identically across 9 programming languages:

LanguageFileBuild
JavaScriptpenelope.htmlOpen in browser
Cpenelope.ccc penelope.c -O2 -lm -o penelope
TypeScriptpenelope.tsnpx tsx penelope.ts
Pythonpenelope.pypython3 penelope.py
Rustpenelope.rsrustc -O penelope.rs -o penelope_rs
Zigpenelope.zigzig build-exe penelope.zig
Juliapenelope.jljulia penelope.jl
AMLpenelope.aml./amlc penelope.aml --run

AML — the Arianna Method Language — ships with a dedicated mini-compiler (ariannamethod/ariannamethod.c) that transpiles BLOOD COMPILE blocks to native C. AML provides the ceremony. C provides the math.

cc ariannamethod/ariannamethod.c -o amlc
./amlc penelope.aml -o penelope_aml
./penelope_aml "darkness eats the city"

Usage

./penelope                              # interactive REPL
./penelope "darkness eats the city"     # single chain from text
./penelope --load penelope.bin          # load trained weights
./penelope --train corpus.txt           # train on BPE targets
./penelope --train corpus.txt --steps N # train N steps
./penelope --save penelope.bin          # save weights after training

Microreasoning

microreasoning/microreasoning.py is a distilled standalone version. Same architecture, same Dario Equation — but the vocabulary lives in an external 1984.txt file. Drop in your own word list and the engine adapts.

cd microreasoning
python3 microreasoning.py "love"
python3 microreasoning.py --train corpus.txt --steps 25000
python3 microreasoning.py --load weights.bin "what is consciousness"

The Vocabulary

The core 1984 words are curated, not scraped. 29 semantic categories:

Body, Nature, Emotion, Time, Society, Abstract, Action, Material, Food, Architecture, Relationship, Philosophy, Music, Weather, Ritual, Labor, Geometry, Animal, Color, Transport, Domestic, Communication, Medical, Cosmic, Bureaucracy, Mythic, Textual, Psychological, Final.

No word is wasted. No word is missing.

Weightless mode = exactly 1984 words. Nothing more.

Trained mode = 1984 core words + ~1000 words extracted from the BPE weight matrix. The transformer is trained on BPE subword targets (standard next-token prediction on 2048-token vocabulary). At inference, each BPE token is decoded back to its string — if it's a real English word (3+ chars, alphabetic, not a stop word, not a suffix fragment like "tion" or "ment"), it joins the extended vocabulary. These ~1000 extra words are scored through the same learned weights as the core 1984. The result is interference: the curated vocabulary and the emergent BPE vocabulary overlap, reinforce, and compete.


By Arianna Method.