let MathJax = {tex: {inlineMath: [["$", "$"], ["\(", "\)"]]}};


"Without a tagline since 2010"

About this page

One of my hobbies is coding, markup development and web design in various languages. This includes C++, python, JavaScript, PHP, and many other things.

Image manipulation

There's something very satisfying about using mathematics to manipulate images. Here are the coding projects that do that.

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.

Visit the page

Apollonian gasket generator Apollonian gasket generator

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.

Visit the page

Image transformer Image transformer


These are coding projects that don't really do anything, and aren't games, but they are fun to look at and play with.

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.

Visit the page

Conway's Game of Life Conway's Game of Life

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.

Visit the page

Skyline generator Skyline generator

Mathematical projects

There's a rich variety of projects that can be developed using recreational mathematics. Here's some of the fun you can have.


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.

Visit the page

Ciphers Ciphers

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.

Visit the page

Circle from three points Circle from three points

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!

Visit the page

Complex polynomial Complex polynomial

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.

Visit the page

Iterated path Iterated path

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.

Visit the page

Mandelbrot explorer Mandelbrot explorer

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.

Visit the page

Mathematical inverter Mathematical inverter

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.

Visit the page

Neuron simulator Neuron simulator

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.

Visit the page

pi estimation pi estimation


This project is intended to be a space to investigate different sequences.

Visit the page

Sequences Sequences


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

Visit the page

Spectrum Spectrum

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.

Visit the page

Wolfram rules Wolfram rules

Project Euler

Project Euler is a website that encourages coding for the sheer joy of creative problem solving. It's something I take part in when I feel ill and have some free time to spare.

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.

Visit the page

Project Euler Project Euler

Project Euler (1-9)

Here is where I discuss the Project Euler problems 1-9.

Visit the page

Project Euler (1-9) Project Euler (1-9)

Project Euler (10-19)

Here is where I discuss the Project Euler problems 10-19.

Visit the page

Project Euler (10-19) Project Euler (10-19)

Project Euler (20-29)

Here is where I discuss the Project Euler problems 20-29.

Visit the page

Project Euler (20-29) Project Euler (20-29)

Project Euler (30-39)

Here is where I discuss the Project Euler problems 30-39.

Visit the page

Project Euler (30-39) Project Euler (30-39)