Duet (Independent) ¤ 2014 – Present
· Java ·

Train artificially intelligent dancers to your liking and place them in an environment where they can interact with each other in real time. The dancers dance to whatever beat you give them and can synchronize with music. They learn from each other based on the other dancers they are near and create something new based on what they see.
The movement engine and dancer model were developed from scratch utilizing Java’s Canvas3D. Further development using Unity3D is underway.

Message Debug Tool (UTC Aerospace Systems) ¤ 2016-2017
· Java · C/C++ · JNI · Google Protocol Buffers ·

A system event recording tool that guarantees playback in the original order of occurrence and timing. Provides an easy to use Java user interface for a C/C++ messaging system that utilizes Google Protocol Buffers. The Java Native Interface serves as a dynamic adapter between the languages. With a modular design, it requires little maintenance to adapt to a new messaging system.

Leaf Categorization (R.I.T. Computer Vision with Ramsey Opp) ¤ 2016
· Python · OpenCV ·

Implemented computer vision algorithms from an academic paper to classify the species of plant from an image of a leaf.  Among the techniques used were K-Means clustering, Support Vector Machines, Opening and Closing, Histogram of Curvature, and N-Nearest Neighbors.

Project Webpage:

Work based on: