Projects

I have worked on several projects in my spare time or with school or work. Here are a few in no particular order:


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, my supervisor Anthony Steed and I developed a real-time collaborative virtual environment using the glTF 2.0 specification. We ultimately conceptualised a networking protocol that allowed heterogeneous game engines to render the same virtual environment. Our project is inspired by the seminal paper Scene-Graph-As-Bus (2000) by Zeleznik et al. Our 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 Inverse Problems in Imaging, 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 when I was sixteen years old.

Vector Math Library (Java)

GitHub

Alongside Ixion, I wrote a small 3D vector maths library when I was sixteen. At the time, I had little knowledge about how this kind of mathematics actually worked. Currently, I am doing a full rewrite of this library as I know that many people in the LWJGL community use it.