Side projects that run in the browser, on GitHub Pages.
- math-visualizer
Interactive mathematics rendered on the GPU: a 3D Sierpinski chaos game, and a Fourier lab that draws typed text with rotating circles.
- fs-emulator
FAT16, ext2 and ext3, emulated in Rust and WebAssembly on an in-memory disk, laying themselves out one operation at a time.
- pitch-trainer
A browser ear trainer: a Rust engine compiled to WebAssembly generates the rounds, renders the audio and adapts the difficulty.
- llm-in-browser
A small language model chatting locally in the browser over WebGPU, with no inference server; every answer shows the facts it used. Experimental, desktop only.
- browser-terminal
A tmux-like terminal that docks onto any web page: a Rust core compiled to WebAssembly, with a structured-pipe language for typed values.
- graph-explorer
Barnes-Hut force layouts and WebGL2 rendering in Rust, with a typed TypeScript client and four switchable views.
- rpg-theorycraft-engine
A Rust crate for simulating role-playing-game damage models, from configuration compiled into an IR to full fights with rotation priority.
- stix-meta-explorer
An interactive reference for the STIX 2.1 specification: browse, search and visualise every object type and relationship, or ask a small language model running in your browser.
- stix-rust docs
One canonical STIX 2.1 parse: a pure-Rust core whose Python, Java and TypeScript bindings all produce the same result.
- port-knocking-lab
Knock a simulated server open, sniff the knock and replay it as an attacker, then watch Single Packet Authorization stop the replay. The lab for the port-knocking video.