This site contains a concise but complete list and description of all the projects I have formed part of, be they personal or from work. Specifically, ones that are not reflected in my publications. I've added a list of class projects with less description at the end due to their limited impact.
I developed a PyTorch version of the ShapeWorks optimizer as a sandbox environment to easily try out new loss functions and approaches for shape modeling. Using PyTorch's autograd function helps with not having to write gradient functions, which saves a lot of time. Furthermore, writing new conceptual routines in Python is much faster than adding code to the massive ShapeWorks back end. This code is used as a sandbox to explore new ideas.
I work at Scientific Computing and Imaging Institute on the ShapeWorks project. ShapeWorks is a free, open-source suite of software tools that uses a flexible method for automated construction of compact statistical landmark-based shape models of ensembles of anatomical shapes that does not rely on any specific surface parameterization. The method requires very little preprocessing or parameter tuning, and is applicable to a wide range of shape analysis problems, including nonmanifold surfaces and objects of arbitrary topology. ShapeWorks includes tools for preprocessing data, computing landmark-based shape models, and visualizing the results.
In particular, I was in charge of implementing shape modeling for arbitrary regions of interest. This is a complex research problem with heavy development elements.
I worked on automating the pipeline for single particle cryo-electron microscopy grid screening using deep learning. We built a dataset with our collaborator and wrote Python Tkinter GUI to collect quality labels. Then we trained a quality assessment network to predict such labels for grid areas.
"Cryo-electron microscopy (cryo-EM) of single-particle specimens is used to determine the structure of proteins and macromolecular complexes without the need for crystals. Recent advances in detector technology and software algorithms now allow images of unprecedented quality to be recorded and structures to be determined at near-atomic resolution. However, compared with X-ray crystallography, cryo-EM is a young technique with distinct challenges." [Cheng 2016]
As a personal project, I built a automatic software to play the desktop version of the game CookieClicker. I used pynput to simulate clicks on the screen with set routines to play the game automatically. I also attempted to use CV2 template matching tools to recognize images, but it was too slow to work in real time.
FIFAMagic is a program I developed to transfer players in FIFA Ultimate Team 18 to make a steady profit. It uses Python's Selenium library to scrape web element information and Geckodriver for Firefox to interact with the website. At its height, it could make 100000+ coins a day, which could be sold at about $80 a week. I never sold any coins however, just used them to buy my favorite players.
I worked on a proprietary project for Exxon Mobile, which consisted of writing CUDA code to accelerate research code to enable the viability of modeling geological features.
We developed a program that probabilistically translates classical musical inputs into ragtime-like outputs. This was written in Java.
https://github.com/HeavenlyBerserker/MidiWriter.git
Back when VR was a novelty, I decided to create a VR lego building experience as my senior project. I used Google Sketchup to build the pieces. Then used Unity and C# to write the logic and connect it to the HTC Vibe.
https://github.com/HeavenlyBerserker/Lego-VR.git
I have experimented with 2D game development in Unity, Gamemaker and Adobe Flash. I am somewhat familiar with C#, GameMaker Language (GML) and the late ActionScript 2. Sadly, these projects were done in high school and since been lost.
CUDA Class: We developed a suite of CUDA programs to perform tasks like tiled matrix multiplication and Bag of Words implementation.
ML Class: Developed a suite of machine learning tools such as SVM, decision trees, and random forest.
NLP project: We used a simple suite of traditional NLP tools to solve a given Kaggle challenge for this class. Our implementation performed among the top of non-deep-learning approaches.
AI algorithm suite: We developed Dijstra's, A*, minimax algorithm and others.
Basic Ray Tracer: I developed a basic ray tracer in the graphics class.