Note: I haven’t updated this in a couple years! I will be doing my best to update it soon.
My friend Roshan and I made a cool pipeline which takes in a Wikipedia article and automatically generates questions about the article. We use multiple pre-trained transformer models for initial question generation, topical modelling, grammar evaluation, etc. You can check out the code here!
My most recent project is an investigation into Boolean circuits. Not only is this model of computation exceedingly easy to reason about and work with, but it can be harnessed to help prove some of the most essential theorems and tackle some of the biggest questions in theoretical computer science. For the final project of 15-251, I wrote a paper investigating and showcasing some of the central proofs related to Boolean circuits. I also came up with a few interesting exercises! You can view the document here.
Graphs are one of the most essential data structures in computer science, and can be found in tons of applications in the real world, from search engines to GPS navigation to recommender systems. One fun application of graphs is that by generating trees (a type of graph that fulfills certain requirements), we can create mazes. By the nature of trees, these mazes we generate only have a single solution! Using Python and a simple graphics library, I was able to quickly implement a maze generator:
As we increase the number of vertices in our tree, we increase the size of the maze. In a matter of minutes, we can create mind-bogglingly large mazes!
For the final project of 21-241, Matrices and Linear Transformations, my partner and I decided to investigate the area of numerical linear algebra, specifically building iterative methods to compute eigenvectors and singular vectors. From scratch using the Julia language, we implemented the Power, Inverse Power, and QR methods to efficiently and accurately generate eigenvalues and eigenvectors. Specifically, I worked on:
You can find the final paper and Julia code here.
For three years, I worked with the Slutzky Neuroprosthetics Laboratory to develop software used as a part of the neurorehabilitation process for stroke survivors today. This software returns biofeedback to stroke victims, whose muscles are connected to EMG signal sensors, in order to train these people regain motor function. This intelligent biofeedback system allows users to basically play a game by flexing and relaxing the muscles in their arms, and by doing so trains users to use their muscles again for daily activities.
Over the course of my time at the Slutzky Neuroprosthetics Laboratory, I rewrote their biofeedback system which used Pygame almost completely from scratch to:
The preliminary version of the MINT system was written about in the New York Post! You can see the article here.
March 17th is a project that mixes some web technologies with literature, providing a new (and in my opinion pretty cool!) take on the classic murder mystery. This story takes readers through the night of March 17th and the murderous Entright family, leading them through a series of riddles to reach the end. I thought the digital format would let March 17th transform the murder mystery from a retrospective, passively read narrative to an actively engaging, conclusion-driven experience – instead of reading about a detective figuring out the crime, the reader figures out the crime themselves.
You can find the story here and the walkthrough here.
Over the course of multiple years, the Midwest Cardiovascular Research Foundation (MCRF) worked to develop a predictive model to predict iliac vein compression syndrome using non-invasive studies and clinical variables (i.e. age, weight), as opposed to the current gold standard intravascular ultrasound, an invasive surgery. Working with the foundation, I helped develop this model and build a mobile application using Apache Cordova so that researchers can quickly and easily use this model on real patients in practice. You can find the app on the Google Play Store here. You can find the publication on the model here.
PiMafia is a client-server structured network and software that allows its users to play a game of Mafia with each other. It can be run between devices on any Local Area Network (LAN). You can find a full write-up on the project here. Also, the GitHub page for the project can be found here.