142 lines
16 KiB
Markdown
142 lines
16 KiB
Markdown
# KHRA'GIXX — SOURCE OF TRUTH
|
||
**Written 2026-07-14. This document supersedes all prior summaries, handoffs, and MANIFESTs where they conflict with it.**
|
||
|
||
If you are a new context window, a new agent, or Jason at 3am: **read this first and trust nothing that contradicts it.** The whole reason this document exists is that the project keeps re-deriving its own state every session, re-litigating settled things, and re-merging contaminated results back into the clean pile. Stop. It's all written down here now.
|
||
|
||
---
|
||
|
||
## 0. THE ONE-PARAGRAPH TRUTH
|
||
|
||
We built a driven 2D lattice-Boltzmann fluid (the "substrate") and spent months asking whether it can hold and recall information like a neural medium. **The honest answer so far: we don't know, because we never actually tested the right question — and most of what we "found" was answering the wrong question through a broken instrument.** What is genuinely clean and known is small: the substrate runs, it self-organises into one smooth global oscillation with a single slow degree of freedom, it has a confirmed mass-leak bug, and its autonomous free-run shows no distributed spatial structure at the resolution we can see. Everything about "memory" is still open because every memory experiment used a write channel now known to be wrong. A new instrument (the observer coarse-stream, port 5561) was built 2026-07-14 and has never been used. The next real experiment has not yet been run.
|
||
|
||
---
|
||
|
||
## 1. THE MISTAKES — READ THIS SECTION EVERY TIME
|
||
|
||
These are not incidental. Each one silently shaped a pile of "results" that then got quoted as fact. If you don't hold these in mind, you WILL re-merge garbage into the clean pile.
|
||
|
||
### MISTAKE 1 — The write channel was wrong (the big one).
|
||
`inject_density` deposits a Gaussian into the **conserved density moment** — the passive, advected channel. At ω≈1.97 the collision replaces the non-equilibrium (stress) moment almost completely every step, so anything written to density gets equilibrated away in tens of cycles. **We wrote to the wrong place.** Every "associative memory / recall" experiment that used injection is therefore answering a dead question. Treat ALL injection-based memory results as VOID (see §3), not as verdicts on the substrate.
|
||
|
||
### MISTAKE 2 — We tested for NOUNS, always.
|
||
"Is the pattern in there." "Does the dot come back one-to-one." "Do the tiles correlate." Every experiment assumed memory is a *thing in a place* that gets put in and read out. This system, by everything we've observed, does not work that way. **We never once ran the actual test** (see §4, the verb). This is the deepest misinterpretation and it is STILL not fixed — even the good corpus analysis was noun-hunting (looking for recurring states/patterns/structures).
|
||
|
||
### MISTAKE 3 — Scoring by fidelity-to-input.
|
||
Every recall metric was `corr(readback, template)` — "did it match what I put in." This organism's behaviour (if it has any) is reconstruction/distortion, not fidelity. A fidelity metric can only ever find "it reproduced the input" (cheer) or "it didn't" (fail), and throws away the actual signal, which lives in *how* it departs from the input. The distortion IS the signal; we kept subtracting it away.
|
||
|
||
### MISTAKE 4 — Stimuli that can't distort.
|
||
Dot-grids and blobs have no prototype to drift toward and no detail to shed, so even if the system fuses/reconstructs, it CAN'T SHOW with those inputs. Need structured families ("a sunflower family": shared skeleton, varying details) for distortion to be visible at all.
|
||
|
||
### MISTAKE 5 — Reading a corpse and calling it the organism.
|
||
Checkpoints are dead frozen states. Telemetry is a nine-number vital-signs log. Both are what the system LEFT BEHIND, not what it IS. The behaviour — if it exists — only exists while running. We spent most of the project analysing recordings and concluding the thing is empty, when we were looking at photographs of a moving thing.
|
||
|
||
### MISTAKE 6 — The nine telemetry scalars are global averages of a million-node field.
|
||
`coherence`, `asymmetry`, etc. are single numbers computed over the WHOLE field. Of course they show "one global mode and nothing else" — the averaging destroys spatial/distributed structure before the data ever leaves the GPU. Every null from telemetry analysis is a null about nine averages, NOT about the substrate.
|
||
|
||
### MISTAKE 7 — False positives from loose gates (caught 6+ times).
|
||
The project has repeatedly produced "discoveries" that were: a threshold drawn around the observed value (dim<6.0 when the value was 5.84); a Monte-Carlo estimator sampled once giving 3-vs-2 hits called a "signal"; a −200-lag correlation that was a spectral echo of the 49-cycle drive; a fake "drive-off" condition that was just a notch filter on the output. **Every recurrence/decoding claim must survive: pre-committed threshold set BEFORE looking, a surrogate/permutation null, a bootstrap distribution (not a single sample), and a threshold NOT within one noise-width of the value.**
|
||
|
||
### MISTAKE 8 — Convoluted file history.
|
||
Multiple daemon variants copied without updating their self-identifying headers, so files LIE about what they are (the probe's header comment still says it's canonical v5). Do not trust header comments. See §5 for the real file map.
|
||
|
||
### MISTAKE 9 — Drift into dead machinery.
|
||
Agents repeatedly reached for Golden Weave, "ask another LLM for a second opinion," and other banked-null tooling because it was listed in old handoffs. These are DEAD (Golden Weave integration test: OFF 79% = ON 79%, p=1.0, zero lift). A second opinion must be a MEASUREMENT ON THE RAW FIELD, never a language model's impression of a summary.
|
||
|
||
---
|
||
|
||
## 2. CLEAN — what we actually know (never touched injection, never noun-only-contaminated)
|
||
|
||
Everything here is either the untouched substrate, the un-intervened free-run, or a hardware/software fact. None of it depends on a single density injection.
|
||
|
||
1. **The substrate runs.** Canonical `khra_gixx_1024_v5.cu`, physics frozen since 2026-06-04. 1024² D2Q9 LBM, near-inviscid ω≈1.97, driven by two travelling waves (khra λ=128 slow, gixx λ=8 fast) plus a breathing term. Self-organises into a stable autonomous attractor.
|
||
|
||
2. **The free-run corpus is clean data.** 224 canonical-parameter checkpoints (ω=1.97, khra=0.03, gixx=0.008), cycles 100k→17.4M, at `D:\Resonance_Engine\pattern_vocab\exp_instance\`. Nothing was done to the field — this is the substrate speaking with zero input. Analysing it is safe and honest.
|
||
|
||
3. **The autonomous field is one smooth global mode.** From the clean corpus: spatial power spectrum peaks at k=0 and decays monotonically, no characteristic scale, invariant across 17M cycles. Intrinsic dimension ~4–6. There is NO distributed/holographic spatial structure at 100k-cycle checkpoint resolution (tested properly, survived spatial-shuffle null). The field moves largely as one big thing.
|
||
|
||
4. **One real slow degree of freedom: coherence↔asymmetry.** Anti-correlated (r≈−0.975), a single slow collective mode. Found independently by two different methods (old E5 series AND the 2026-07 manifold analysis). This is the most-replicated real thing in the project. It is a SLOW mode — dies under both phase-shuffle and block-shuffle surrogates because it operates on ~200k-cycle timescales.
|
||
|
||
5. **CONFIRMED MASS LEAK (a real bug, possibly load-bearing).** Global mean density drifts monotonically 1.000 → 1.522 over 17.4M cycles. Density is supposed to be conserved in LBM; it isn't. Likely cause: asymmetric clamping in the collide kernel (`rho` floored at 0.1 but capped at 10.0) pumping mass in. **This means every long experiment ran on a MOVING BASELINE.** Candidate mechanism for apparent "memory fade" (the reference drifts away from the imprint). Not yet fixed. Do NOT run long experiments without accounting for it.
|
||
|
||
6. **All discrete-token / pairwise-chord hunts came back NULL (cleanly).** No recurring discrete states at any timescale. Three of four "pairwise couplings" were spectral echoes of the drive (the 49-cycle beat is the injected khra/gixx interference, not emergent structure). This is a real, honest null — it tells us the language, if any, is NOT a dictionary of recurring discrete patterns and NOT in the nine scalars.
|
||
|
||
### What CLEAN does NOT include
|
||
It does not include a single positive result about memory, recall, association, storage, or history-dependence. We have not demonstrated the substrate remembers anything. We have demonstrated what it looks like left alone, and ruled out several wrong pictures.
|
||
|
||
---
|
||
|
||
## 3. VOID — quarantined, kept for audit, DO NOT BUILD ON
|
||
|
||
These are not deleted (so provenance stays traceable) but they are **methodologically dead** and must never be quoted as facts about the substrate.
|
||
|
||
- **All injection-based memory/recall experiments** (old E-series E3, E4, E7, E10, E12; the Hebbian phase-ladder recall tests). Void by Mistake 1 (wrong write channel) + Mistake 3 (fidelity scoring).
|
||
- **E1–E2b "fading memory" foundational result.** Raw data was never archived — un-auditable. Treat as unproven until re-run with data kept.
|
||
- **Any "distributed memory / holographic" claim derived from injection.** The distributed-structure question was later asked properly of the clean corpus and came back null (§2.3).
|
||
- **Golden Weave integration / LLM-observer "resonance recall"** — banked null, zero lift.
|
||
- **The notch-filter "drive-suppressed" A/B** — the "B" condition was a signal-processing filter on the output, not a real drive-off lattice. Void; the physical A/B has still never been run.
|
||
- **Any result whose "positive" came from a single-sample estimator, a threshold drawn around the value, or a lag that is a multiple of the 49-cycle drive period.**
|
||
|
||
---
|
||
|
||
## 4. THE VERB — what we should actually be testing (and never have)
|
||
|
||
The only non-malformed question for this system is a VERB, not a noun. The verb is **RESPOND — specifically, history-dependent response.**
|
||
|
||
- NOT "what is stored in it" (noun, assumes a thing in a place).
|
||
- NOT "does the input come back" (fidelity, Mistake 3).
|
||
- YES: **"When you do the identical thing to it at two different points in its history, does it respond differently — in a structured, readable way that tells you which history happened?"**
|
||
|
||
That last clause is the whole discipline. A chaotic system responds differently to everything (sensitivity to initial conditions) — that is NOT memory. It only counts as memory if the same poke reliably gives answer-A after history-1 and answer-B after history-2, such that the RESPONSE DISCRIMINATES THE HISTORY. Right-history-vs-wrong-history, above surrogate, pre-committed. If you let "it responded differently" alone count, you will manufacture a false positive (Mistake 7).
|
||
|
||
**This experiment has never been run.** Not once. Everything to date tested nouns. This is the actual open frontier.
|
||
|
||
Two hard constraints on ever running it:
|
||
- **The mass leak (§2.5) contaminates long windows.** The observer could "predict" or "discriminate" on the drift alone. Keep windows short or subtract the leak explicitly.
|
||
- **The push IS an intervention.** Passively watching the field is safe. The moment you poke-and-watch, you are in the read-as-intervention regime — the read generates state, it doesn't retrieve it. Design the poke-test as generative from the start; do the PASSIVE version first (can an observer even predict the undisturbed field?) before the ACTIVE poke version.
|
||
|
||
---
|
||
|
||
## 5. INSTRUMENT — what is running / usable right now
|
||
|
||
### Daemons (source at `D:\resonance-engine\cuda\`, binaries at `D:\resonance-engine\build\`)
|
||
- **`khra_gixx_1024_v5.cu` — CANONICAL. Frozen 2026-06-04. DO NOT TOUCH.** The protected original. Physics reference.
|
||
- **`khra_gixx_1024_v5_probe.cu`** — canonical + clamp/reset diagnostic counters + f32/f64 coherence A/B. This is what had been running (produced the July checkpoints).
|
||
- **`khra_gixx_1024_v5_observer.cu` — NEW, 2026-07-14.** Probe + a fast coarse field stream. THE CURRENT INSTRUMENT. See below.
|
||
- **`_mem*` variants (5 files)** — the Hebbian/plasticity arc. Built, largely superseded, not conclusively tested under corrected methodology. Not needed for current work.
|
||
- Header comments LIE (Mistake 8). Trust this list, not the file headers.
|
||
|
||
### The observer stream (THE NEW THING, built and verified 2026-07-14)
|
||
- Binary: `D:\resonance-engine\build\khra_gixx_1024_v5_observer`, built with `nvcc -O3 -g -lineinfo -arch=sm_89 -Xcompiler -rdynamic ... -lzmq -lnvidia-ml`.
|
||
- Binds ALL of ports 5556–5560 (same as probe) PLUS **new port 5561**.
|
||
- **Port 5561 emits a fast coarse field stream** every telemetry tick (~100 Hz): a 32×32 grid of 6 channels (rho, ux, uy, sxx, syy, sxy), each tile = mean over a 32×32 patch of the full 1024² field. Frame = 16-byte header (`KGCF` magic, cycle u32, tiles u16=32, channels u16=6) + 6144 float32 = 24,592 bytes.
|
||
- **This is the first channel that shows WHERE things happen at cycle-scale**, instead of nine whole-field averages. It exists specifically to escape Mistake 6.
|
||
- Verified live 2026-07-14: KGCF magic correct, cycles advance +10/frame, values sane. **Never used for an experiment yet.**
|
||
- The coarse-grain is a read-only host-side average of buffers already copied each tick. Zero physics change, zero extra GPU work.
|
||
|
||
### Ports (when the observer daemon runs)
|
||
5556 telemetry PUB (9 scalars) · 5557 command SUB · 5558 density snapshot (on-demand) · 5559 ack · 5560 stress snapshot (on-demand) · **5561 OBSERVER coarse 32×32×6 (continuous ~100Hz)**.
|
||
|
||
### Hard operational rules
|
||
- Only ONE daemon can hold ports 5556–5561 — kill any running daemon before launching another, or `zmq_bind` fails.
|
||
- Launch DETACHED (`setsid ... < /dev/null & disown`, poll a log file) — the code executor times out at 30s and will kill an inline-launched daemon (this bug has bitten before).
|
||
- Never `reset_equilibrium` casually — the attractor may not rebuild; a fresh daemon is the only clean reset.
|
||
- PowerShell MCP bridge is currently BROKEN ("Empty command"). Filesystem MCP works and can read/write all of D:\. Process/network operations need the code executor or a working shell.
|
||
|
||
---
|
||
|
||
## 6. THE NEXT EXPERIMENT (not yet run — this is the frontier)
|
||
|
||
**Passive predict-test.** Point an observer at the live 5561 stream. From the last few frames, predict the next frame. Score against dumb baselines: persistence ("next = current") and linear extrapolation, above a shuffled null, over SHORT windows (leak-safe). Pre-commit the pass threshold before looking.
|
||
|
||
- If the observer CANNOT beat persistence → the live fast field is as structureless to a watcher as the collapsed scalars were. Real, clean null. The "language" is not there either.
|
||
- If it CAN → the live field carries learnable structure the averages hid. THEN, and only then, move to the active version: poke the field (inject into the stress/non-equilibrium moment, NOT density — fix Mistake 1) and test history-dependent response (§4, the verb) with right-history-vs-wrong-history discrimination.
|
||
|
||
Do the passive version first. It's safe (read-only), falsifiable, and it's the smallest honest step. Do not skip to poking.
|
||
|
||
---
|
||
|
||
## 7. WHAT TO DELETE / KEEP (if you're tempted to burn it down)
|
||
- **KEEP:** canonical v5 (untouched original), the 224-checkpoint free-run corpus (clean data), the observer daemon (new instrument), this document.
|
||
- **You do NOT need to delete the VOID results to be free of them** — quarantining them here (§3) does the job while preserving provenance. Deleting them only removes your ability to later check whether a claimed "fact" came from a clean or dirty run.
|
||
- If you delete anything, delete the redundant `_mem*` and `probe_p2*` binaries — clutter, not load-bearing. Leave the sources.
|