This page contains most of my recent computer science projects ordered by date. I'm not sure how much longer I'll keep this full listing here, but for now they stay.
Unity C++ OpenVR, Fall 2019
Week-long group project building a 3d interactive VR game using Unity. The goal was to make it have an educational awareness component towards the environment and small impacts that can help. Earn points by throwing away trash and healing as many sea animals as possible before running out of air in your bubble.
C++ MEL, Spring 2019
Group project implementing a Maya Authoring Tool for creating 3D Models of Zoomorphic Designs based on Level Sets, Signed Distance Field updates, and Marching Cube interpolations. Responsibilities: research and derivation from the original Zoomorphic paper to a more manageable implementation and most C++ aspects.
Group project implementing BioCrowds using a gpujs pipeline with a WebGL2 visualization. My responsibilities included the initial WebGL2 pipeline, entire backend gpujs pipeline, and render pass manipulations for BioCrowds algorithm.
Vulkan Grass Rendering
Vulkan GLSL Fall 2018
The focus of this project was as an introduction to the Vulkan graphics pipelines while implementing the "Responsive Real-Time Grass Rendering for General 3D Scenes" paper by Klemens Jahrmann and Michael Wimmer.
CUDA C++ Fall 2018
A CUDA implementation of a simplified rasterized graphics pipeline, similar to the OpenGL pipeline with vertex shading, primitive assembly, rasterization, fragment shading, and a framebuffer.
CUDA C++ Fall 2018
A CUDA implementation of a Path Tracer with different surface types, Anti Aliasing, Bonne Projection Bokeh Mapping, Motion Blur, Depth of Field, Stream Compaction, Contiguous Material Memory, and First Bounce Caching.
CUDA C++, Fall 2018
A CUDA implementation of stream compaction that works on integer arrays of all sizes removing the element zero.
CUDA C++, Fall 2018
A CUDA implementation of an artificial life program by Craig Reynolds that defines boids to simulate the flocking movement and orientation of birds in flight.
C++, Spring 2018
An implementation of the Fedkiw et al. 'Visual Simulation of Smoke' paper.
PBD Cloth Simulation
C++ Eigen, Spring 2018
An implementation of the Position-Based-Dynamics algorithm with stretching, compressing, and bending constraints, an implicit solver, kinematic collisions with a ball and the ground, constrained points, friction, velocity damping for the conservation of linear and angular momentum, and deflected velocity between colliding objects.
C++ Bullet, Fall 2017
Built a Ragdoll simulation with the Bullet physics library for Dr. Chenfanfu Jiang's “Interfering Forces and Learning Human Utilities" project.
MPM Snow and Jello Simulation
C++ Eigen, Fall 2017
Group project implementing MPM on an APIC based grid system using Eigen and template backing to allow for easy simulation attribute transferring. My responsibilities included handling 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.
Poisson Disk Sampler
C++ OpenGL, Fall 2017
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.
Point Selection Application
C++ OpenGL, Summer 2017
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.
Monte Carlo Pathtracer
C++ OpenGL, Spring 2017
Implemented a Monte Carlo Pathtracer complete with a Full Lighting Integrator, a BVH acceleration structure, multiple importance sampling, global illumination, focal distance changes, different light source types (point, spot, area), and photon mapping.
Implemented a music visualizer using distance based noise and buckets corresponding to particular outputs for the creation, positioning, and coloring of the small balls.
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."
Isosurfaces created from 3-dimensional metaballs using the marching cubes algorithm.
A collection of shading algorithms and post-processing effects: Iridescence, Edge Detection with Sobel Filtering, Vignette, Fish-eye bulge, Inverse, Swap, and Chromatic Aberration.
Created an LSystem parser that generates interesting looking tree-like plants.