Projects
A selection of things I've built - across graphics, GPU and parallel computing, games, and work projects.
Work
Codeplay - ComputeAorta
Worked on ComputeAorta, Codeplay's OpenCL implementation, as a runtime engineer.
- C++
- OpenCL
GTA Online
Worked with the mission scripting team at Rockstar North on GTA Online.
- RAGE Script
Unreleased Disney Project
Graphics visualisations and cross-platform prototypes built during an internship at Disney Research Edinburgh.
- WebGL
- JavaScript
Personal

Conway's Game of Life
An implementation of Conway's Game of Life in Unity, built while exploring cellular automata.
- Unity
- C#
- Cellular Automata

Global Game Jam 2014 - Robot Game
A first-person game built in 48 hours where players swap cameras with each other. Voted second best at the Edinburgh jam site.
- Unity3D
- C#
- XInput
- SketchUp

SIE App Jam 2013 - Super Santa Brawl
A 2D Unity brawler built in ~9 hours for the SIE App Jam. Won a Raspberry Pi kit.
- Unity
- C#
- XInput

Silent Night
A horror game built for the Software Development Challenge - won first place. I led environments, level design and interaction.
- Unity
- C#

IIDI Internship - Data Visualisation with D3
A summer internship researching D3 and building interactive visualisations of researchers, publications and their relationships.
- HTML
- JavaScript
- D3
Flickr Puffersphere App
An app that pulls mercator-projection images from the Flickr API and displays them on Pufferfish's Puffersphere spherical display.
- Flickr API
- JavaScript
University

OpenGL Rendering Engine
A solar-system graphics demo built with OpenGL, showcasing multiple cameras and post-processing shader effects.
- C++
- OpenGL
- GLM
- Visual Studio 2010

GPU Particle Engine
A DirectX 11 particle system using geometry shaders - over 1.28 million particles at 30 fps on a mid-range GPU.
- C++
- DirectX 11
- Geometry Shaders
- Visual Studio 2012

Parallel N-Body
Optimised the IDEA cipher and an N-body simulation across C++11 threads, SIMD, OpenMP, MPI and the GPU.
- C++11
- OpenMP
- MPI
- SIMD
- DirectCompute
Honours Project - Volumetric Rendering
Optimising a Minecraft-style volumetric rendering engine with DirectX 11 geometry-shader techniques. Presented as a poster at VRST 2014.
- C++11
- DirectX 11
- Geometry Shaders
- HLSL

MSc Thesis - Real-time Motion Adaptation
A GPU method for retargeting the motion of hundreds of characters in real time, adapting to uneven terrain. Basis for a Motion in Games 2015 paper.
- C++11
- OpenCL
- OpenGL
- Visual Studio 2013

Space Adventure
A Java space-trading/combat game for the Software Development 3 coursework, demonstrating a range of design patterns.
- Java
- Design Patterns
- Eclipse

Mobile Virtual Reality
A group project (as technical lead) simulating a 3D effect on a flat mobile screen using gyroscopes and an offset-projection technique.
- Unity3D
- C#
- Android
Illdao
A second-year game built with Irrlicht and C++ to learn the fundamentals of games programming.
- C++
- Irrlicht