I build local-first, security-minded software in Rust and TypeScript — tools that run on your own machine, with no account to create and no server holding your data. I try to actually finish things: packaged installers for three platforms, a demo you can open in one click, and test suites instead of hope.
Open Transit Diagram Studio → Runs entirely in your browser. Nothing to install, no sign-up, no watermark.
Download P2PEM → Installers for Windows, macOS and Linux — v1.16.2, ten build artefacts.
P2PEM — encrypted peer-to-peer messenger
Rust · Tauri · React — v1.16.2 · 593 Rust test functions · threat model
Messages travel straight between the two peers. There is no account, and no server keeps your history. X25519 provides forward secrecy, AES-256-GCM does the encryption, and short authentication strings let two people detect a man-in-the-middle by reading four words aloud. NAT hole punching with a relay fallback for networks that refuse to cooperate.
Ships as .msi and .exe for Windows, .dmg for both Intel and Apple-silicon Macs, and
.deb, .rpm and AppImage for Linux.
Transit Diagram Studio — game maps into Beck-style metro diagrams
TypeScript · React · Vite — live demo · 121 domain checks + 9 visual regression checks
Drop in a screenshot of a game map, trace the lines, and get a printable diagram in the London Underground tradition. Everything happens in the browser: no account, no upload, no watermark. The domain layer is deliberately pure — no DOM, no framework — so the awkward geometry gets tested directly instead of clicked through: corridor offset signs, index stability through offsetting, and the snap engine.
HIVE — local-first multi-agent platform · paused
Rust · Axum · React — 11-crate Cargo workspace
A coordinator agent turns a brief into sprints and tasks, then dispatches sub-agents that edit files, run shells and commit code inside a sandbox on your own machine. Four cloud model providers — OpenAI, Anthropic, Gemini and DeepSeek — plus a local Ollama fallback, so it still runs with no internet and no API key.
Paused, and shared as-is rather than pretending otherwise.
Explorations rather than products, and labelled that way on purpose.
| Project | What it is | Stack |
|---|---|---|
| corebench | LLM evaluation across independent capability axes instead of one blended score | Python · Inspect AI |
| TerraForge | Real-time terrain generator: GPU erosion, river hydrology, heightmap export | Rust · Bevy · WGSL |
| paris-mobility | Mobility data lake for Île-de-France — ten years of transit validations, 18.4M rows | Python · DuckDB |
| ChordGen-AI | Text prompt to MIDI, with a fine-tuned T5 model | Python · PyTorch |
Rust · TypeScript · Python — React · Tauri · Next.js · Bevy · Axum · SQLite · PostgreSQL · DuckDB
Found a bug or want to argue about a design decision? Open an issue on the project, or write to fibo3090@gmail.com.




