Here are some examples of things I have worked on in the past:
2024
Gaussian Splatting in Unreal Engine
Following on from Unreal RTX, the next exciting rendering project I worked on was a Gaussian Splatting rasteriser inside of UE shown off in the video below.
2023
Unreal Engine RTX
Upon joining Dimension, I had the opportunity to work on projects that were very exciting. One of the first was Unreal Engine RTX—a custom version of Unreal Engine enhanced with support for NVIDIA’s Caustics, Direct Illumination (RTXDI), and Shader Execution Reordering. You can see this engine in action in the video below.
Virtual Camera Project – DNEG Virtual Production, Research and Development
At DNEG I worked on a custom Virtual Camera pipeline inside Unreal Engine. In the video below, an Unreal Editor instance was pixel streamed to an iPad Pro driven by an Xbox Gamepad. The goal was to create a fully customisable shot-creation experience using off-the-shelf hardware.
2021
GPU Simulation: Raytracing
Much, if not all of my work at Imagination has been concerned with hardware acceleration techniques for raytracing applications. I spent almost a year working on the coherency gathering engine inside the Ray Acceleration Cluster (RAC) and some other smaller parts of the system with many great engineers.
2020
The Hyperverse Transfer Protocol
For my master’s thesis, I conceptualised a networking protocol that allowed heterogeneous game engines to render the same virtual environment. The project is inspired by the paper Scene-Graph-As-Bus (2000) by Zeleznik et al. The work ultimately was accepted as a workshop paper in IEEE 2021, which I was really proud of.
In the video below, we demonstrate the sharing of 3D graphics between a Unity and Python (using Pyrender) client using a Java server.
Radon Transform and Inverse Problems
For my mini-project in my Inverse Problems in Imaging course, I investigated the Radon transform and its inverse using MATLAB. I looked at the back-projection method, singular value analysis, matrix-free regularisation, Haar wavelet denoising and soft-thresholding using wavelets. Furthermore, I looked into inpainting and applying inpainting on limited-angle and undersampled sinograms.

Computational Timelapse Videos
This project was developed as the final assessment piece for my Computational Photography class. It is a web application that aims to create uniform and non-uniform timelapses with motion blur using OpenCV and Python. Furthermore, it uses Bing Search to find frames to create hyperlapses. It’s quite buggy, but the concept works. The algorithms and techniques are taken from the paper Computational Time-Lapse Video by Eric P. Bennett et al.
2019
Mixed Reality Escape Room Project
For our Virtual Environments class, we developed a mixed reality experience titled “Escape the Room” using technologies such as the Leap Motion, HTC Vive and the Vive Tracker. This project was built entirely in Unity.
JNVI (Java Native Vectorisation Interface)
The JNVI was developed as a final-year project as a part of my undergraduate Computer Science degree. It is an API that exposes access to low-level SIMD (Single Instruction, Multiple Data) machine architecture through JNI. This is achieved by allocating memory off-heap as vectors and operating upon them.
2017
FusionReactor
As a part of my year-long internship at Intergral GmbH, I worked on FusionReactor. This was an application performance monitoring (APM) solution for Java servlet containers. Ultimately, I developed three flagship features: the CPU sampler, method hotspotter and log archive viewer.
2014
Ixion
A 3D first-person shooter set in space, where players are encouraged to build their own ship and explore the universe. Each ship had an onboard computer where commands could be executed. I created the game from scratch in Java and using the Lightweight Java Gaming Library (LWJGL) when I was sixteen years old.
Vector Math Library (Java)
Alongside Ixion, I wrote a small 3D vector maths library.