My journey through video game development and graphics programming

Custom Game Engine Development

Component-Based Architecture – GameObject system with a hierarchical scene graph.
Lua Scripting – Integrated as components for runtime behavior modification.
Serialization – Custom save/load system for game states and assets.
GUI Editor – Built an in-engine tool for scene and asset editing.
Rendering – Lighting, normal mapping, and custom material format.
Animation – GPU skinning and playback system.
Physics – Custom rigid-body system with collision detection.
Shader Editor -- Node-based shader editor similar to shader graph.
Designed and implemented core game engine systems, blending graphics, physics, scripting, and tooling into a cohesive framework. Developed entirely as a solo project.

Easy Text Effects for Unity

Created a Unity package that enables game developers to easily design stunning and fully customizable animation effects for TextMesh Pro texts.The package is open-source and actively maintained.I manage the repository, fostering community engagement and contributions, with the project earning over 400 stars on GitHub.


Procedural Animation and Texturing of Implicit Creatures

Led a team of three to develop procedurally animated creatures in Unreal Engine 5, leveraging Inverse Kinematics, constraint-based physics, and Semi-Implicit Euler integration.Represented the creatures using implicit surface functions and implemented raymarching.Enhanced visuals with advanced post-processing effects, including underwater caustics, a Kuwahara filter for stylized rendering, and a Difference of Gaussians filter for edge enhancement.

Raymarch Procedural Complex Implicit Terrain

Bachelor’s dissertation: Developed a raymarching renderer in GLSL and C++ for real-time procedural environments (terrain, water, atmosphere, volumetric clouds). Added procedural planets and JSON parameter storage. Awarded 87/100, High Distinction.

Shader Web

Solo-developed a web-based GLSL shader editor with WebGL, TypeScript, and React. Added custom multi-pass rendering, a GLSL preprocessor, and user-created widgets for real-time uniform adjustments.

ARc Racer -- AR Racing Game

Led team of 3, created AR track and racing game in Unity AR Foundation; features dense mesh driving, object scanning for cars, and realistic lighting.

Technical Artist -- USC Advanced Game Projects

Developed custom shaders and VFX in Unity for 2 advanced USC game projects using Shader Graph, HLSL, and Visual Effect Graph; optimized particle systems and effects for performance.

Details Coming Soon After Release

Game Jam -- Neon Dash

Led team of 3, 4th overall, 2nd presentation, Mini Game Jam 128.

Game Jam -- Mayi Garden

Led team of 3, Best Use of Theme, Cambridge Game Jam 23.

Game Jam -- Cascade Down

Solo dev, Mini Game Jam 104.

Unity Node-Based Dialogue System Tool

Implemented using Unity's GraphView library, 21 stars on GitHub

Others

Left: Procedural art using flow field simulation.
Right: Experiment in post-processing effects.

University of Southern California

Los Angeles, CA
Expected Graduation: Jun 2026

University of Cambridge

Cambridge, UK
Graduated: Jun 2024

Gearset


Cambridge, UK
July 2024 - Sep 2024
Full-Stack Developer Intern, Databackup Team
Improved the databackup system’s binary file export feature, boosting user satisfaction by 25% with new capabilities like automatic detection and downloading of related binary files, using full-stack development in React, Redux, ASP.NET, and PostgreSQL.

Autodesk


Cambridge, UK
Jun 2023 - Sep 2023
Software Engineer Intern, Modelling Components
Collaborated on the development of ReForm – a mesh quadrangulation library used in Maya.
Utilised C++, OpenGL, and ImGui to enhance ReViz, a visualization tool for ReForm, by adding numerous features, reinventing its camera system, and converting it into from a standalone app to a library.

Noah’s Ark Lab


London, UK
Jun 2022 - Sep 2022
Research Intern, NLP Team
Conducted two critical experiments, driving accuracy improvements using distinct text, code tokenizers, and weight freezing. Preprocessed data, and modified fine-tuned GPT-2 models for the text-to-code task utilising Pytorch and HuggingFace.