Final Project for CS207 at Harvard by Robert Hoyt and Jody Schechter.