Welcome to
Writes code, and some other things
A pile of articles, a few small games, and some tools built along the way.
84
Blog
15
Games
23
Tools
Latest posts
View allPutting a Three.js island inside a static site
The isle page downloads only its own script. The scene is computed at runtime, Three.js stays in that page's chunk, and the first HTML response carries an empty stage.
Morse code: one table, two ambiguities, three details
Morse itself is trivial; the trouble is in the details — who owns the space, how to normalise full-width dots, and how long one unit actually is.
An opponent that predicts the bounce, but not too well
A Pong opponent worth playing needs two things: an accurate prediction of where the ball lands, and a deliberate error. The first is one triangle wave; the second is redrawn on every return.
Volume without a modelling tool: triangulating an island by hand
The rock on this island is not exported from a modelling tool. It is five irregular rings stitched together at runtime, and vertex colours plus flat shading are enough to make it read as stone.
Games
View allSnake
The classic Snake. Arrow keys, WASD, or swipe on touch screens. High score saved locally.
2048
The classic number merger. Push tiles with arrows or WASD; equal numbers combine. Reach 2048 to win. Swipe on touch, best score saved locally.
Tetris
Classic falling-block puzzle with a 7-bag randomiser for fair pieces, a ghost landing preview and hard drop. Arrows to play, buttons on touch.
Tools
View allJSON Studio
Format, minify, sort, validate with exact error positions, and diff two JSON documents. Runs entirely in your browser.
Timestamp
Convert Unix timestamps and dates both ways, auto-detecting seconds vs milliseconds. Also shows ISO 8601, RFC 2822, relative time, day-of-year, ISO week, and a multi-timezone table.
Regex Lab
Test regular expressions live: highlight hits, list every match with positions and groups, preview replacements, and start from built-in templates for email, URL, IPv4, dates and more.
