Here's some cool stuff I've made

CSI Screenshot

Compiler Instrumentation Framework

Fall 2015, Spring 2016 · C++ · PDF · ACM Digital Library · Github

Writing race detectors is hard. Even using a framework such as Cilk, which drastically simplifies the algorithm for computing races, a significant amount of engineering still needs to be done as either binary or compiler instrumentation to capture memory reads and writes of tested programs. Other tools such as call-graph generators and code-coverage analyzers require similarly Herculean efforts. My senior thesis was to build a highly-performant LLVM/clang framework so that tool-writers can focus solely on writing their tool, and not compiler internals. It won the Outstanding Research Project Award and was published in SIGMETRICS.

polyshooter Screenshot

polyshooter

May 2015 · HTML5/Javascript · Github

2D HTML 5 Canvas game in which the player controls a circle and shoots polygons, attempting to stay alive as long as possible. I tossed this together over a few days in my spare time at home.

Screen Sharing Screenshot

Fault-Tolerant Screen-Sharing Distribution

May 2015 · Java · Github

6.824 Final Project. Collaboration with Anubhav Jain and Merry Mou

Modern screen-sharing applications fall into one of two patterns. One pattern is the broadcaster sending its screen to some distributer (e.g., Twitch or Azubu), which requires trusting that central authority. The other requires each client to open a connection to the broadcaster, a clearly non-scalable protocol that forces too much load onto the broadcaster's CPU and network and has no tolerance of network failures. This project solves the lack of fault tolerance and provides mechanisms for solving the performance issues as well.

Colosseum Screenshot

Colosseum

May 2014 · C#, XNA · Github · Youtube

Collaboration with Kevin Yue (game designer)

A three week challenge to make something awesome (two previous iterations took the first week; current iteration is about two weeks of work). No libraries besides the XNA framework. 2D 1v1 Platformer for Xbox 360 (playable on PC). 3 roles, each with 4 abilities, a dash, and a jump. Hitting an opponent removes their shield; hitting again before the shield recovers wins you the game.

Solitaire Splash Hack

Solitaire Hack Proof-of-Concept

Splash 2013 · C++, Cheat Engine · Github

Proof-of-concept for my Splash class on hacking PC games. Uses Windows API to read the memory of the solitaire process and displays the cards in each pile. The class taught students how to find the structure and addresses of the cards.

Techfair

Techfair Kinect App

Spring 2013 · C#, Kinect SDK · Github · Youtube

Created to advertise MIT techx. Initially, particles will spell out "techfair" (configurable for any font/string pair). Raising one hand will make all particles follow that hand; raising two hands will split the particles into two. Dropping both hands will cause the particles to rearrange to the spelling.