Sonic Pi Shader

I added a simple API to the Sonic Pi code base.


I’ve been working on a graph-based synthesizer for some time, as part of my larger live coding project.

Sonic Pi

I contributed a pair of scopes to the latest version of Sonic Pi 3.2, which has now shipped.


Jorvik is my current Code & Coffee project. It is intended to be a live shader editing tool for Algorave and Interactive applications.


Zep is a lightweight editor, designed to be used inside a 3D engine.

Nsight Graphics

I currently work on the Nsight Graphics Team at NVIDIA.

Easy Render

Easy Render is a lightweight sample of how to do simple CPU drawing to a Windows Window.

Game Of Life

Implementing Game of Life is a classic programming challenge.


Recognizing gestures for a spell casting game idea.


Mgfx is a teaching framework I’ve used at York Developers. It has a simple support for building 2D and 3D applications in C++, with cross platform support.


Most graphics programmers have played with Voxels/Minecraft style of rendering.


At the York Code Dojo, we spent an evening writing a connect 4 player. We pitched the results against each other to see which could play the best.


Generating Mazes in code is a fun challenge.

Ray Tracer

Every graphics engineer should write a ray tracer at some point. I’ve done this a couple of times in C++ and Python.


Understanding how Option Trades evolve over time is key to being able to trade them effectively.


Building a lisp interpreter is an interesting exercise, especially if you are new to functional programming.


Asteroids is a fun an easy game to build. This one is part of the MGFX teaching framework.


MapMindz was a little application I wrote for Microsoft Surface 1.


Boardz was a collection of turn based board games released for iPhone and iPad. It included a server, player matching & chat.


I like to tinker at Game Development occasionally; my hex planet app shown here is one such example.

NanoVg (D3D Backend)

NanoVg is a 2D Vector Library. I contributed a D3D backend to the effort - just for fun.

Early Shader Debugger

An early shader debugger for the DirectX Reference Rasterizer


To support our developers in implementing DXSAS shader semantics, I developed an example tool that implemented the SAS processing and allowed you to combine full screen effects.

DX Driver

At 3DLabs, I ran the DirectX Driver team. I worked on DirectX 2,3,5,7 and 8 drivers - mostly for Permedia & Glint chips.

NVIDIA FX Composer

FX Composer 2.5 is a powerful integrated development environment for shader authoring.

Lens Flare

Texture Masking for Faster Lens Flare

NV Shader Linker

NV Shader Linker was an attempt to build a traditional fixed function graphics pipeline using a series of shader fragments.

NVIDIA Effects Browser

My first job at NVIDIA was writing a tool to enable developers to understand vertex and pixel shaders.