Where this started, and the discipline it runs on
The starting point
It began with a question about plants. How does a plant actually draw its nutrients up out of the soil — and would a copper rod driven into the ground change that? Would the shape of the rod matter? Chasing one question — geometry acting on a physical transport process — led into physics, and from physics into topology: the study of what about a shape stays true when you bend and stretch it. Every thread below is still that same question, wearing different clothes — the next section is where it actually began.
How it compounded
Nothing here is a stack of unrelated side projects. Each piece feeds the next. The spiking runtime built to feed plants became the game-AI engine, then the control logic of a from-scratch operating-system kernel. The measurement discipline worked out in the phononic-reservoir studies became a standalone reasoning harness. The anomaly-detection pattern built by hand for a pond-monitoring tool was extracted into a reusable library the third time it was needed. The same .spk brain file runs on Python, C, Verilog and Godot backends without change.
Teaching myself, in public
There is a repo called the-playbook whose entire job is to teach this portfolio back to me from scratch — every claim tied to a real measured number pulled from the repo it came from, written to defend the work under questioning, not just to recognise it. The learning is structured the same way the research is: a claim is not finished until it survives someone trying to break it.
As above, so below
The Hermetic line — as above, so below — is the working heuristic, read as an engineering rule rather than a mystical one: if the same structure repeats at every scale, the honest way to build a system is to spread its work across that structure instead of routing everything through one place. A different approach, and it means no bottleneck. That reading is why the same move keeps recurring — a reservoir computes in the modes of a physical medium instead of a processor; the kernel’s scheduler is a spiking network rather than a single loop; connectivity comes from a topological rule instead of a stored table; the topology heals itself because nothing sits at a single point of failure.
Reporting the losses, in a Stoic manner
The other half is Stoic. A measurement does not care what you hoped for, and the discipline is to report the loss plainly — no spin, nothing buried, no distress about it. The measured-results ledger below is that practice made literal: every negative result is written in the same voice as every confirmation. methodlm compiles the same posture into software — it states the prediction first, then actively tries to refute what it is about to accept.
“That which is below is like that which is above.”
Every repo, traced back to the same starting point
One game, one gardening question, and one question about shape that turned into
topology. Everything else hangs off that — either as a tool the
research needed, a place the research had to survive
(two games, a kernel), or the discipline itself spun out into
software. Two concrete things are shared all the way down: a single
.spk brain file that runs on four backends unchanged, and one
measured-results ledger that every project reports into.
● horde-defense-beta a game. the first repo — no research attached.
│
└─ a gardening question copper rods in soil: does the SHAPE of the rod matter?
│
└─ TOPOLOGY what stays true about a form when you bend it —
│ the through-question under everything below
│
├─ PHONONIC · can a vibrating structure compute, and does its symmetry matter?
│ ├─ quasicrystal-mems-reservoir
│ ├─ symmetry-selection-rule
│ └─ topological-phononics SSH-coupled reservoir; defect-tolerance
│ bounded to chiral symmetry
│
├─ NEUROMORPHIC · Spikeling — built to run the plant feeder, before any game
│ ├─ tribe every NPC runs a .spk brain, not a tree
│ ├─ horde-defense-beta the first game, now driven by the engine
│ ├─ spikeling-os kernel scheduler IS the SNN + SSH topology
│ │ (coupling borrowed from topological-phononics)
│ ├─ pond-health -> sensor-duo pattern extracted the 2nd time it recurred
│ │ -> ternary-snn-monitor + OBSERVE ternary compression
│ ├─ silicon-mega-accelerator accel techniques, tested against the runtime
│ ├─ heterogeneous-neuron-ontology
│ └─ doorcam via Spikeling's hardware sensor-adapter layer
│
└─ THE METHOD · pre-register -> measure -> report the negative, same voice
├─ methodlm -> llama-demo the discipline compiled into software
├─ the-playbook teaches the portfolio back, to defend it
└─ audit method -> upstream — spikingjelly #743 (merged),
snntorch #441, transformers #48509, kornia #4210, +9 more
● 012-trit-search / OBSERVE a parallel root: three-state-logic research -> a tool
├─ observe-api hosted, pay-per-query, live billing
└─ mcp-gateway -> server-guard audit log + rate limits for the surfaces above
The project was a plant feeder before it was anything else
It started as a game
The first thing being built here was just a game — horde-defense-beta, waves of enemies, a deck-building creep system, no research attached. The research arrived sideways, out of a gardening question that had nothing to do with games.
Copper rods in the soil
The question was how a plant actually moves nutrients up out of the ground, and whether a copper rod driven in beside it changes anything — the electroculture idea, that a piece of metal and the ambient electric field can shift how a plant grows. The experiments mattered less for a yes-or-no on electroculture than for the thing that kept nagging: the shape of the rod seemed to change the behaviour. Straight rod, coil, bent geometry — not the same. A question about geometry acting on a physical transport process is a topology question, and that is the door the rest of this walked through.
The spiking network was built to feed plants
The SNN did not start as game AI. It was meant to run the garden: watch a plant through sensors, dose the exact right amount of water and nutrient, and — the part that mattered — learn each plant’s preferences over time, what it responded to and what it didn’t, with nobody hand-coding a rule per species. A closed loop that adapts to the thing it is keeping alive.
Same controller, different system
That plant feeder became Spikeling. The same loop that was supposed to learn a tomato’s preferences is the shape you want for an NPC learning a player, and then for a kernel learning its own task queue. pond-health is the closest living relative of the original idea — an SNN watching an environment and flagging trouble before it is visible — and it is measured honestly against a plain trend model rather than assumed to beat it.
A spiking-neural-network runtime, and everything built on it
One engine: write a .spk brain, run it unchanged on four backends.
From that engine, a kernel scheduler, a hardware-accelerator study, and a
ternary telemetry monitor.
.spk file runs on Python, C, Verilog and Godot backends. Ships a Godot game-AI plugin, an MCP server, and a hardware sensor-adapter layer confirmed against real acoustic, telemetry and video devices.Three-state logic, and a harness that makes claims prove themselves
Ternary-computing research that shipped a real tool, and a sibling project that holds any reasoning — human or model — to a pre-registered, refutation-tested standard.
Can a vibrating structure compute — and does its symmetry matter?
Finite-element studies of micro-mechanical resonators as physical reservoirs. Each one pre-registered; each boundary condition and null result written up as carefully as the wins.
Where the research has to survive contact with a player
The same spiking brain that runs in the kernel drives every agent in these games — a stress test the benchmark scripts can’t provide.
Research tooling, hardened into things people can depend on
Live, billed, monitored — not demos.
Prototypes for real devices, held to the research standard
Verify it actually works on the hardware before calling it done.
The same audit method, pointed at other people’s libraries
The audit method sharpened on Spikeling’s own reset / dtype / per-neuron bugs, then pointed outward — first at neuromorphic libraries, then at transformers, kornia, torchaudio and the lucidrains attention repos. Each is a real bug found by reading the code, reproduced against a clean install, and sent upstream with a root cause, a fix, and a failing-then-passing test. One has landed; the rest are filed and open. “Merged” means a merged pull request I authored — that is exactly one. The full audited record, with method and per-finding write-ups →
.to() / .half() never moves them. After net.half(), reset() writes a float32 value back into a float16 state. Fix threads the transform through the reset-value store.DynamicCache.reset() zeros the K/V in place — correct for the fixed-buffer StaticLayer, wrong for DynamicLayer, which grows by cat. Post-reset the cache is corrupt, not empty. Fix gives DynamicLayer a real reset.LeakyParallel silently ignores a per-neuron beta — an if/elif branch shadowed by one that always matches first. Fix restores the per-neuron decay and rejects a wrong-length beta. (snntorch #443: zeros() no-op.)RvT doesn’t run in half precision at all: its axial rotary embedding unpacks the input dtype and never uses it, so sin/cos stay float32 and the attention matmul raises. Fix is the one line that uses the dtype it already read.What the measurements actually showed
The point of the whole portfolio. A result is logged here whether it went the way it was hoped to or not — a reported negative is the method working, not the method failing.
| Finding | Domain | Verdict | What was measured |
|---|---|---|---|
| Homeostatic threshold adaptation beats a blind “breathing” rhythm | Spikeling | Confirmed | A periodic threshold rhythm was falsified against noise; a closed-loop homeostatic controller then decisively beat both — deterministic recovery, tighter worst-case latency. |
| SSH reservoir tolerates a dead element — only while chiral symmetry holds | topological-phononics | Boundary | Defect-tolerance is real in the idealised SSH model, vanishes when chiral symmetry is broken, and reverses sign in a physical Duffing model. The boundary is the result. |
| Structured noise cancels exactly at the reservoir readout | reservoir / real mics | Confirmed | A simulation prediction, then reproduced twice on a real two-microphone rig — after catching a verdict-printer bug and a spectral-overlap confound. Holds when target and interferer are spectrally separated. |
| Independent NPC brains phase-lock from shared audio alone | tribe / sync-mesh | Confirmed | Kuramoto order parameter r rose 0.48 → 0.94 with no direct communication. Strong on one device; about 10× weaker across two separate microphones — visible only over six trials with lag correction. |
| Fibonacci connectivity as a cheap substitute for stored random wiring | topological-phononics | Negative | A 3-parameter recursive rule vs O(N²)-stored random connectivity: honest cost of ~1.4–2× on linear recall, ~1–17% on NARMA10. Smoothly scale-characterised, N = 50–10,000. Reported, not buried. |
| Ternary-quantising a vision model for edge speedup | ternary vision | Negative | MobileNetV3-Small went 78.8% → 4.9% accuracy across two independent attempts. A real 13.8× disk saving, but zero inference speedup. Ruled out cleanly. |
| One symmetry law unifying the phononic, ternary and acoustic substrates | cross-substrate | Negative | The grand-unification attempt lost when each substrate’s real code was measured. Only a narrow winding-invariant rhyme between the phononic and ternary cases survived; acoustic is a separate mechanism. |
| Two-microphone TDOA source localisation on the sync-mesh rig | acoustic localisation | Open | Coin-flip accuracy (2 of 4) after fixing three real bugs. Room acoustics vs positioning-consistency vs a remaining bug not yet distinguished. Left open, not spun. |
| SNN-driven SSH-topological task scheduler as real kernel logic | spikeling-os | Confirmed | Boots and schedules under an SNN with dimerised coupling; evidence-gated self-healing topology live; 121 milestones, each with an on-target test and a fresh + reused boot check. |
| Baking the reasoning method into small-model weights | llama-demo / method | Confirmed | Fine-tuning the method into a 0.5B model’s weights beat prompting the same model — on that small model, the discipline transfers better as training signal than as instructions. |