91 map
I played the game 91 and wanted to create a map of the world. What started out as a simple map to help keep track of the regions soon turned into a larger project which resulted in an A0 sized poster being produced. The creator of the game got in touch and at the time of writing the first poster has been printed and more will follow. The creator is going to publish and sell these posters online.


Advent Calendar 2012
This is a collection of YouTube videos as made as an outreach project in December 2012. Each day of Advent gives a different interesting fact about particle physics.


Alarm clock
This project was written very quickly one evening to give myself an emergency alarm clock after my phone was stolen. As a result it is not very user friendly.


Apollonian gasket generator
One of my hobbies is creating fractals and one of the most interesting is the Apollonian gasket. An area defined by some arcs and straight lines is recursively filled with circles and in all cases (except the trivial case of a single circle) this process recurses infinitely, making counting circles challenging.


ASCII art generator
After talking to a friend who suggested I write a text based adventure game, I decided that it would be useful to develop a way to generate graphics that could be displayed as text. To achieve this I used the HTML canvas to analyse images and comapared the distribution of colours with various characters, providing graphical, textual, and HTML outputs.


Box filler
This is a rather frivolous script I wrote to serve some sort of purpose, but I forget exactly what that purpose was. I think it may have been to create a random sitemap using images from various pages. It takes rectangular array of squares and fills it with squares (or boxes) of random sizes. Then to make it look more attractive it fills each rectangle with a picture from placekitten.


Box plotter
One of the most popular ways to compare results in particle physics is to create plots that show different results with horizontal bands (sometimes known as boxes), making comparisons easier on the eye. Unsatisfied with the quality of available solutions at the time, I created my own scripts which would make these plots for use in my thesis.


Photo calendar
One of my friends suggested I make a calendar featuring some of the photos I had taken while in Geneva. Here is the result. She wanted me to make some money from it, but I didn't the quality of the images was good enough, so instead I just made it available for free. Future years might see a paid option.


Ciphers
This page contains some simple ciphers. This was going to be extended to include some more sophisticated ciphers, but I didn't have the time or incentive to develop this page further.


Circle from three points
This project was thrown together rather quickly to solve a geometrical problem: How can you analytically find the circle which passes through three given points? The construction simply demonstrates that the method works, and it not intended to give any further information to the user.


Citadel map
This page shows the map for my favourite game as a child, Citadel, published by Superior Software for the BBC Micro.


Color converter
This is a very simple yet useful script for converting colours from one description to another. What causes the most frustration here is the difference between US and UK English, as it seems I'll never be happy with the uri for this tool. So I use the word "color" in the context of values the computer understands and "colour" to describe the aesthetic experience of humans. That makes the best of a bad situation.


Complex polynomial
On the Numberphile YouTube channel I saw a video that gave a proof that all complex polynomials have at least one solution. The method involved moving one point about the complex plane while another is mapped around a path elsewhere in the plane. I decided to map this out using Javascript!


Conway's Game of Life
Conway's game of life is a very famous mathematical model with a rich variety of "creatures" that can interact with one another. This script is a simple interactive sandbox where the user can "paint" cells to create different shapes. There are a number of predefined boards that the user can choose to investigate some small and interesting patterns as they evolve.


Crazy 2014
When I heard the sad news about flight MH17 I couldn't quite understand what was happening. It seemed like the worst parts of 2014 had come together in a way that nobody could have predicted. I tried to sum up the situation in this infographic. This mini project was in fact an excuse to practice some infographic making skills, which I had not used for a long time.


Dice simulator
This is another somewhat frivolous script I wrote when playing an RPG game where we did not have enough sets of dice. It simulates dice rolls with various modes.


Generic dice game
This project is a rewrite of a previous project. It emulates the popular dice game, Yahtzee. This game previusly used PHP, but was converted to Javascript once I became sufficiently skilled to rewrite it.


Dr Who: White people dance
I had had an idea for a very long time, which was to animate a song using the canvas and a YouTube video. Someone sent a gif image of some Dr Who actors dancing badly, and I saw this as an opportunity to test out my idea in the simplest way possible. So I put the gif together with the YouTube song and button to play/stop the music and animation.


General election data
This project displays the results of the 2010 UK General Electrion, and it was to be the first of many that investigate different data sets. One of my planned meta projects is to make the acquisition, storage, and analysis of public domain data simpler and easier. This was an experimental project, and created in a hurry.


HTTP error pages
As part of my webspace I wanted to add some humourous error pages to soften the blow when there's a problem.


Project Euler
To hone my problem solving skills I occasionally take part in Project Euler, which is a series of mathematical and computational problems. These pages summarise my solutions and strategies.


Room explorer game
This project is a game where the player explores rooms with a top down view and does all the normal things, such as traverse mazes, open doors, fight monsters and so on. This is a gravity-less version of the Platform game and has an even more retro feel to it. It's obviously a work in progress and needs a lot more work, but the main mechanics are complete and it even has its own editor.


Eye of Argon acronym generator
This project was made to demonstrate a point. A student said that they doubted I could make a simple application in an afternoon, so within about an hour I had made this is. It takes a string from the user and makes a phrase using word from the Eye of Argon to make an initialisation.


Feynman diagram maker
One of the most common diagrams that particle physicists use are Feynman diagrams. There are already a few tools that can be used to make them, but they usually have some significant drawback (including non-intuitive interface, poor quality graphics, lack of control over the final image, text only input.) This is a drag and drop style Feynman diagram maker aimed at making creation of the diagrams as quick and simple as possible. This is quite an advanced project with lots of scope for further development.


Floorplan
This was a quickly written project to help me rearrange the furniture in my new apartment. This project has scope for a lot of further development in the future.


Google Maps War
This project was made partly to combine the Hexagonal civ game with Google Maps, and partly to push the Google maps API to its limits. It turns out that Google Maps is not suited to this heavy use.


Guess the song
This project is a fun game where the user had to guess the song by guessing the lyrics, hangman style, with whole words instead of letters.


Hexagonal civilisation game
Ever since I played Sid Meier's original Civilisation I've wanted to make something similar to explore the gameplay and create something fun to pass the time.


L'Hotel d'Aidan
When I was living near Geneva I had a spare room and many people came to visit for work or leisure. To make it easier to keep track of who was visiting when I created a page where people could book my spare room.


i, short for indico
At CERN we used a meeting organisation system called indico. Each meeting had a unique ID that was used to identify the resources associated with it. In many instances there were times when a person had to access a meeting page when they only knew the unique id, and not the full uri. I made this tool to obtain the full uri, given only the meeting id. Since this project shortens the uri for indico it is called "\(i\)", which leads to all kinds of puns.


Image fader
This is a simple script that fades an image to a given color and transparency. It's used to make images for use in web design (for example, a background image that needs to fade to match the background color.)


Image morpher
*.gif images have been around for a long time, but this is something a bit different. It takes an array of images and changes between them randomly with random intervals of time.


Insulter
This is another simple and frivolous project. A student showed me a page illustrated a table with three columns that could be used to make an insult. It looked liek it should be coded up, and I had 15 minutes to spare, so I did.


Mathematical inverter
This project performs the mathetical inversion transformation. A curve on the plane is inverted such that points within the unit circle are mapped outsid the unit circle and vice versa.


Iterated path
This project is a mathematical toy to see what happens when a simple rule is repeated many times. It starts with a straight line and then moves the points relative to this line. The process is then repeated many times, leading to some beautiful patterns.


Key decoder
This project tells the user the keycode associated with a given key in a given browser.


LGBT map
One of my more far reaching projects is the LGBT CERN group. It is a diverse group with people from across the world, and one of the issues that we care about is safety in different nations. This project keeps track of progress in different nations.


Links pages
When working on ATLAS and CMS I often needed to save links to poorly advertised pages. This is where I store the links.


Mandelbrot explorer
This project estimates the Mandelbrot set using the HTML5 canvas. It's one of my longest running projects that has been implemented in PHP, SVG, HTML5 canvas, HTML tables, and even in ROOT.


Geneva Marathon analysis
In 2013 I took part in the Geneva Relay Marathon with some friends. The results were presented, leg by leg, on a webpage. I took this as an opporrtunity to analyse some data and find a novel way to display the data.


Marble Hornets
Marble Hornets was a webseries that spans the course of about five years. The premise of the series is that a student film maker started filming an amateur movie in 2006, but abandoned the film due to "unworkable conditions on set". It quickly turns into a horror series that brings with some novel techniques. However what really inspired me to make this project was the asynchronous storytelling narrative, which requires the viewer to piece together the true chronology based on the context of the videos. I'm an active participant on one of the busiest discussion boards for this series and regularly update this project as each new video is released.


Generic code guessing game
This project was made as an exercise in dynamic HTML manipulation. It's a clone of a classic code guessing game where the player plays against the computer.


Maze - Island Quest
Following on from the Platform game and Explorer game I wanted to create a tile based game. This was partly inspired by the game Kharne which I had played many times, and I became frustrated with the lack of similar games online. (It was this frustration that lead to a minor obsession with 91, and the creation of the huge 91 map poster.)


Only Connect Missing Vowels game
Once I came across Only Connect I became a big fan, and especially enjoyed the Missing Vowels game. I thought this could use a game that people could play online to complement the existing "Connecting Wall" game.


Particle multiplets
For my thesis I needed to describe many of the know mesons and baryons. To better illustrate their relation to each other I decided to create an SVG image showing a three dimensional representation in isospin and weak hypercharge space.


Moving very slowly!
One of my friends challenged me to write an app that play clips from the Strong Bad song "Moving very slowly!" Of course within an hour I had a working webpage that did just that. This was mostly a matter of refactoring the Advent Calendar with a few tweaks.


Neuron simulator
One of my friends wanted to develop a genetic algorithm that was capable of learning and adjusting a neuronal network to suit its environment. I got as far as making a genetic algorithm before abandoning the project as my friend's interest seemed to move at the same time as my knowledge of the problem was exhausted.


Painter
Many years ago I wanted to make a platform game (I still do) and I needed to be able to make simple and small graphics quickly and easily. Once I realised I could manipulate images using PHP it became easy to create a simple application to make pixel art.


Parodier
This was something I made a while back for reasons that I can't quite remember. It allows the user to create their own version of the "KEEP CALM AND CARRY ON" posters that have been popular in the past decade.


Pebbling a Chessboard
One of the channels I follow on YouTube is called Numberphile, and they give plenty of good ideas for mathematical games. In this game the user has to move pieces around a chessboard in order to liberate "clones" from a prison. On Numberphile, they suggested playing this game using an actual chessboard, but I decided that a better way to do it would be to write my own game. So here it is.


pi estimation
This project was put together quickly while waiting for a physics job to finish. It was an exercise to see how quickly I could make a useful page with my current setup on my website. Including time to research, write, upload, and test the page it took around 20 minutes.


Pixeler
This project was made rather quickly in response to an image challenge. Afterwards I changed the project to allow the user to choose any image to pixelate.


Generic platform game
This project is something I've been working for a long time and something I have wanted to develop for as long as I can remember. It's a platform game strongly inspired by the BBC Micro game, Citadel. (I have another project dedicated to mapping Citadel.) When I was younger I would dream about playing non-existant extra levels in Citadel, and when I started recreational programming I would sometimes dream about making new levels for the game.


Project list
I have many projects on my website, and it can be hard to keep track of them all. This project is a tool to list them all and make it easier to collate them online.


Recolourer
This project has been on my to-do list for a very long time. The idea is to take an image which is difficult for a colour blind person to view, and then remap the colours to make it easier for them to view.


Reflections
A "reflection" is a term in particle physics for when a decay of one particle looks like the decay of another. It's a topic which has been studied for about fifty years, and seemed like an excellent chance to combine physics and coding.


Skyline generator
One of the features I want on my webpage is the silhouette of a skyline to use as background image. This project is aimed at allowing the user to draw a complex skyline, with the possibilty for animation.


Sliding tile game solver
I was playing a PuzzelScript game involving sliding blocks that i just couldn't solve. So I wrote an algorithm to solve it.


Spectrum
This project was made around the same time as the Reflections project, but I cannot remember which was written first.


Symbol browser
This is a simple tool to allow the user to quickly copy a string of symbols.


Tangles
I love to create games and I try to keep up with the latest web based technology to create open source games. When it became clear that all the modern browsers support the canvas I decided to create this game to see what I could make. It's a clone of similar games such as Loops of Zen.


Generic block stacking game
This was my first serious Javascript project which was written some time in 2009. I chose to write a Tetris clone because it was a well defined project that would teach me how to use Javascript. In addition to Tetris I also made Tritris and Pentris to see how well balanced the three games are compared to each other. It turns out that Tetris is about right, with Tritris being too easy and Pentris being too hard.


Image transformer
When I discovered I could manipulate images with PHP one of the first things I wanted to do was perform coordinate transformations. They have fascinated me since I first came across them and so I developed this project to satifsy my curiosity about what a skyline might look like when transformed into polar coordinates.


Tricolor
While investigating Conway's game of life I wanted to see if I could easily extend the framework I'd developed to explore other systems. One of the more interesting cellular automata is the rock-paper-scissors system where three populations feed on each other.


Uncertainties radar
When dealing with systematic uncertainties in physics it's often important to know the relative contributions of each unceratinty to the overall uncertainty. This script compares all the uncertiaties, assuming they are \(0\%\) correlated.


That Weird Part of YouTube
One of the most fruitful memes on the internet is "That wierd part of YouTube". I saw an opportunity to create a service to find the weirdest videos on YouTube, and I made this webpage.


Wolfram rules
I enjoy playing with recreational mathematics and the Wolfram rules are a rich source of complex behaviour from simple rules. So I created this project to explore how the rules can lead to different patterns.


YouTube thumbnailer
This project takes a YouTube uri and provides the appropriate thumbnail images.

