
TurfMaster Pro
An overly complicated lawn and irrigation management game. Keep a Denver yard green from April to November with a sprinkler system installed by "a guy", without going broke or getting fined by the HOA.
▶ Playable2026
███╗ ███╗ █████╗ ███╗ ██╗██╗ ██╗███████╗███╗ ███╗██╗██████╗ ██╗ ████╗ ████║██╔══██╗████╗ ██║██║ ██║██╔════╝████╗ ████║██║██╔══██╗██║ ██╔████╔██║███████║██╔██╗ ██║██║ ██║███████╗██╔████╔██║██║██║ ██║██║ ██║╚██╔╝██║██╔══██║██║╚██╗██║╚██╗ ██╔╝╚════██║██║╚██╔╝██║██║██║ ██║██║ ██║ ╚═╝ ██║██║ ██║██║ ╚████║ ╚████╔╝ ███████║██║ ╚═╝ ██║██║██████╔╝██║ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═══╝ ╚══════╝╚═╝ ╚═╝╚═╝╚═════╝ ╚═╝███╗ ███╗██╗ ██╗███╗ ███╗ ████╗ ████║██║ ██║████╗ ████║ ██╔████╔██║██║ ██║██╔████╔██║ ██║╚██╔╝██║╚██╗ ██╔╝██║╚██╔╝██║ ██║ ╚═╝ ██║ ╚████╔╝ ██║ ╚═╝ ██║ ╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝

An overly complicated lawn and irrigation management game. Keep a Denver yard green from April to November with a sprinkler system installed by "a guy", without going broke or getting fined by the HOA.
▶ Playable2026

A browser fighting game where the SNES casts of Mortal Kombat and Street Fighter II meet. Every sprite, stage, song and voice is read from your own ROMs, with a fighting engine written from scratch.
▶ Playable2026

Sonic the Hedgehog running through the original Super Mario Bros. levels with Sonic 1's physics. SMB's own code runs on a 6502 interpreter, with Sonic hooked in over Mario's routines.
▶ Playable2026

The original NES Legend of Zelda in first person. The overworld, all nine dungeons, caves, enemies and dialogue are decoded at runtime from your own ROM and built into 3D.
▶ Playable2026

A from-scratch Rust reimplementation of the 1994 DOS game Dungeon Master II, built from my own reverse-engineering notes. Bring your own copy of the game data.
● In progress2026

A walk through rendering history. One world moves from a 320×200 affine-warped renderer through lightmaps, Blinn-Phong, PBR, volumetrics and GI to something uncomfortably real. Rust + wgpu.
● In progress2026

Fourteen Black Dahlia Murder covers played strictly on the NES's 2A03 sound chip. Two pulses, a triangle, noise and DPCM drums, rendered from real NSF code by viper.
▶ Playable2026

A vim-keyed NES chiptune tracker for the terminal that compiles songs to real NSF files, plays them through an emulated 2A03, and can rip music back out of NSFs and cartridges.
● In progress2026

A hobby x86_64 kernel in no_std Rust that keeps all of its state in one typed graph. Processes, memory, capabilities and wait queues are nodes and edges, and a running kernel can be dumped, checked and diffed.
● In progress2026

A network analysis of the collusion.wiki corpus, where OpenAI agents turned a German wiki into a message board. Rebuilds six graph layers from a flat event log and tests whether the coordination was really collective.
● Write-up2026

An agent-based simulation of an arms race between self-replicating spreading agents and a defender, across three network topologies. 330 reproducible runs and a paper-style write-up.
● Write-up2026
A byte-exact port of Super Mario Bros. World 1-1 from 6502 assembly to TypeScript, verified against a reference emulator every frame, with a button that switches the whole thing into 3D.
● In progress2026

A native pixel art editor in Rust, in the same space as Aseprite and Pixelorama, with a command line and Rhai scripting so a sprite can be a build step.
● In progress2026

A stark idle game about staying alive. It starts with two meters and one action (cry), grows into rent, debt and three kinds of work, then contracts again in old age. It tells you less than it knows.
▶ Playable2026

A boxing round timer for your phone that calls out combos while you work. It has a bell, a wood-block warning near the end of each round, and spoken punch numbers. No backend, nothing to sign up for.
▶ Playable2026

A web page that recreates installing a 1990s PC game under MS-DOS, from the BIOS beep and the IRQ/DMA settings to the "Please insert Disk 2 of 9" prompt. It invents a new fake game on every load.
▶ Playable2026

A Rubik's cube training web app that talks to a GAN smart cube over Web Bluetooth. Timer, algorithm drills, recognition quiz, solve replays and a 3D mirror of the cube in your hands.
▶ Playable2026

A small 3D skateboarding game in the browser. It has four themed parks, a grindable edge on every flat surface, combo multipliers, a cop who can't catch you in the air, and a synthesized ska-punk soundtrack.
▶ Playable2026

A dark-fantasy survivors-style game for the browser. You are the dragon, adventurers keep coming for your gold, and the Dragonslayer King arrives at 7:00.
▶ Playable2026

A Claude Code plugin that tells Claude, on every prompt, to work goblins, gremlins, raccoons, trolls, ogres and pigeons into its answer. Parity with ChatGPT's goblin phase, achieved.
● Write-up2026

A 6502 disassembler for NROM NES games that writes one hyperlinked HTML listing, plus a scripted-emulator harness for discovering what RAM bytes and routines actually mean. Developed against Capcom's 1942.
● In progress2026

Brute-force search for NES Game Genie codes. Patch a byte, run the game, compare the frames against a clean run, and keep the codes that change things without crashing.
● Write-up2026

Two experiments on Jordan Mechner's 6502 source for Prince of Persia. A transpiler that turns the animation bytecode into a Rust crate, and a wave function collapse generator for new levels.
● Write-up2026
A Claude Code plugin that appends "Make no mistakes." to every prompt you send. That is the whole plugin.
● Write-up2026

A nonogram (picross) puzzle game for the terminal, written in Rust with ratatui. Thirteen hand-made puzzles, all checked to be solvable by line logic alone.
● Archived2026

A PPO agent that learns NES Punch-Out!! from raw pixels. After about 10 million steps it knocks out Glass Joe in roughly 16 seconds of game time and is starting to land punches on Von Kaiser.
● In progress2026

A small Electron app that reads Claude Code's local session logs, estimates what the session would cost at API rates, and shows DOOM Guy getting progressively more beaten up as you approach your budget.
● Write-up2026

A terminal app where five persistent Claude personas answer questions, debate in rounds and get a facilitator to write up the consensus. Python, Textual, Anthropic SDK.
● Archived2026
A command-line pixel art generator. Describe a sprite in plain English and Claude returns it as a grid of hex colours, previewed in the terminal and saved as a transparent PNG.
● Archived2026

A terminal web browser in Rust. Parses real HTML, lays it out as styled text, and draws images as colour Unicode art via Chafa, or as actual pixels on terminals that support it.
● Archived2026

An intent-first workflow language for AI agents. Programs lower to a canonical plan graph, get sealed against content-addressed capabilities, and run on a deterministic scheduler with a reproducible trace. Rust.
● In progress2026

A non-photorealistic post-process for GZDoom that turns scene brightness into pen-and-ink hatching, with optional Sobel outlines and every knob exposed as a CVar.
● Write-up2026

Gundam picross. Decode Federation and Zeon transmissions one grid at a time. Same engine as A Space Between Numbers, more fun.
▶ Playable2026

A constraint puzzle that keeps notes on how you solve it. Emptiness insists on form.
▶ Playable2026
Nothing here yet.
turfmaster
streetkombat
supersonic
hyrule3d
dungeonremaster2
ascension-buffer
bdm-covers
viper
bramble
collusion-wiki
evonet
blit
life
cornerman
insert-disk-2
cube
phonyhawk
wyrmfall
claudegoblikon
rob
rommage
exhumed-prince
picrossh
counterpunch
doom-claude
society
shellscape
conclave
gzdoom-crosshatch
newtype-logic
space-between-numbers