May 2015 - Java - Github
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.
November, December 2014 - Python - Github
Game Theory Final Project. Collaboration with Predrag Gruevski and Rumen Hristov
Created a computer game from the board game with all cards and rules in-tact. Designed and tested AIs for the game to study dominant strategies and nash equilibria in the game.
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 classes, 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.
Proof-of-concept for my Splash class on hacking PC games. Uses Windows API to read the memory of the solitaire program and displays the cards in each pile. The class taught students how to find the structure and addresses of the cards.
Created to advertise MIT Techfair. 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.