Skip to main content
  1. Teaching/
  2. Su2023 CS 324E/

Assignment 4: Simulation
#

This project explores simulation and other rules-based systems. This project is intended to be open-ended, so that you have the opportunity to explore the aspects of simulation that interest you most. You may choose between three types of simulation to implement:

  • A particle system
  • A physics-based system
  • A rules-based system (e.g. cellular automata)

Basic Requirements
#

You will write the following pieces:

  1. A 2D or 3D scene (or scenes) drawn via Processing
  2. A simulation (or set of simulations) that covers at least one of the simulation concepts described above.
  3. A project report to detail overall design goals.

Your simulation must also have the following:

  1. At least one class to be simulated in the scene. Objects of this class will move according to the rules described below. The object must be beyond the scope of what’s shown in the class or discussed in the book.
  2. At least two rules or forces to guide object behavior. For example, you may use gravity, spring forces, flocking rules, etc.
  3. Unique visual appearance of the simulated objects. It should be something a little more exciting than just ellipses, rectangles, or other “basic” Processing shapes.

Extra Credit
#

All assignments have possible extensions that you might consider adding to your scene for extra credit. Note that if the submission is well beyond the scope of the assignment, we will consider giving extra credit even if the features implemented are not ones suggested below. All requirements of the assignment must be met before credit for this will be given.

Interactivity (up to 5 points)
#

Make the simulation in some way interactive. Users can generate objects or perhaps direct behaviors. Be sure to include an explanation of the controls in the README file to receive credit. To receive credit for this, your interaction should affect more than just the element the user directly interacts with.

For example, if you are doing BOIDS and letting the user manually move a bird-oid object, other members of the flock should follow it. For even more credit, have the bird being moved become a “leader” of sorts: highlight it in a different color and have it exert more influence than usual on the rest of the flock.

Animation Artifact (2 points)
#

Take shots of the simulation using the saveFrame() functionality. Convert these into a movie, which you include with your submission.

Getting Started
#

If you’re stuck on what sorts of things you can simulate, below are topics you might find interesting and engaging to work on:

  • Flocking behavior (Automata)
  • Galaxy Simulation (Particle)
  • Hair (Physics-based)
  • Notable extensions on any examples from class (ask the instructor beforehand)

Report
#

Your report should include the following information. You do not need to make the report long, as long as all the information below is included:

  • What the simulation is intended to depict
  • What classes you have designed and what they do
  • The rules of force (or interaction) acting in the simulation
  • How you drew the elements
  • Any unexpected challenges you faced along the way
  • Any extra credit you implemented

Submission
#

Your submission should include the following:

  1. A Processing file named youreid_project4.pde that runs the simulation.
  2. All the necessary classes and subclasses for the Processing file to run.
  3. A README text file that tells us the exact steps necessary to run the simulation(and how to control it, if you implemented extra credit). It should also state whether you’re using any slip days on the project.
  4. Any other files necessary to run your simulation (e.g. images, sounds, etc.)
  5. Animations from the simulation (if applicable)
  6. A project report as described above.
  7. If applicable, a language model log in plaintext format and a permalink to your LM log.

Place this all into a directory named youreid_project4, zip the directory, and submit it to Canvas.