Skip to content
View jac18281828's full-sized avatar
🦌
🦌

Block or report jac18281828

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
jac18281828/README.md

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.

Connect

You Must Try This

Some of what I build is serious fun.

PlayMMIX on a phone: touch-sized Run, Step, Next and Share buttons over the editor 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
gman render: a robot drives into a table and tips a vase 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
Solitaire of Olympus: the ivy queen and the Cupid three 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
EMOM Timer mid-round: 0:42.3 left in round 1 of 5 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

What I Build

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.


Systems & Emulation

  • 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.

Blockchain & Cryptography

  • 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.

Rust & Unix Tooling

  • 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.

Systems C/C++

  • 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).

Puzzles & Exploration

  • mpfib (C++20) — a hand-written radix-256 BigInt with 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.

Pinned Loading

  1. parsm parsm Public

    Parsm is a structured data processor written in Rust

    Rust 11

  2. checksmix checksmix Public

    Blazing Fast MMIX Emulator

    Rust

  3. snipren snipren Public

    quick inferring rename utility

    Rust 1

  4. emomtimer emomtimer Public

    Rust WASM Yew EMOM TImer

    Rust 1

  5. conversant/disruptor conversant/disruptor Public

    Disruptor BlockingQueue

    Java 324 45

  6. gman gman Public

    Realistic RenderMan Renderer

    C++