top of page
Projects
Below is a snippet of my current and past projects. These works range from independent projects to classwork collaborations. Clicking the images displays relevant Github repos and project websites. Please enjoy!
Graphics
Games
WebGPU NPR Path Tracer
WebGPU is a new JavaScript API that allows web developers to use a device's GPU. This is a new standard that is being actively developed to eventually replace WebGL's legacy.
This project implements a recent SIGGRAPH 2024 paper on integrating non-photorealistic rendering to regular path tracer where we treat stylized rendering as a function of expectation. I achieved interactive level of performance through utilization of WebGPU that can be viewed in most cross-platform computer settings.
GitHub Repo: https://github.com/Alan7996/WebGPU-NPR
Try the live demo:
This project implements a recent SIGGRAPH 2024 paper on integrating non-photorealistic rendering to regular path tracer where we treat stylized rendering as a function of expectation. I achieved interactive level of performance through utilization of WebGPU that can be viewed in most cross-platform computer settings.
GitHub Repo: https://github.com/Alan7996/WebGPU-NPR
Try the live demo:
WebGPU Clustered Deferred Renderer
WebGPU is a new JavaScript API that allows web developers to use a device's GPU. This is a new standard that is being actively developed to eventually replace WebGL's legacy.
This project implements light clustering and deferred shading to achieve consistent 60FPS with 10,000 randomly moving lights in a Sponza Atrium scene.
Additionally, I also experimented with two different ways of toon shading. The first approach implements a traditional toon shader in the fragment shader for deferred shading. The second approach takes the output of deferred shading and applies similar ramp shading in a compute shader.
Try the live demo:
This project implements light clustering and deferred shading to achieve consistent 60FPS with 10,000 randomly moving lights in a Sponza Atrium scene.
Additionally, I also experimented with two different ways of toon shading. The first approach implements a traditional toon shader in the fragment shader for deferred shading. The second approach takes the output of deferred shading and applies similar ramp shading in a compute shader.
Try the live demo:
CUDA Pathtracer
A path tracer is a computer graphics rendering technique that simulates how light behaves in a scene to create realistic images.
This GPU implementation utilized CUDA and OpenGL to achieve real-time rendering speeds, equivalent to up to 90% reduction in rendering time compared to a CPU pathtracer.
The project also showcases custom OBJ mesh and texture loading, hierarchical spatial data structure acceleration (BVH), Open Image AI denoiser, and many more.
Source repo and analysis:
This GPU implementation utilized CUDA and OpenGL to achieve real-time rendering speeds, equivalent to up to 90% reduction in rendering time compared to a CPU pathtracer.
The project also showcases custom OBJ mesh and texture loading, hierarchical spatial data structure acceleration (BVH), Open Image AI denoiser, and many more.
Source repo and analysis:
Vulkan Real-time Grass Renderer
This project explores real-time physical simulation and rendering of grass blades using Vulkan compute shader.
The grass blades are modeled as tessellated Bezier curves where for every frame the control points are affected by physical forces such as gravity, wind, and recovery forces.
Source repo and analysis:
The grass blades are modeled as tessellated Bezier curves where for every frame the control points are affected by physical forces such as gravity, wind, and recovery forces.
Source repo and analysis:
Boid Simulation
The boids flocking simulation contains particles representing birds or fish (boids) that move around the simulation space according to three rules: cohesion, separation, and alignment.
This project utilizes coherent uniform grid data structure along with CUDA and OpenGL to accelerate the simulation and achieve real-time rendering speed of 400 frames per second for 1 million particles.
Source repo and analysis:
This project utilizes coherent uniform grid data structure along with CUDA and OpenGL to accelerate the simulation and achieve real-time rendering speed of 400 frames per second for 1 million particles.
Source repo and analysis:
GPU-Based Global Mesh Operation Acceleration
I collaborated with another student to implement and benchmark polygon triangulation on GPU using OpenMP and Open MPI.
This achieved at most 6.03 speedup over a serial implementation.
Project analysis:
This achieved at most 6.03 speedup over a serial implementation.
Project analysis:
Defocus Blur and Chromatic Aberration Simulation
I simulated physically-accurate defocus blur and bokeh by developing uniform sampling schemes for custom aperture shape and size.
I also supported chromatic aberration simulation for both rasterizer (texture offsets) and pathtracer (spectral rendering).
I also supported chromatic aberration simulation for both rasterizer (texture offsets) and pathtracer (spectral rendering).
Photon Mapping
Photon mapping has been one of the well-known effective techniques in simulating caustics of a complex scene.
This project implements an advanced photon mapping scheme using K-D tree, caustic mapping, and final gather procedures.
This project implements an advanced photon mapping scheme using K-D tree, caustic mapping, and final gather procedures.
Scotty3D
Scotty3D is a 3D rasterizing, modeling, rendering, and animation package.
I implemented software rasterizer and texture mapping, local and global mesh operations using halfedge data structure, pathtracing with multiple importance sampling, particle simulation, and inverse kinematic animation with rigging and skinning.
Source repo link:
I implemented software rasterizer and texture mapping, local and global mesh operations using halfedge data structure, pathtracing with multiple importance sampling, particle simulation, and inverse kinematic animation with rigging and skinning.
Source repo link:
Release the Rats
Release the Rats is a stylized 2D platform puzzle game where the player becomes a poor rat seeking revenge against an evil witch holding rest of your rat friends as hostages.
This game was created as a group effort by 3 programmers, 2 artists, and 1 sound designer using Unity. I assumed the role of project lead and programming lead.
Source repo: https://github.com/y1s8m/release-the-rats
Gameplay video:
This game was created as a group effort by 3 programmers, 2 artists, and 1 sound designer using Unity. I assumed the role of project lead and programming lead.
Source repo: https://github.com/y1s8m/release-the-rats
Gameplay video:
Wildfire
Wildfire is a multiplayer PvP game designed and developed in Unreal Engine 5.
Two players take the roles of a firefighter and a spark (wildfire) that each fight for the control of most grassland. Integration of UE5 Niagara particle system and shader graphs contribute to the stunning stylized visuals of the game.
Source repo: https://github.com/thumun/Wildfire
Gameplay video:
Two players take the roles of a firefighter and a spark (wildfire) that each fight for the control of most grassland. Integration of UE5 Niagara particle system and shader graphs contribute to the stunning stylized visuals of the game.
Source repo: https://github.com/thumun/Wildfire
Gameplay video:
Dungeon Beats
Dungeon Beats is a 3D FPS rhythm shooter game built on a custom C++ engine with OpenGL.
The game features a tutorial level and 3 main levels, each about 3 minutes long!
This game was created as a group effort by 3 programmers. I assumed the roles of project lead and sound designer.
Gameplay video: https://www.youtube.com/watch?v=ufIr0Oj46PU
Game publish website:
The game features a tutorial level and 3 main levels, each about 3 minutes long!
This game was created as a group effort by 3 programmers. I assumed the roles of project lead and sound designer.
Gameplay video: https://www.youtube.com/watch?v=ufIr0Oj46PU
Game publish website:
Snow White and the Killer Dwarves
Snow White and the Killer Dwarves is a 3D horror game where the player is the snow white trying to escape from the horror house of seven killer dwarves.
This game was created as a group effort by 3 programmers, 2 artists, and 1 sound designer using Unity. I assumed the role of programming lead.
Gameplay video:
This game was created as a group effort by 3 programmers, 2 artists, and 1 sound designer using Unity. I assumed the role of programming lead.
Gameplay video:
Gravity Run
Gravity Run is a 3D endless runner game where you control the direction of gravity to dodge deadly lasers!
This game was developed independently using Unreal Engine 5.
Source repo:
This game was developed independently using Unreal Engine 5.
Source repo:
bottom of page