Lab · Field Tests

Playable prototypes, built to learn.

The point of these isn't the games. The point is working in domains where I'm not an expert and the medium pushes back hard — where the agent can't fake it and a game either plays or it doesn't. The featured pair each ship with a level editor, on purpose. Press play, break them, fork them.

Featured

Sumi: Ink and Steel

2D samurai brawler in a late-Edo bloody-woodblock style.

Vanilla HTML5 Canvas, no framework, no build step. Every character sprite was generated locally through a ComfyUI and Flux Schnell pipeline on a laptop RTX 4070, with no per-image API cost and nothing leaving the laptop. Ships with a room-based level editor.

HTML5 Canvas · ComfyUI + Flux · No build step · Local generative art pipeline
Open game ↗ Hosted on Vercel · own deploy
Featured

3D Harrier

Head-tracked rail shooter, homage to the 1985 Sega arcade game Space Harrier.

Three.js with no build step, original geometry, original audio. Eighteen campaign stages with distinct palettes, boss fights, bonus rounds. The webcam tracks your head via MediaPipe face landmarker and the scene re-projects with off-axis math, turning the monitor into a literal window into the world. Keyboard, gamepad, and mobile dual-stick controls.

Three.js · MediaPipe face landmarker · Off-axis projection · Headless QA harness
Open game ↗ Hosted on Vercel · own deploy
Earlier Prototypes

Browser experiments from earlier rounds of tinkering. Each opens in a lightbox here, or fullscreen in a new tab.

Three.js Maze

Multi-level browser maze with a first-person / top-down toggle, timer, and best-times list.

Raycaster Dungeon

Wolfenstein-style sprite-based raycaster — walls, doors, enemies, hand-drawn textures.

2D Platformer

Side-scrolling canvas platformer with a hero, enemies, and collectibles. Mobile rotate-aware.

FPS Sandbox

First-person shooter prototype — crosshair, HUD, health, stats. Pointer-lock controls.

Companion Writing

Read the full write-up on what Sumi and 3D Harrier taught me about AI pipelines, quality gates, and being a beginner on purpose.

Two games, built to learn →
// Now playing
Open fullscreen ↗