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

5 million particles running at 11fps

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

More Procedural Graphics


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.

Shaders
REPO

Javascript, WebGL

  A variety of Shaders and Post-Processing Effects

Miscellaneous


Mesh Editor

C++, OpenGL

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

LSystems - A Maya Plugin

C++, Maya API, MEL

  An Implementation of LSystems as a maya plugin.

Agent Behaviours

C++

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