Python Section

RGB to Grayscale DTM converter

Converts annoying rainbow plots to grayscale. Requires PIL and a little manual intervention.

Source Code
Example results image

Cellular Automata

Cellular automata exist on a grid of cells and mimic the behaviour of various mathematical, physical, and biological systems. These cells move until sufficient food allows them to reproduce.

2D animated cellular automata example 1
2D animated cellular automata example 2
2D animated cellular automata example 3 (Nicolas Cage)
"Food" eaten by cellular automata
Population graph of cellular atomata
3D animated cellular automata 1
3D animated cellular automata 2

Basic Ant Simulator (object oriented test)

The ants leave pheromone trails which other ants sort of tend to follow. Generally results in confused ants.

Cool Ants Gif 1
Cool Ants Gif 2 (Cthulhu version)

Object Oriented Petri Dish Evolution Simulator

Small biosphere in which plankton, snails, and predators compete for survival. Agent behavioural parameters are selected via darwinian evolution.

Webm - Close-up of a hungry predator leaping to consume a snail which attempts to escape.
Webm - Video 2

Carcasonne Tiler

Ever wanted a contiguous grid of Carcasonne tiles of arbitary dimension? (tiles available on request)

Source Code
Example Output
Render of 3D version with Blender

Very basic non-OO Solar System Simulator, Co-Authored with M.J.F. Versteeg

Completed as part of the course 'Modelling and Simulation'. Simulate asteroids as they orbit the sun and become perturbed by planets. Also includes Trojan asteroids.

Plot of planet and asteroids positions and orbits
Orbital parameters output of simulated asteroids


Trajectory of the Voyager spacecraft in a Galactic Potential.
Transforming between arbitrary colormaps.
A script to generate unique names for all GAIA DR2 stars.