CS 467 - Assignment Six

Due: 2020-04-23 05:00p


  • Implement some steering behaviors
  • Explore a complex system
  • Exercise your creative muscles


  1. Accept the assignment on our Github Classroom.
  2. Download the git repository to your local computer.


After a very linear assignment, it is time to stretch your creative muscles again.

Part of the assignment will be fairly straightforward. I would like you start with the simple steering example we did as a practical and add some additional steering behaviors to it. Use the reading in Nature of Code and the Reynold's paper to get inspiration about possible behaviors to add. At least one of these must be a group behavior (maintain group cohesion, maintain personal space, etc...). The piece should also have many agents, so the group behavior can manifest.

Remember that knowing how to perform an action doesn't mean that an agent performs it all of the time. There needs to be stimuli in the environment to activate different behaviors. Also not all agents need to respond identically, nor do they all have to belong to the same group, nor do they all need to have the same core set of desires.

Okay, that is the technical side. On the creative side, I want you to do a piece with the theme 'Social distancing'. You can take that in any direction you like (though a pure implementation of a collection of circles that wander and but don't bump into each other would be a bit boring).

While you should start with our simplistic drawings of agents when you are figuring out the behaviors, try to get creative with what they look like. Make different ones. Maybe make an uber-agent, that is made up of smaller cooperating agents. Maybe don't even show the agent at all -- draw inspiration from assignment 4 and show trails or interactions, or something else.

Make it personal. Use your sketchbook to try out ideas.


  • Implement three additional behaviors (you are also welcome to retain seek and flee)
  • One behavior must be a group related behavior
  • At least some agents should have multiple desires active simultaneously
  • There should be multiple agents active simultaneously
  • The piece must engage with the theme of "Social Distancing" (include a README that describes your thoughts about how the piece reflects the theme)
  • Sophisticated Add "bin-lattice spatial subdivision" or quadtrees to manage the computational complexity of the group behavior(s)

Finishing up

Commit your changes to git and push them back up to GitHub. I will find them there.