CS010 Introduction to Computer Science I
Term Project Overview

Swarm and Flocking Behavior
(last updated 4/19/2006)

In this project, you will develop an integrated system in Scheme that simulates and displays the movement of a community of critters.  The ultimate goal will be to model a flock of sheep and one or more sheep-dogs that herd the sheep.

Swarm models and animation have featured prominently in a number of movies such as Finding Nemo, Matrix: Revolutions, and the newer Star Wars, just to name a few.  Swarming intelligence has also played a role in a developing field of emergent systems.  The basic idea is that complex and unexpected behaviors may arise from the interactions between a population of simple and identical critters.  Several links are included below with extensive information and further links.

We will start with modeling a simple flying insect and gradually add complexity until we have sheep and sheep-dogs interacting.  The project is divided into five parts, each one equally valued.  Because each project deliverable builds on the previous ones, and because you cannot make up for a shoddy deliverable 1 with a stellar final deliverable, it is important that you gear up for this from the start.  You have already started thinking about this on question 4 from the recent second exam.

Project 1: Basic Infrastructure: Drawing and moving swarms
Project 2: Building Blocks: Neighbors and iterative refinement
Project 3: Swarming 1: Edge avoidance and encapsulation
Project 4: Swarming 2: Classes and objects, and critters of different types

Other Links
Papers on Swarms or Flocking:
Flocks, Herds, and Schools: A Distributed Behavioral Model, by Craig W. Reynolds
Steering Behaviors for Autonomous Characters, by Craig W. Reynolds