My journey through video game development and graphics programming


Game Engine/Tools Development

UI – Created my own header-only library that can handle dynamic layout.
Shader Editor – Created my own node-based shader editor similar to shader graph.
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 – PBR, Image Based Lighting (IBL) and custom material format.
Animation – GPU skinning and playback system.
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 600 stars on GitHub.


Procedural Animation and Texturing of Implicit Creatures

• Procedural animation: Inverse Kinematics, constraint-based physics, and Semi-Implicit Euler integration.
• Geometry: implicit surface functions (SDFs)
• Rendering: procedural textures, raymarching.
• Post-processing effects: underwater caustics, a Kuwahara filter for stylized rendering, and a Difference of Gaussians filter for edges.

Raymarch Procedural Complex Implicit Terrain

Bachelor’s dissertation at University of Cambridge: 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 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 -- Falling Sand

Solo dev, cellular automata particle simulation, GGJ 2024.

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.