PBD Cloth Simulation

An in progress implementation of the Position Based Dynamics algorithm with distance and bending constraints, an implicit solver, inter-object collisions, and constrained points.

C++ Eigen Partio Spring 2018

Ragdoll Simulation

Building a Ragdoll simulation with the Bullet physics library for Dr. Chenfanfu Jiang's “Interfering Forces and Learning Human Utilities" project.

C++ Bullet Fall 2017

MPM Snow and Jello Simulation

APIC based grid system using Eigen and template backing to allow for easy simulation attribute transferring. Handled proper conversion of the particle to grid and grid to particle transfers and calc of stress factor for force deformations. Final implementation includes snow and jello demos.

C++ Eigen Fall 2017

Poisson Disk Sampler

Implemented the Poisson Disk Sampling Algorithm for filling in mesh bodies with an even and random distribution of samples. BVH grid for checking if a sample exists in the given mesh. 3D background grid to speed up nearby searching during the O(n) algorithm.

C++ OpenGL Fall 2017

Point Selection Application

This desktop application allows the user to select mesh intersection points through text input, actual mesh intersections, and machine learning outputs, which later will be used to train the algorithm to texture real objects viewed from the Oculus.

C++ OpenGL Summer 2017

Monte Carlo Pathtracer

Implemented a Monte Carlo Pathtracer complete with a Full Lighting Integrator, a BVH acceleration structure, and photon mapping.

C++ OpenGL Spring 2017

Music Visualizer

Implemented a music visualizer using distance based noise and buckets corresponding to particular outputs for the creation, positioning, and coloring of the small balls.

JavaScript WebGL Spring 2017

Biocrowds

Using specified markers and agents, created two scenarios following the BioCrowds crowd simulation algorithm to prevent the agents from colliding with each other using the notion of "personal space."

JavaScript WebGL Spring 2017

Implicit Surfaces

Isosurfaces created from 3-dimensional metaballs using the marching cubes algorithm.

JavaScript WebGL Spring 2017

LSystems

Created an LSystem parser that generates interesting looking tree-like plants.

JavaScript WebGL Spring 2017

Recursive Raytracer

Implemented a raytracer with multithreading and aliasing. By using ray-object intersection testing, properly calculated pixel coloring including refraction, reflection, and texture mapping.

C++ OpenGL 2017

Noise

Using procedural noise based on position and time to create patterns and specific coloring for the shape. Produced three partially randomized outcomes and one completely noise based.

JavaScript WebGL Spring 2017

Mini Minecraft

Group project to develop Minecraft. My responsibilities: procedural generation of caves below ground and that of the dynamic terrain above ground and the implementation of the A* search algorithm for roaming sheep to follow the user.

C++ OpenGL Fall 2016

Mini Maya

A partial implementation of Maya complete with extruding, smoothing, and inserting of edges and vertices. Allows for loading of different object files and has a shader adjustment for a time-based shading effect.

C++ OpenGL Fall 2016

Image Recognition

A neural network based on photos of alpha-numeric characters with three hidden layers of weights to properly identify the letter found in the photo.