Selected code, ranging from research-based applications to fun side projects.


Here is a brief outline of some selected programs and applications I have worked on over the last few years. Source code for each of these projects can be found on my Github profile:


flock is a cross-platform mobile application for the visualization of Swarthmore’s campus population. It consists of a client-server model for reporting location data and grouping said data with various clustering algorithms, including DBSCAN and Mean-shift. The client can be run on both the Android and iOS mobile operating systems and leverages the Google Maps API for powerful mapping abstractions.

flock screenshot


markiavelli is a Reddit bot that generates random posts using Markov chains. markiavelli can be trained on subreddit comments in addition to text files. It then posts generated text to a provided subreddit at given intervals. Below are some example posts that were generated after training on Machiavelli’s The Prince and The Discourses on Livy in addition to comments from r/politics and r/changemyview :

That’s why actual democracy is 1 person, 1 vote, and therefore is useless.

A government that cannot be overthrown, is a government that is unable to pay a premium in exchange for land.

He’s a savior and I can even decide how I feel. I can’t accept that it’s only because you meet older women….

I’d say they’re more qualified than the physical world. This is where you meant the internet.


pokebot is a lightweight PhantomJS program that responds to any pokes within a given time interval.


quart is a python project that generates computer art using concepts related to a quadtree data structure. quart takes an image as input and then recursively splits the image into four quadrants, filling each quadrant with its average color.

quart image output


relax is a novel model making use of Markov chain Monte Carlo methods to forecast the results of an upcoming lacrosse match based on team statistics from previous games in a season. It is evident that this model presents very promising results as it correctly predicts the outcome of 70.0% of all games from the 2014 NCAA Division 1 season.


spine is a cross-platform framework for mHealth application development. It provides a command-line utility built using the Cordova and Yeoman frameworks and allows a user with limited technical skills to create basic mHealth applications by simply defining a JSON object. spine contains generating, packaging, and build systems for developing cross-platform HTML5 web-applications that can then be compiled into native mobile applications. Using spine, developers can support a number of mobile operating systems, including iOS, Android, and Windows Phone 8, using only HTML5, CSS, and JavaScript. Instead of rewriting code, researchers can compile their single codebase into several different native mobile applications, allowing for simpler mHealth application development.

Checkout a video demonstration of building a spine application and presentation slides from a tech talk.