← Back to the water

Catch 04Personal · 6

Projects

Built on my own time. A typing battle royale, a map of LA parking tickets, a 3D MT09 in three.js, a browser fishing game, a profit tracker for Amazon sellers and an agent-tested board game.

Bomb Deskthree.js · Durable Objects

A typing battle royale for up to eight players. Play solo against seven bots, or open a room and send friends the link. Make three typos, run out of time on a line or finish a round last, and the device on your desk cuts one of its six wires. One is live. Don't mess up!

Ticket Atlas LAdeck.gl · MapLibre

About 3.9 million Los Angeles parking tickets from October 2024 to September 2026 on a 3D hexagon map of the city. Drag the clock through an average week, or click a hexagon for its worst hours, fines and ticket types.

Project MTTypeScript · three.js

A scroll-driven exploded view of a three-cylinder naked bike in three.js. Every part moves straight out from the engine, then settles into tilted orbits like an atom. Hovering or tapping a part shows its name. Regex rules group the model's 1,015 named nodes into 49 parts.

The Big OneTypeScript · Canvas 2D

A browser fishing game in the same pixel art as my personal website. Cast, wait for a bite, reel against a tension meter. Five species and one marlin, drawn on a 2D canvas at grid resolution and scaled up, with one build for phone and desktop.

FBA TrackerReact · Supabase

A profit tracker for an Amazon FBA side business. A React app on Supabase, with Postgres, auth and row-level security, deployed on Cloudflare Pages. Each sale is entered once with its cost and Amazon's fees, and a fees editor holds the referral percentages and FBA fee tables, so unit margins come out of the app instead of a spreadsheet.

The FBA Tracker dashboard and daily targets screens on a phone
The dashboard and the daily targets, on a phone

A game layer with daily streaks, levels and a monthly leaderboard exists because the hard part of tracking is doing it every day. Amazon's own analytics leave out cost prices, so true profit is hard to see. The UI stays simple and easy to digest, with a few numbers per screen and nothing extra.

BoongaGame design · Python

A four-player board game, handmade as a gift. Foragers on a ring of tiles and a beast that hunts whoever is carrying the most. Every rule change was tuned by simulating batches of games with Python bots before it reached the table, hundreds of iterations so far.

The Boonga board, twelve clearings in a ring with the camp hanging off the bottom
The board layout. Twelve clearings in a ring, thickets at 4 and 9, the camp hanging off the bottom