I’m John, and I build distributed systems in Rust and smart contracts for Ethereum. My background in physics and systems programming grounds my work in blockchain, financial engineering and open source.
Some of what I build is serious fun.
Write assembly for Knuth’s 64-bit MMIX machine and step through it in your
browser. It runs on checksmix,
my Rust MMIX emulator.
Play now · source |
A RenderMan renderer I wrote in 1999 and brought back to life in 2026. Describe
a scene, say a robot crashing into a vase, in a .rib file and
render it.
Download a release · sample scenes |
Klondike solitaire under the gods of Greece and Rome: gold, ivy, Cupid and
Bacchus. Drag cards, or let Auto To Temple handle it. I wrote it in Rust and
Yew, compiled to WebAssembly.
Deal a hand · source |
An every-minute-on-the-minute workout timer in WebAssembly that stays accurate
for hours, even when your browser throttles the background tab.
Start a workout · source |
conversant/disruptor ★ 323 — the highest-performing inter-thread transfer mechanism available in Java: a benchmark-proven ring-buffer BlockingQueue on Maven Central (com.conversantmedia:disruptor). Shipped as a Debian / Ubuntu package and supported by Apache Log4j 2 as an async-logging queue.
parsm (Rust · crates.io) — a structured-data processor that auto-detects JSON, CSV, YAML, TOML, logfmt and plain text, then applies a pest PEG-grammar DSL for field extraction, filtering and templating. It ships with eight integration-test suites and full CI/CD.
- checksmix (Rust · crates.io) — a complete MMIX assembler and emulator for Knuth’s 64-bit RISC architecture: 256 general-purpose registers, IEEE-754 floating point with configurable rounding modes, TRAP-based I/O and multi-source assembly via a pest parser.
- gman (C++) — a RenderMan-compatible renderer: started in 1999, revived in 2026 on a modern CMake / C++20 build. Full RIB front end, a working back end (object → world → camera → screen → raster, Gouraud-shaded surface shaders, TIFF/PNG/JPEG output), sanitizer-gated CI.
- emomtimer (Rust · Yew · WASM → emomtimer.2ad.com) — a countdown timer in WebAssembly; wall-clock resync and drift detection keep it accurate over hours of background-tab throttling.
- Open Standard — Open USD (OUSD), a stablecoin for global money movement.
- Fabric — built the world's fastest DEX aggregator.
- collective-governance-v1 — author of Collective Governance, an open-source on-chain Ethereum voting/consensus protocol (Solidity).
- stader-labs/ethx — contributor to ETHx, a multi-pool liquid-staking protocol for Ethereum (Solidity).
- ffsid — zero-knowledge Fiat–Shamir identity proofs in C (Blum integers, quadratic residuosity).
- quadraticgnark — zero-knowledge proofs with Go + gnark R1CS circuits.
- snipren (Rust · crates.io) — a safe, intent-aware rename utility: reverse-infers the source from the target you want, refuses ambiguous matches and never clobbers.
- diceware — secure passphrase generation from codeword lists, optimized for an 8-sided die.
- ringsend — a multi-threaded TCP ring topology in C: each thread owns a socket, forwards data to its peer, and the message laps the ring. It uses pthreads and raw sockets, builds with CMake or Make and ships with a ctest suite and a Dockerfile.
- istream_block_iterator — an STL-compatible chunked stream iterator.
- gzkfast — an astrophysical event generator on the GNU Scientific Library (C++ grad-school project).
- mpfib (C++20) — a hand-written radix-256
BigIntwith Karatsuba multiplication and fast doubling. Computed F(10,000,000) = 2,089,878 digits and found F(3,340,367) to be a probable prime. - gofib (Go) — fast-doubling arbitrary-precision Fibonacci, benchmarked across architectures. F(300,000,000) = 62,696,314 digits in 3m26s on Apple M2 Max; beats a Python3 implementation by 15x at F(10M).
- diehard3 (Rust) — a BFS solver for the Die Hard 3 water-jug problem: measure an exact target volume using any number of containers via fill, drain and pour, plus a puzzle generator.









