Personal Projects
Lately I've been playing around with a few mid-sized projects. I've
trained a few small models from scratch — a language model, a world
model, a music model, a diffusion model and a Python language model — and
shipped the ones that are fun to play with straight into the browser.
I've built a POC of a game with a life-size version of NYC. I've even
built an operating system.
grix · a unikernel sandbox for AI agents
2026
- A Rust unikernel that boots a fresh microVM for every run and executes one unmodified Linux binary (Python, Node, Go, busybox) on an agent's behalf, with least privilege by default.
- The kernel implements the Linux syscall ABI itself and checks every call against the capabilities you grant; anything denied is reported back, so the agent can see exactly what the program needed.
- Ships its own VMM on Hypervisor.framework and KVM (a run boots, executes and exits in about 0.1 s), plus an MCP server, Python bindings, and snapshots for instant start.
Website
Source
Blog post
NYC Heroes · a superhero game in a 1:1 New York
2026
- A browser superhero movement demo (super speed, web swinging, flight) across all five boroughs at 1:1 scale, built with Claude and Godot in about three days.
- All ~1.08M buildings come from the city's open data, with landmarks like the Empire State and the Guggenheim modeled in detail; a Cloudflare Worker streams ~2GB of city tiles at three levels of detail, prefetching where you'll be in three seconds.
- Co-op multiplayer: private rooms of up to 8 play peer-to-peer over WebRTC, and a public room of up to 64 is relayed through a Cloudflare Durable Object.
Play it
Source
Blog post
Cicero · a Latin LLM in your browser
2026
- A ~111M-parameter Latin language model trained from a random init on a ~466M-token corpus — no pretrained backbone, no English base.
- Runs entirely client-side: the int8-quantized model downloads once and generates via ONNX Runtime Web. No server, no API.
Try it
Training code
Site
- An ~11M-parameter world model that emits the next frame's state from the current frame and your input — no physics engine at runtime; the model is the physics.
- It learns the hidden game physics from data (one-step bird position 98.6% exact, collisions within ±1 frame) and stays stable through 5+ pipes of free autoregressive rollout.
- Playable in the browser via onnxruntime-web (WebGPU with a WASM fallback), in the lineage of World Models, Othello-GPT, and GameNGen.
Play it
Training code
Model
midigpt · expressive solo piano generation
2026
- An autoregressive transformer (~27M params; RoPE, RMSNorm, SwiGLU) that generates expressive solo piano, trained on the MAESTRO dataset with Music-Transformer-style event tokenization.
Source
spritegpt · diffusion for emoji & game sprites
2026
- A pixel-space diffusion model (~29M-param ADM-style U-Net) trained with rectified flow on OpenMoji and Twemoji, class-conditioned by emoji category.
Source