Compilers, build systems, real-time audio and computational neuroscience. Cambridge, UK. Founder of Quilio. Neuroscience at the University of Cambridge, music technology at Birmingham Conservatoire.
Flow is a statically typed, compiled systems language for programs that evolve through time. Version 1.0 freezes a small production core around the self-hosted flowc compiler and a portable C backend. brew tap flooooooooooow/flow && brew install flow. Most of what I am building now runs through it.
- flow
3★The language, the self-hostedflowccompiler and the standard library. MIT, at 1.0.2. (live) - flow-scikit scikit-learn rebuilt in Flow. A 1.4 MB native binary with no Python runtime. (live)
- flowrat Rat navigation and hippocampal dynamics in real time. The arena is editable while the simulation runs. (live)
- doom-flow The Doom engine, ported. (live)
- flow-euler Project Euler used as a compiler test suite. (live)
- flow-kernel Flow on a Tiny Core Linux base, with cgroups, perf and eBPF underneath.
Two build systems that answer the same question differently. azazel states a build as a CUE model and generates Zig from it. zaza drives the graph from Zig directly.
- azazel CUE model in, deterministic Zig build out. No JSON runtime, no flags. (live)
- zaza C, C++, Zig, CMake interop and WebAssembly, driven from Zig. (live)
- azazel-cache Content-addressed artifact cache, using GitHub Releases as the store.
Twelve real third-party projects, each built twice, once with azazel and once with zaza: SQLite, ghostty, libxev, libvaxis, tigerbeetle, zls, river, mach, microzig, capy, zig-gamedev, and the Zig compiler's own tokenizer. All twelve
Tools for making a result checkable by someone who is not you.
- perturbation-kernel Scalar, SIMD and GPU backends that agree bit for bit. Rust core, five language bindings, on PyPI and crates.io. (live)
- citeverify Checks every reference in a bibliography against eight bibliographic indexes. Reads BibTeX, RIS, CSL-JSON, .bbl, .docx and PDF.
- refereed A reviewer panel for a manuscript, running on your own model key.
- corpus-lens TF-IDF keywords, rhetorical fingerprints and embeddings across a whole corpus.
- tilekiln Procedural texture synthesis with measured parameter stability.
Audio has been the continuous thread. Product work runs through Quilio.
- danzig
3★The VST3 C ABI implemented directly in Zig, as extern structs of callconv(.c) function pointers. No JUCE, no Steinberg SDK. (live) - tinyML
7★A C++ machine-learning and statistics library for embedded and real-time workloads. - isobarcpp Daniel Jones' isobar algorithmic music library, in C++.
- Analog-Fattener
4★An analog fattener effect in JUCE. - Wobblefet Pink Trombone, the interactive vocal tract synthesizer, modified.
Learning systems and agent infrastructure, going back to networks written from scratch.
- Fractal-Memory-Network Recursive memory structure for long-running agents.
- safe-yolo-agent Allowlist permissions for an autonomous coding agent, so destructive calls cannot run unreviewed.
- CycleGAN-Timbre-Transfer Timbre transfer through a modified cycle-consistent adversarial network.
- Eye-Evolution Predator-prey eye evolution, using perceptrons and a genetic algorithm.
- Disparity-Network Depth from binocular image pairs.
- Slow-Feature-Analysis Stone and Bray's Slow Feature Analysis, implemented.
- wfdl-gallery A watch dial written as text. 58 faces across seven families, compiled from a small description language. (live)
- Shadow A 2D game engine kept small enough to read. (live)
- ShaderLibrary GLSL, Metal and Slang fragment shaders.
- cosmographs The graph at the top of this page. Every repo here, rendered on the GPU. (live)
- terminal-eye-candy Zero-dependency terminal animations in Python.
- Hydra-Sketches Audio-reactive livecoding for the Hydra video synth.
Smaller things that exist because something was annoying.
- chromium-tabscroll Horizontal tab scrolling for Chromium, rewritten against HEAD after Google removed it in M144.
- lpmd LitPro: executable literate programming for any language. (live)
- l1-cache-simulator An L1 cache simulator that shows hits, misses and eviction policy as they happen. (live)
- pypi-toolkit
4★Builds, tests and uploads Python packages. - PrintingCPP Talking to CUPS printers from C++.
- DYMO-Labelwriter-App Old DYMO label printers brought back into use.
The through line is asking how much of a stack stays necessary once you are willing to change the abstraction underneath it.
There are 97 public repositories here in total. The 60 not listed above are mostly older. All of them.
Page rebuilt from live repository data on 2026-09-10.



