Projects

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

Imagination Website

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

GitHub | Report

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

GitHub | Report

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

GitHub | Report

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

GitHub

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)

GitHub

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

FusionReactor Website

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

GitHub

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)

GitHub

Alongside Ixion, I wrote a small 3D vector maths library.