Skip to content


This page is an archive of my personal programming projects, many of which are the result of using tools in ways they were never intended, for artistic effect.

I don't currently have time to do much recreational programming, so most of the projects on this page are from my university days. However, I will continue to update this list with any recent projects I've worked on. began as a place to document the things I learnt during my computer science course. It was initially intended to be a collection of web design resources and inspiration, but ultimately expanded to include all computer-related topics. is both a reference for myself, and a way for me to document solutions to problems that I haven't been able to easily find answers for on Google, and make those solutions available to others.

It hasn't been updated for a long time!

Audio visualiser

I was inspired to do something creative with audio streaming in Javascript after reading a tutorial on using it to create waveform visualisations. This - the product of many hours of trial and error - was the result. It comes with a selection of tracks by myself and my friends.

The visualiser uses PHP for track selection to enable bookmarking/linking of the selected track, and Javascript to stream MP3s, analyse the audio data and use the results in CSS values and other things.

Clevo keyboard backlight CLI

This is one of those things that arose out of very specific circumstances and needs I had at the time. I had just purchased a fancy new laptop with an RGB backlit keyboard, which I couldn't wait to customise. After installing Linux, however, I had some difficulty with the drivers and got frustrated.

The end result was this little command-line utility which let me generate and apply my own colorschemes to the keyboard. It had a number of caveats, the main one being that any time I updated my OS, I had to recompile the utility's dependencies, because there was no DKMS module.

I had been intending to fix this issue, but the last time I looked, the driver my utility depends on is no longer maintained and isn't compatible with the current Linux kernel. I'm holding out for the day the Clevo kernel module gets built into Ubuntu, because I currently can't even turn my backlight OFF, let alone change the color.

React Clock

I created this very minimal clock in order to teach myself the basics of React.js. At the time my analog wall clock had just broken, so I made this as a replacement, to be displayed throughout the day on a large, under-utilised desktop computer. I never got round to replacing my wall clock in the end!


The only game I've ever created, made for the Fermi Paradox game jam on in 2016. I made it after learning Unity from scratch in a week, so it's, well, quite bad. I always meant to go and fix all the bugs and design problems, but never had the time.

In this game, you pilot a small spaceship - which moves far too slowly - around the surreal, alien landscape of a foreign planet, and try to work out why it's so lifeless. If you play this game and actually get to the ending I'd love to know, because there are no clues to help you work out what to do (not by design; I didn't have time to add any).

Art generator

I made this simple generative "artwork" on a whim in 2015. Refresh the page to get a new design, scroll to navigate the artwork, and/or try resizing the browser window to mix things up a bit!


Though hardly a great work of art, and extremely simple in construction, people seem to like this little thing I made in plain HTML with marquee tags. I hope you do too.

Twitter bots

A collection of automated Twitter accounts I made when I was learning to program. They do useful, or completely useless but artistically interesting, things. Most have fallen into disrepair, and I do not maintain them.