Fall 2006»CSCI 299 Homework 3

CSCI 299 Homework 3

Assigned Date: Tuesday, Oct. 10, 2006
Due Date: Tuesday, Oct. 24, 2006
Due Time: 11:55pm

Last modified on November 05, 2006, at 08:41 AM (see updates)


This assignment focuses on physical modeling, collision detection, avoidance, emergent behavior, and animation.


According to Mike Waite,

Flocking behavior modeling "has been widely used to simulate coordinated animal motion such as bird flocks and fish schools. Boids has been the basis for computer animated special effects in movies, as in the 1992 film Batman Returns, where bat swarms and flocks of penguins were simulated. One of the interesting aspects of the Boids model is that realistic looking flocking behavior emerges spontaneously as a result of rules acted out at the individual level without a "central command" coordinator or leader. It is widely accepted that real birds flock using an individual-based, decentralized behavior model as well."


Explore flocking behavior models and their visualization using VPython.


Here is a sample program (flock1.py) that simulates flocking behavior of boids (boid.py). Using this program as a starting point explore different models of emergent behavior. In this model, boids are guided by the following rules:

  • Rule 1: Boids try to fly towards the center of mass of neighboring boids
  • Rule 2: Boids try to keep a small distance away from other objects (including other boids)
  • Rule 3: Boids try to match velocity with near boids

Consider other possibilities such as:

  • Action of a strong wind or current
  • Tendency towards a particular place (e.g., mouse position)
  • Limiting the speed
  • Bounding the position
  • Perching
  • Scattering the flock
  • Tendency away from a particular place

Here are some other possibilities:

  • camfire behavior
    • boids are attracted by the fire
    • boids keep a distance from the fire
    • boids keep a distance from other boids
  • capture the flag game
    • boids are separated in two teams
    • boids try to capture opponent "flag"
    • boids try to defend own flag
  • chicks following mother
    • chicks separated from mother seek mother
    • chicks that find mother form a line behind her
    • chicks sometimes get lost

Another possibility is to have boids "discover" geometric shapes.

  • Boids are bounded in space (e.g., circle).
  • Boids keep a distance from other boids
  • Boids are pushed away from origin

There is an energy source at the origin (a wave, e.g., audio samples from a song). Boid movement is affected by available energy (e.g., multiply boid velocity vector with the audio sample at index equal to the distance of boid from origin).


  1. Craig Reynolds, "Boids - Background and Update", September 6, 2001.
  2. Mike Waite, "Flocking", April 24, 2006.
  3. Conrad Parker, "Boids", September 16, 2005.


Submit your model by editing your page using the provided template. Submit extra models for additional credit.

Michael Baker, Brian Cherry, Dennis Crenshaw, Lakeisha Dubose, Jeffrey Duke, Francesca Guzzi, Hector Mojica, Luca Pellicoro, Bryan Peterson, Patrick Roos, Matthew Roth, Alex Summer, and Bill Manaris.