I like making things. Usually I write software, although sometimes I make other things too. This page is an aggregation of things that I have made, often with the intention of gaining a better understanding of how a particular algorithm or system works. I do not claim to be an authority on any of these things, so if you think you have found an error in something I have written or if you just want to ask me more about them, feel free to leave a comment on the corresponding page.

The tags in the upper left corner of each square indicate the dominant language used for the project.

Edge detection is the problem of identifying the boundaries of objects in computer vision. I think the methods by which it is performed are really interesting, so I wrote a few simple edge detectors over the course of a day.
The Game of life has been done to death. Even so I wrote this application with the intention of using it as an assignment for first year C++ students. I wanted to give them a change to do something a bit more graphical than terminal programming.
Hidden Markov Models are a statistical model which assumes that some unobserved sequence of states are yielding an observed set of outputs. With the help of a tutorial by Mark Stamp, I implemented a simple HMM in C.
K-Means is a clustering algorithm with a wide range of applications in data analysis. However, it began its life as a method of quantizing colours in images. I implemented K-means and used it to do some simple processing on a photo of myself.
Petals Around the Rose is a logic puzzle. A number of dice are rolled by a game master who proceeds to announce an answer. Other players must establish the relationship between the answer and the dice values.
Steganography is the art of hiding information behind other information. The common example is writing a secret message between the lines of a letter using lemon juice. It is also a means of distributing malware. I wrote a program which hides files in the pixel data of an image.
This little tutorial was originally hosted on my old website - It demonstrates a few different ways to render a collection of text documents using word clouds for visual impact.