Here are a few of my pet projects I have worked on over the years:

jots game

Jots (App/Online drawing party game)

Jots is an online version (and mobile App) of a game I played regularly with friends. I made this version early on in the first covid-19 lockdown, when socialising with friends online was the only option. It has been played all over the world, and sold over 500 copies. Which is nice for a pet project that I only made to play with friends.

tickets demo

Zero Waste Tickets (online ticket sales)

The complexity of selling tickets online has intrigued me ever since I first tried the 9am Sunday morning rush to buy Glastonbury tickets (back in the day!). ZWT is a pet project I have worked on for many years, and has been used to sell tickets to various events and shows organised by friends.

sugarfree logo

Sugar-free App

I made this for use during my annual sugar-impact diet. I spend 4 - 6 weeks each year avoiding sugar completely. Having this app on my phone makes it easy to see what I can and can't eat.

cyril image

Cyril (Live-coding language)

A live-coding language for generating audio-reactive 3D visuals. Started life as a mind-reading octopus. The origin story is here if you're interested.

tone lab

Tone Lab (JS modular synth)

Inspired by classic analogue modular synthesisers. This is an attempt to create something similar using JavaScript and the Web Audio API. It was built using Tone.js and Angular.


Deli Shop (ecommerce for food)

An online shopping system for a deli. I made this for my brother when his business was forced to close during the covid-19 pandemic. Features a "deliveroo" style interface for browsing the menu, and building an order. With Stripe integration for payments, and a console view to show upcoming orders in the deli on an iPad display.

LeakDetector (C++ library)

A C++ utility for detecting memory leaks in code.

EmbedResource (C++ library)

A C++ utility for embedding binary files and resources (such as GLSL Shader source files) into C++ projects.

Dixit Party (Online party game)

Homage to the card came Dixit made for playing with friends during covid-19 lockdown.

JMESPath (Fork)

A fork of the original JavaScript implementation of JMESPath, a query language for JSON. The original is now believed to be unmaintained, so this fork adds several useful features. Such as the ability to define custom functions, cache parsed expressions for improved performance, and access the root element from nested expressions.


FFGL (VJ software plugins)

A framework for creating FFGL plugins for Resolume (VJ software). Abstracts some repetitive stuff you have to do when creating FFGL plugins.