An archive of favourite projects that I have worked on, at some point in the past. Projects may be missing large data files.
- Web Vector - Spring project - My submission to the Cambridge Game Jam 2025. The graphics are written using a custom render pipeline I wrote last spring. The game uses graphics buffers to efficiently implement deferred lighting, halftone shadow volumes, cel shading and post processing such as motion blur and bloom - a range of rendering techniques. The spider has a movement system allowing it to walk on any surface, be it a wall, ceiling, or any arbitrary mesh. This makes creating levels just using modelling software such as blender viable.
- FEA for modelling deformation of hyperelastic materials - ongoing - A near-real-time parallel solver in HLSL for momentum conservation of an incompressible soft-body under deformation. The model is a hexahedral volume mesh generated by performing Catmull-Clark volume subdivision on a coarse model. The problem is linearised as a weak-form matrix equation which is iteratively solved using Newton-Raphson method, and the model is updated using the Newmark-beta method. Iterative solvers for the matrix equation implemented include BiCGSTAB and GMRES, and preconditioners for these methods currently include RAS, ILU, Gauss-Seidel, and multigrid methods which aid convergence. Future plans to use this solver to animate a human face, and train a neural network to approximate solver for real-time solutions.
- Custom Render Pipeline - Spring project - A custom render pipeline I wrote in Unity, which is easy to add to, giving much more control to the programmer than Unity's prebuilt render pipelines. This pipeline was used for my game Web Vector.
- Music Theory - Winter project - A system to produce customisable sound waves with a GUI that makes it easy to play notes and many chords in different modes of the diatonic scale, and other scales. The MIDI version outputs the sound on a MIDI channel.
- Ray tracer - Winner of 2023 Part IA Rendering Competition - Distributed ray tracer that handles reflection, refraction, and texture mapping for primitive shapes.
- Bit Logic - Autumn project - A graph-based interface to create logic circuits from basic logical components. Can save logic circuits as procedures and insert them into more abstract circuits. Adapted from NN Builder (spring project).
- Third Law Alignment - Summer project - A procedural planet generation system detailed with procedurally generated grass, trees, paths, and dynamic character animations and camera system capable of naturally traversing this terrain. An improved version of the systems in Third Law (2022), but with less extra features.
- NN Builder - Spring project - A graph-based interface to create neural networks from basic matrix operations, such as a feed forward layer or convolution, with implementations on CPU and GPU. Can save trained networks as procedures and insert them into other networks.
- Third Law - Year project - NEA Project for A level - A procedural galaxy generation system that is composed of solar systems each composed of a sun and planets. The player can explore planets, gather materials, and fly between solar systems in a ship.
- This used to be a GitHub web page of personal projects.
WebVector.mp4
Video clip of game entry for game jam using the custom render pipeline.
Screenshot showcasing grass and terrain.
Screenshot showcasing tree generation.
walking.mp4
Video clip showcasing movement over terrain.
fighting.mp4
Video clip showcasing movement during combat.
cube.deformation.mp4
Deformation example, pressing down in the centre of a cube (surface traction).
Deformation example, pushing arch down and right (uniform force).


