Demo: Green Dragon

Programming portfolio

For essays and articles, see Writing.


Demo: CharSim

A demo consisting of a character simulator running on a 3D game framework, utilising the OpenGL API, GL Shader Language and C++. Version 001 implements a selection of methods for 3D animation, mathematics, shading and running an efficicent game engine.

Rook1 Jinja2 theme

A theme for Pelican using the Jinja2 templating system, HTML5 and CSS.



This is the code I wrote for my dissertation which analyses a simulation of raytracing packets over a networked computing cluster. It uses MPI (MPICH2) to distribute the compute load.


An interpreted functional language implemented in ANTLR4.

OS programming: GetGallery Flickr

An app for the Windows 8 App Store, designed for the WinRT platform. It takes a Flickr gallery RSS feed and displays the photos as thumbnails. The user can select a thumbnail where they will be given the option to download the full photograph.


Database design & implementation for a billing system

A logical design for a specification for a billing system illustrated using a detailed Entity-Relationship diagram. The design is normalised to a minimum of 3NF and is implemented in SQL for the PostreSQL DBMS.

Google AppEngine application: "Fakebook"

A team effort to design a social network application suitable for cloud computing and data storage and implement it on the Google AppEngine platform.


An exercise in cluster computing. Uses MPI (Open MPI) to distribute the computation of pi using a Monte Carlo method.


A DirectX 11 3D game engine framework and demo.

Server-side web development

A website with an MVC design pattern using PHP for the view and controller logic and MySQL for the DBMS. It is designed to meet the requirements of a specification.


OS programming: Windows threads and processes in C

An exploration the Microsoft Windows Desktop API, in particular: window handles, menus, interpreting bitwise flags in message data types, and the differences between spawning threads and spawning processes.

Android app: RingToneGen

A design and implementation of a ring-tone generator with a focus on beat time signatures, but is mostly an exploration of good Android app design. It makes use of asynchronous tasks, event listeners and ensures compatibility with Android's suspend-and-resume system.



A realtime 3D demo and rendering framework in C++ using the Microsoft Windows message loop.

Analysis of a System for a DVD Rental Company

I use object-oriented system analysis to identify actors and their interactions in a specification for a company system. These are documented with written use cases and illustrated with an UML use case diagram. Boundary and control classes are identified in order to create UML sequence diagrams which illustrate the operations of the use case scenarios. Entity classes are derived with attributes and are illustrated via a UML class diagram.

Gesture-detection for alternative GUI (team project)

In team project to research and design alternatives to the WIMP user interface we chose gesture detection as a component that could be incorporated into a larger redesign. I designed a method for gesture detection and built on an existing drawing program to demonstrate it. For a detailed description of the method, see the documentation.


Javascript Gradient Menu

A script for an old website design which changes colour when you hover over the menu items.

Last updated: 2014-03-19 11:28:00