Independent researcher working at the edge of unconventional computing — ternary and neuromorphic architectures, physical (phononic) reservoirs, and what happens when you put those ideas inside real software and games.
I build things, measure them honestly, and write down the negative results too.
Bugs found and fixed in other people's libraries — mostly a recurring dtype-safety
class (a state/gate tensor built with device= but no dtype=, so float16/bfloat16
input gets silently upcast to float32) plus one new feature. This table is rewritten
daily straight from the GitHub API by a workflow
in this repo, not typed by hand — it reflects whatever these PRs' real status is
right now, merged or not.
2 merged · 12 open PRs · refreshed 2026-09-06 11:04 UTC
| Repo | # | What | Status |
|---|---|---|---|
| spikingjelly | #743 | Move tensor reset values with the module in MemoryModule._apply | Merged |
| kornia | #4210 | fix(augmentation): auto-augment ops preserve float16 / bfloat16 inp... | Merged |
| spikingjelly | #744 | Fix MSTDPLearner initialising eligibility without a dtype | Open - checks clean, awaiting review |
| spikingjelly | #745 | Add regression test: neuron state and output follow module dtype | Open - checks clean, awaiting review |
| spikingjelly | #750 | Add RAFNode: resonate-and-fire neuron | Open - checks clean, awaiting review |
| transformers | #48509 | Fix DynamicCache.reset() leaving the cache in a corrupt, non-empty ... | Open - awaiting review |
| snntorch | #441 | Fix LeakyParallel silently ignoring a per-neuron beta; correct the ... | Open - checks clean, awaiting review |
| perceiver-pytorch | #70 | fix: gated / mixed_latents Perceiver preserve float16 / bfloat16 in... | Open - checks clean, awaiting review |
| rotary-embedding-torch | #50 | Keep long-sequence positions exact in float16 / bfloat16 | Open - checks clean, awaiting review |
| vit-pytorch | #373 | fix(rvt): AxialRotaryEmbedding preserves float16 / bfloat16 input d... | Open - checks clean, awaiting review |
| audio | #4228 | Fix transforms.Fade silently promoting float16/bfloat16 waveforms t... | Open - CI issue |
| reservoirpy | #245 | Make the dtype node parameter reach the node state and run output | Open - awaiting review |
| pytorch-esn | #27 | Clear the accumulated ridge statistics in ESN.reset_parameters() | Open - checks clean, awaiting review |
| tenns-core | #1 | Fix SSMLayerInference.reset_state() keeping a stale batch dim; make... | Draft |
| librosa | #2099 | feature.spectral_centroid / bandwidth / rolloff / contrast / poly_f... | Issue open, no PR yet |
Real, deployed, live services — not demos.
- OBSERVE Search API(live product — source) — a hosted, pay-per-query semantic code search API for AI agents, plus a real ACP (OpenAI/Stripe) and Google UCP-compatible agent-commerce discovery and reputation layer. Read both protocol specs directly before building, since neither one actually defines cross-merchant discovery — that gap is the product. Real Stripe billing, a live production deployment (Caddy, TLS, a reverse-proxied host), and a two-sided reputation system where trust is earned agreement between disconnected buyer/seller keys instead of a self-report. Same honest-negative-results discipline as the research below: three retrieval techniques borrowed from a competing tool were tested against its own corpus and measured net negative, documented instead of dropped quietly.
- mcp-gateway(private) — a self-contained, tamper-evident audit log (hash-chained JSONL) plus rate limiting for local MCP tool servers, wired into both OBSERVE's and Spikeling's MCP tool surfaces so every tool call is logged and rate-bounded, single-operator scope, no cloud dependency.
- server-guard — real-time server monitoring and alerting, benchmarked head-to-head against Datadog, Wazuh, PagerDuty, and Netdata on sourced, cited pricing rather than marketing claims.
- spikeling-os — a from-scratch x86_64 kernel whose task scheduler is driven by a spiking neural network — the same Spikeling runtime below, running as real kernel-level control logic instead of a simulation of one.
Ternary & neuromorphic computing
- 012-trit-search — ternary-computing research, and its shipping product OBSERVE: local, private semantic code search (desktop GUI / CLI / MCP server) with a one-line install. Nothing leaves your machine. Now includes a chunk-provenance/lineage layer (tracks a chunk's edit history across commits), hybrid (lexical + semantic) search, and an incremental indexer so re-indexing a repo only touches what changed.
- methodlm — a verifiable causal-reasoning harness: pre-registers every test, runs real backdoor adjustment (with a robustness value), and keeps an honest ledger so any LLM must prove its causal claims. A new REFUTE tool runs DoWhy-backed causal refutation (placebo treatment, random common cause, subset validation) against every accepted claim, and a real-world benchmark suite now covers 10 cited public datasets plus this portfolio's own live server-guard telemetry. Optional ternary second witness via the same
tritkitreadout as OBSERVE. - Spikeling — a DSL + runtime for spiking neural networks that runs the same
.spkbrain on Python, C, Verilog, and Godot backends. Ships a Godot game-AI plugin, an MCP server exposing the runtime as agent tools, and a real hardware sensor-adapter layer (acoustic, system telemetry, video confirmed against physical devices). - llama-demo — genuinely free (Ollama, $0 API cost) local-model experiments applying methodlm's causal-reasoning discipline to LLM tooling: a local coding-agent dispatcher, model vet/quantize/finetune scripts, and honest negative results (a local 7B model failed to fix a real bug even when handed the exact correct lesson).
Phononic / MEMS reservoir computing
- quasicrystal-mems-reservoir — finite-element study of quasicrystal-perforated MEMS resonators, and what their mode structure can (and cannot) compute as a physical reservoir. Includes the paper.
- symmetry-selection-rule — a symmetry selection rule for computation in those reservoirs.
- topological-phononics — does topological structure make an analog (SSH) reservoir tolerate a dead element? A pre-registered, honestly-scoped simulation study — boundary conditions and negative results reported as carefully as the positives.
Both are in active testing — expect bugs, and some builds may not be playable end-to-end.
- tribe — a survival/RTS sim where every NPC (tribe members, animals, rival AI) is driven by a small spiking neural network instead of a behavior tree.
- horde-defense-beta — a 3D horde-defense game with a deck-building creep system.
Practical prototypes for real hardware, held to the same standard as the research above: verify it actually works before calling it done.
- doorcam — a regular USB webcam becomes a driveway monitor: YOLOv8 person/vehicle detection restricted to a hand-drawn driveway boundary, Discord webhook alerts with snapshots, and a live MJPEG feed built for screen-sharing into Discord via its native Go Live (not a bot faking video, which would violate Discord's ToS).
- pond-health — predicts pond water-quality problems (oxygen crashes, algae blooms) before they're visible and recommends organic fixes. Transparent trend-based prediction rather than a black-box model, since there's no real historical sensor data yet to train one honestly. Every run logs to SQLite, visualized in a Grafana dashboard whose color thresholds are generated straight from the same code the app alerts on. A second detector runs the real Spikeling engine (below) as a spiking neural network alongside the trend predictor — honestly measured against it rather than assumed to be better: it never false-alarms, but gives no early warning, the opposite tradeoff of the trend predictor.
- sensor-duo — the trend + spiking + SQLite + Grafana pattern above, extracted into a reusable toolkit after building it by hand twice. Generic over any named numeric channel (a temperature, how long someone's lingered in a camera frame, anything with a float), with a normalized schema so a new channel never needs a migration, and a runnable end-to-end demo proving it outside the pond-specific context it came from.
- the-playbook — a self-study reference across this whole portfolio, taught from scratch, every claim a real measured number pulled from the corresponding repo.
Two research threads — neuromorphic and phononic — that keep testing the same question: when does structure/symmetry actually help computation? That question doesn't stay theoretical: the same neuromorphic engine drives two games and a from-scratch kernel scheduler, and the same discipline — measure it, verify it, report what actually happened, negative results included — carries all the way through to production software people can actually pay for and depend on, not just research code that stops at a benchmark script.

