Gravity is an X11 particle sandbox written in C for my final project in Fundamentals of Computing I. After compiling, execute the Gravity binary and controls will be printed on the screen. Gravity uses the gfx libraries written by R. Bualuan with his permission, which are included in the src folder, along with the program code.

To compile, simply make in the repository root directory.


  • Left lick to reset
  • Right click for a bigger reset
  • Type s for a different dot syle
  • Type r for a different color scheme
  • Type a to increase acceleration
  • Type z to decrease acceleration
  • Type “.” to pause
  • Type q to quit

Additionally, there are four different patterns that the program can simulate

  • Type e for a flow pattern
  • Type f for a fade pattern
  • Type g for a gravity pattern
  • Type p for a pulse pattern


Gravity pattern


Flow pattern


Pulse pattern



Link to Github repository



By Benedict Becker & Thomas Franceschi


Networked tank game using the pygame and twisted python libraries.


To start a game, first make sure the SERVER variable in game/ is set to the address of the computer the first player will be using. Whoever will be hosting the game then runs python and once the game window appears the other player can run python from their computer to begin the game. The server player controls the tank on the left side and the client player controls the tank on the right side. Each tank has a health bar that indicates their remaining health (out of 1000). To move, you press the a and d buttons to move left and right respectively. To fire missile, you aim your mouse at the angle you wish to fire and left-click to fire. When missiles hit the opposing tank, they inflict 50 damage. When missiles hit the ground, they destroy a large chunk that is now traversable (Try digging a tunnel). Wind and gravity both affect the trajectory of the missiles and there is a wind indicator arrow in the upper right hand corner. When a player loses all of their health, the game will end and each player’s screen will display whether they won or lost, as well as a prompt to press q to quit or r to restart (only the server has the ability to start a new match).

A Note on Movement

As of right now, the tanks will always be able to move left or right. Even if there is a wall blocking its path, it will suddenly jump to the next highest ground. We left it this way because the highly interactive (destructive) environment would make for a lot of stuck tanks if we didn’t include this movement workaround.

A Note on Background

We also had created a shifting parallax background to this game, but unfortunately could not speed it up to the point of not slowing the rest of the game down. While not included in this version, the code can still be found in


  • Fast online gameplay
  • Cool tank and explosion graphics (from Google Images)
  • Randomly generated map, new every time
  • Random wind condition to change the gameplay
  • Destructive map
  • Realistic gravity for bullets
  • Health bars
  • 8bit music and violent (loud) sound effects


There are many constants that affect the networking and gameplay, and can be edited in the game/ file


  • numpy
  • pygame
  • twisted

Link to Github Repository

Stock Sentiment

Stock Sentiment

A Python-based web app designed to give portfolio managers up-to-the minute information about the news articles that affect their holdings. Uses IBM Watson to calculate the sentiment of articles and quickly and accurately displays the information to users using a simple color schema.

Created for the 2017 BlackRock Intern Hackathon

To Run:

In a Mac or Linux environment, run ./ in the root directory. In Windows, run path/to/python in the root directory.


  • watson-developer-cloud
  • pandas
  • requests
  • bs4
  • sqlite3
  • Flask

Note: You may have to use a separate Watson Bluemix account to use the Watson API. The app will function without one, since a sample database is included. However, you will not be able to load newer articles



Link to Github Repository