initialising system

Home of the Mostly Sane_

Projects, experiments, games and general tinkering. Built with code, curiosity and a questionable amount of caffeine.

🐝
🐛
🐱
🐙
🧙

Interactive Animated Stories

A collection of five self-contained interactive children's stories built in pure HTML, CSS and JavaScript — no frameworks, no dependencies. Click or tap to progress through each story, triggering unique animations and procedurally-generated sound effects via the Web Audio API. Includes The Very Busy Bee, Hungry Caterpillar, Playful Cat, Ready Octopus, and a Hobbit adventure.

Read more
Boiler controller
Internal hardware
Assembly
Home Assistant
Wiring
Old programmer

3-Zone Boiler Controller

Replacing an old Honeywell 3-zone programmer with a custom ESP32-C3 controller running ESPHome. Three relay zones (Downstairs, Upstairs, Hot Water), physical boost buttons with 60-minute countdown timers, full Home Assistant integration, and a 3D printed enclosure with D/U/W LED push-buttons. No more fumbling with a 1990s wall box.

Read more
Monitor unit display
Tank sensors installed
Hardware internals
DS18B20 sensor
Tank insulation peeled back

Hot Water Tank Monitor

Four DS18B20 sensors taped up the hot water cylinder feed live temperature data to an ESP32 running ESPHome. A 128×128 colour TFT display shows a real-time tank graphic with colour-coded heat bands. All zone temperatures and a calculated average publish to Home Assistant — so you always know if there's hot water before running the bath.

Read more

Games library

Snake game
Classic arcade

Snake

The classic terminal snake game. Eat, grow, don't bite yourself.

Play now
Thump-a-Trump game
Action

Thump-a-Trump

Whack-a-mole style action. Targets pop up, you thump them down.

Play now
ESP32 Micro Snake
ESP32 hosted

ESP32 Micro Snake

Snake served entirely from a microcontroller. 0.5W, catch the mouse, avoid the bomb.

Play now