Open-ended builds

Experiments

Personal projects that have taught me vital client-facing technical skills.

What If Mars Had Oceans?

A real-data Mars water-level visualiser. Drag the slider, the planet actually floods the way the elevation data says it would.

DOOM, With a Working Contact Form

An HTML form rendered into a canvas texture inside a JavaScript port of DOOM. You can submit it while the demons keep advancing.

A Live Web App, On a 3D Monitor

A 3D model of a beige desktop PC with a live, interactive web page rendered onto its monitor. Click, scroll, fill the form while you orbit.

AI-Native CMS

Six Verticals, One Engine

A single CMS that produces six wildly different finished sites (allotment, charity, council, museum, scout group, theatre) by tuning an LLM per vertical.

Tabletop Dice Roller

A real 3D dice roller. Physics, face-detection, per-game presets, advantage/disadvantage. Good enough to keep in a tab during a session.

Ocean HUD

Game UI in Canvas

Real HTML/CSS quest log, inventory and status bar rendered into the same WebGL canvas as the ocean. Waves distort it, depth refracts it.

Castle, Wrapped in Type

Long-form editorial typography that recalculates sixty times a second to wrap around a 3D photogrammetry model of a Spanish castle.

An HTML Form Made of Cloth

The same html-in-canvas trick taken to its silly extreme. A live HTML form projected onto a physics-simulated piece of cloth.

Contact Form, Commodore 64 Style

A full C64 emulator with a modern HTML form rendered into its video output. Submits like any other form on the web. Looks like 1985.

Markered, Like a Real Highlighter

A drop-in highlighter effect. Chunky, slightly-imperfect felt-tip strokes layered over your text. Accessible, decorative, drop-in.

Bettermojis

Every Glyph, No Faff

A no-faff browser for ~7,000 emoji, HTML entities and named Unicode symbols. Search in 15 languages, click to copy. Pure client-side.

Hire me

Let's talk.

Tell me what you're building, what's stuck, or what you'd like a second pair of senior hands on.