Graduate Projects

Unsupervised Domain Transfer

CS 229 Final Project

I worked on this project for CS 229 (Machine Learning) in Fall 2017 along with Xinru Hua and Haotian Zhang. We attempt to verify results from a paper which introduces a method to transfer images between different domains (i.e. face images to emoji) using a generative adversial network (GAN) that is trained in an unsupervised fashion.

View Project Project Report

Undergraduate Projects

Fluid Simulation

Independent Study Project - Fall 2016

This is my first attempt at a full fluid solver that I implemented as part of an independent study. The simulation uses a PIC/FLIP method using a MAC grid structure based heavily on the book Fluid Simulation for Computer Graphics by Robert Bridson. This initial implementation is in 2D with a very simple visualization.

View Video 1 View Video 2 View Project

Google Cardboard AR Bone Visualization

REU 2016 - Lehigh University

Awarded Outstanding Project by Faculty Panel

Project completed as part of the Smart Spaces REU at Lehigh University in the summer of 2016. It is an augmented reality Google Cardboard application for Android to visualize the alignment of bone models from MRI and Ultrasound scans. This application was built on top of a library that we ended up making as a spin-off of this project (see below). The final goal of the application is to make it easier for orthopedic surgeons to visualize the bone they are operating on by augmenting a high quality 3D model obtained through an MRI and aligned to the patient in real time using Ultrasound.

View Video View Project

GAR Library

REU 2016 - Lehigh University

The GAR Library is an easy-to-use Java library for creating augmented reality Android applications for the Google Cardboard. This was created as part of a summer REU. The library currently has functionality for rendering the phone camera view and any augmented objects in stereo, single marker tracking, and tracking marker cubes.

View Project

Interactive 2D Mass/Spring Simulation

Personal Project

This is an interactive two-dimensional mass-spring system simulator written using OpenGL and GLUT. The user is able to add both fixed and dynamic masses to the system, and connect them with springs. As the simulation is running the user can interact with the dynamic masses in real time. The simulation uses Euler's Method for numerical integration and includes naive collision detection.

View Video View Project

3D N-body Simulation with WebGL

CSCE 470 Final Project

This was my final project for CSCE 470: Computer Graphics. It is a 3D gravitational N-body simulation written in JavaScript using WebGL, so it runs in any web browser that supports WebGL. Users can parameterize the simulation with a number of settings as well as interactively view the simulation as it takes place. A detailed decription of the controls to simulation as well as the implementation can be found in the writeup on GitHub.

View Simulation View Project

SPS Coding Seminars


For the last few years I've been teaching a weekly introductory course on programming concepts to members of the Society of Physics Students (SPS) at my university. To accomplish this I wrote a series of lessons teaching basic C++.

View Lessons