Created: September 29th, 2014



We chose to write a pseudocode for basketball because sports in general has a high level of entropy, indeterminacy, and movement. We originally thought of embodying soccer, but the sport is too difficult to embody in an algorithm due to the large space that the game is played on and the roughness of the terrain. So instead, we settled on basketball, which required less space and had more defined boundaries. Creating a pseudocode would work well with basketball because even in a game, players tend to chose random actions that end up causing all the players to move around the court and create a sequence of movements that can never be repeated again, much like in a generative emergence algorithm.



What we basically did was run this algorithm 4 different times, choosing different actions for each person via a random number generator in each time. With this algorithm, we had an intended outcome in that the entire group would be participating in various basketball actions and moving around the court. However, there are still many aspects of the final outcome that cannot be predicted. Even though we had full knowledge of the workings of the algorithm, there were still several movements in the video that were not planned for in the algorithm. This reflects generative emergence in that even though we knew everything about the system in which we were working, new and unexpected events still arise. An example is how in some of the videos, there were instances when 3 people would start moving together as a group, or when all 4 members would be clustered in the same spot. Additionally, there was a case when a member had two specific actions (3 and 5) for when they did not have the ball, they would move in the same path back and forth, without any divergence from that point (at least till they got the ball again). We certainly did not expect that to occur from the pseudo-code. In a way, this is similar to the bugs that crop up in games (called easter eggs). These are usually some events or glitches that the game programmers did not intend to produce, but were a happy accident.  Likewise, when creating movement forms, or any art forms that are meant to be emergent, having such surprises actually makes the final outcome much more thought-provoking.


Generate 2 random numbers. Keep generating until you have 2 different numbers in
each case.

Follow the actions (described below) associated with your numbers whenever you
have and don’t have the ball. In each scenario, cycle back and forth through the
2 different actions you have.

Start time = 0 seconds

If you have the ball:
    1 - Shoot the ball, grab it again, and pass to the nearest person
    2 - Dribble the ball in the same spot for 5 seconds, and then pass it to a
    random person
    3 - Instantly pass the ball to the nearest person
    4 -  Dribble the ball horizontally towards the nearest sideline of the court
    and then pass to the nearest person
    5 - Walk while holding the ball (without dribbling) towards the center of the
    court and then pass to a random person

If you don’t have the ball:
    1 - Move in a straight line forward until the sidelines are reached
           Turn right 135 degrees
           Move in a straight line
    2 - Move towards closest person
           Wait 10 seconds
           Move on to next action
    3 - Move towards farthest hoop
    4 - Move towards center of court
    5 - Move towards nearest sideline of the court 

End time = 90 seconds
Click to Expand

Click the links below to watch our simulations:

Video 1

Video 2

Video 3

Video 4