This page shows some examples of my work in 3d graphics and games.
I was at Vertual for nearly 5 years, working on immersive medical training software for radiotherapy. The flagship product ("VERT") is widely used by the NHS in England and Wales. It was written in C++, using the Open Inventor graphical framework and OpenGL. Full installations included 3d stereoscopic projection and head tracking.
One of my major projects on VERT was implementing a real-time "dose-on-CT" visualisation, shown in the video below. The light blue object is the outline of the patient's torso. The cross-section images show a CT scan (greyscale) overlaid with a visualisation of the radiation exposure received during treatment (colour).
The CT and dose data were separate 3d datasets, in different coordinate spaces, and resolutions, with very high bit-depths. They had to be sampled, windowed/levelled, colour-mapped, combined, and rendered in real-time. Due to limitations on customer hardware, I had to write parallel algorithms to do this entirely on the CPU using C++ and OpenMP.
I designed and developed the Octapool app for iOS entirely myself. It was written in Objective C using the Cocos2d engine. The app was a freelance project on behalf of Aarcee limited, who wanted a novel way to market their real-life 8-sided pool tables.
The video below shows a simple 3d nebula effect I programmed as a personal project, using only C++ and OpenGL. It simply uses a few static polygons with colourful textures and additive blending. Each polygon fades out to transparent as the camera approaches a side-on view so that there are no visible edges.
The screenshot below is part of another personal project to explore a few other graphical techniques using only C++ and OpenGL. It includes particles for the engine trails, a shadow volume, and basic reflections.
During my undergraduate degree, I took part in "Dare to Digital" at the University of Abertay. It was a 10 week competition to design and prototype a computer game.
I was on a team called "Phaigo Interactive". We produced a first-person story-driven game called "Spaceport". It was written in C++, using the Ogre engine. My main responsibility was gameplay programming.