Software
Everything below is my own work and, unless noted, the source is public. The rest is on GitHub.
stdnt.xyz
A searchable directory of everything a student can get for free — software packs, AI tools, free API keys, 115 scholarships and 224 STEM programmes — built so that community spreadsheets that quietly stop being updated have somewhere permanent to live. A quiz matches scholarships and programmes to your own circumstances entirely on-device; deadlines export to a calendar; saved items and quiz answers never leave the browser. Zero dependencies and no build step, so it deploys anywhere static.
artwork
A pomodoro timer whose background is a museum painting that paints itself for exactly as long as you work. It starts on a bare toned canvas and lays down about fourteen thousand brush strokes one at a time, each travelling along its path and curving with the local image gradient, six passes from broad bands to fine points, the last landing as the clock reaches zero. Pictures come from seven open museum collections — the Met, the Rijksmuseum, the Prado, the Louvre and others — with a wall label for each. Everything you sit through is hung in a gallery of your own, repainted stroke for stroke from a forty-byte seed.
baselayer
A NixOS configuration builder that runs entirely in the browser. Pick what the machine is for, a desktop, packages, self-hosted services and how locked down you want it, and it emits real flake.nix and configuration.nix files. Fifty-nine services are generated from their actual NixOS modules, with ports collected into the firewall and dependencies pulled in automatically; package search queries the same index as search.nixos.org; and a conflict checker catches things like a hardened kernel against the NVIDIA driver, or two services fighting over port 80. There is no backend — the configuration is compressed into the URL, so the link is the config.
backoffice
A self-hosted inventory for the parts in a lab drawer — boards, sensors, modules, passives — with photos, counts, locations, printable QR labels, and project bills of materials that tell you what you are missing. It ships as one static binary with templates and assets compiled in, one SQLite file and a folder of photos: no database server, no Node build, no config file, and it cross-compiles to a Raspberry Pi with no runtime dependencies at all. Upgrading is replacing the binary; the schema migrates itself on startup.
Other work
- tzoRust
An anonymising terminal-session collector for building open DevOps training data, redacting locally before anything leaves the machine. Dataset work for the MANTIS AI project at MIT CSAIL. - OpenFoldUITypeScript
A companion to AlphaFold that inspects a model’s confidence, disorder, PAE and domains, then validates it against the experimental structure (RMSD, TM-score, GDT-TS, lDDT) to show where it was confidently wrong. - alphafoldstudyPython
Measures AlphaFold2 accuracy on viral versus human cellular proteins, scoring predicted models against experimental PDB structures. - scsp-alphexTypeScript
A reading environment for papers: import PDFs, arXiv IDs, DOIs or a whole Zotero library, then search and ask questions across the lot. - editbookPython
Turns scanned handwritten mathematics into editable LaTeX, Markdown, GeoGebra commands, or HTML that Word imports with live equations. - whiteboardJavaScript
A one-file whiteboard that reads your handwriting back as text and works out your sums. No build step, no server, no accounts. - photoframeC++
A digital picture frame for the Waveshare ESP32-S3 touch LCD, with ambient-light dimming, a QR code that opens an upload page on your phone, and a Telegram bot. - synapse
3D-printed modular chromosome models for hands-on genetics instruction, designed to be modified, fabricated and replicated. - satJavaScript
A practice log for SAT Question Bank exports. Static, no account; progress lives in the browser and moves between devices as a profile file. - nixserverNix
One desktop PC converted into a self-hosted server, reachable over Tailscale and nothing else. - pklerPython
Converts any image into a pickle of scatter-image data.




