Skip to main content

Projects

Click on the projects to learn more about them

Monte Carlo Path Tracer
REPO

C++, OpenGL

  Monte Carlo Path tracing is a rendering technique that aims to represent global illumination as accurately as possible with respect to reality. When combined with physically accurate models of surfaces, accurate models light sources, and optically-correct cameras, path tracing can produce still images that are indistinguishable from photographs.

Mini Minecraft
REPO

C++, OpenGL, GLSL

Group Project

  A tiny game built from scratch in the style of Minecraft.

  Features I Implemented: Efficient Terrain Generation (interleaved VBO's and mesh hull drawing), general material property mapping scheme, weather, clouds, a day and night cycle, animated textures and more.

Boids with CUDA
REPO

C/C++, CUDA

  GPU Flocking Simulation written in CUDA

Visualize 1.6 million particles running at 60fps

Tested on: Windows 10, i7-7700HQ @ 2.8GHz 32GB, GTX 1070(laptop GPU) 8074MB

Art Of Collisions (Maya Plugin)
REPO

C++, Maya API, MEL

Group Project

  A real-time simulation of particle-based rigid body dynamics based on the paper "Unified Particle Physics for Real-Time Applications" by Macklin, Muller, Chentanez, and Kim.

Interesting Level Generator
REPO

Javescript, WebGL

  A procedural multi-layer dungeon generator that generates levels based on a dynamically generated voronoi like graph after it has been heavily modified by various filters.

  Realistic fog, crumbling pathways, and terrain are added over the basic level layout to give it a unique mysterious foreign world aesthetic.

Metaballs
REPO

Javascript, WebGL

  Simulation of 3D Metaballs, which are organic looking n-dimensional objects

Rendering


CPU Monte Carlo Path Tracer
REPO

C++, OpenGL

  Monte Carlo Path tracing is a rendering technique that aims to represent global illumination as accurately as possible with respect to reality. When combined with physically accurate models of surfaces, accurate models light sources, and optically-correct cameras, path tracing can produce still images that are indistinguishable from photographs.

GPU Accelerated Projects


Boids with CUDA
REPO

C/C++, CUDA

  GPU Flocking Simulation written in CUDA

Visualize 1.6 million particles running at 60fps

Tested on: Windows 10, i7-7700HQ @ 2.8GHz 32GB, GTX 1070(laptop GPU) 8074MB

Procedural Graphics


Interesting Level Generator
REPO

Javescript, WebGL

  A procedural multi-layer dungeon generator that generates levels based on a dynamically generated voronoi like graph after it has been heavily modified by various filters.

  Realistic fog, crumbling pathways, and terrain are added over the basic level layout to give it a unique mysterious foreign world aesthetic.

Shaders
REPO

Javascript, WebGL

  A variety of Shaders and Post-Processing Effects

Metaballs
REPO

Javascript, WebGL

  Simulation of 3D Metaballs, which are organic looking n-dimensional objects

Procedural City
REPO

Javascript, WebGL

  A procedural city built using shape grammar; The city is dynamic and changes with every build.

BioCrowds
REPO

Javascript, WebGL

  BioCrowds is a space colonization algorithm for crowd simulation. Agents can travel only over pre-defined viable paths that are littered with markers.

  Agents move in the space by owning a collection of markers in a radius around them. The markers help determine a vector toward the goal while avoiding obstacles.

Maya Plugins


Art Of Collisions (Maya Plugin)
REPO

C++, Maya API, MEL

Group Project

  A real-time simulation of particle-based rigid body dynamics based on the paper "Unified Particle Physics for Real-Time Applications" by Macklin, Muller, Chentanez, and Kim.

Games


Gravity Wells
REPO

Unity 3D, C#

  As an all powerful, old as time being you get bored often. Your newest hobby is trying to catapult ships into moons using black holes. It is the latest fad after space golf failed you.

  Custom physics using RK2 integration

Miscellaneous


Mini Minecraft
REPO

C++, OpenGL, GLSL

Group Project

  A tiny game built from scratch in the style of Minecraft.

  Features I Implemented: Efficient Terrain Generation (interleaved VBO's and mesh hull drawing), general material property mapping scheme, weather, clouds, a day and night cycle, animated textures and more.

Mesh Editor

C++, OpenGL

  HalfEdge Mesh Data Structure; Catmull Clark Subdivision; Skeletons and Skinning

Agent Behaviours

C++

  An Implementation of a variety of agent behaviours, both individual and group behaviours.