CS 324E Assignment 6


Assignment 6: Simulation



Project Description

This project explores simulation and other rules-based systems. This project is intended to be open-ended, so that students have the opportunity to explore the aspects of simulation that interest them most. Therefore groups can choose between three types of simulation to implement: a particle system, a physics-based system, or a rules-based system (like cellular automata). Each student in the group will be responsible for at least one object's class design and implementation. The group is responsible for designing and implementing a final simulation (or collection of simulations) that incorporates these objects and systems.

Basic Requirements

Your group will implement functionality for:
  1. A 2D or 3D scene (or scenes) that is drawn via Processing within the sketch group_yourgroupnumber_assignment5.pde (or .pyde).
  2. A simulation (or set of simulations) that covers at least one of the simulation concepts discussed in class: particle systems, physics-based systems, or rules-based systems.
  3. A mid-project progress report to detail overall animation goals and the individual group members' contributions.

Each team member will be responsible for the functionality of:

  1. At least one class to be simulated in the scene. Objects of this class will move according to the simulation principles listed below. This object must be beyond the scope of the examples shown in class or discussed in the book.
  2. At least two rules or forces to guide object behavior. These rules or forces do not need to be unique to the individual student's simulated object class, but they do need to be applied in a way appropriate to the particular object. For example, all three students in the group might use gravity as one of their forces, and two might use spring forces, but the spring forces might represent different behaviors in different objects (e.g. a rope swinging versus a baton spinning).
  3. The unique visual appearance of the simulated objects. They should be something a little more exciting than just ellipses, rectangles or other "basic" Processing shapes.
  4. This class's design documentation to be written up and included in the weekly milestone progress report.

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 (0.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.

Animation Artifact (0.25 points)

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

Getting Started

To get started, your group will first decide on the simulation you wish to portray. You will then decide on a project structure to break this scene into multiple classes, so that teammembers can work on them individually. This information will be written up and submitted as a progress report due mid-project.

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

  1. Flocking behavior (CA)
  2. Galaxy (Particle)
  3. Hair (Physics-based)
  4. Notable extensions on any examples from class (check with the professor beforehand)

Progress Report

This progress report, titled group_yourgroupnumber_a6_progress.pdf, will include the team's plan for, and current progress on, the simulation(s). The progress report should state the team's intended simulation, addressing what techniques the simulation will require, any interactive functionality the program might have, and what the expected behavior of each team member's contributions will be.

The report will also break down the "computer science" considerations surrounding the classes and code structure. This will address the questions, what classes are necessary to create the simulation? What methods and fields will these classes require? How much progress has been made on implementing these classes?

Finally the report will state which group member is working on which classes and objects. It will also outline the plan for integrating these separate pieces for the final submission.

One report will be submitted via Canvas for the entire team.

Project Submission

You will submit the following in the folder group_yourgroupnumber_assignment6:

  1. A Processing file group_yourgroupnumber_assignment6.pde (or .pyde)
  2. All necessary classes and subclasses this Processing file requires to run
  3. A README text file that tells us how to run and potentially control your simulation
  4. Any additional media files necessary for the project
  5. An animation (or animations) made from the simulation program if you wish to receive extra credit
  6. A project description text file, assignment6_description.txt, that summarizes what the intended simulation depicts, what the included classes do, and any unexpected challenges. That is, this is mostly a rehash of the progress report but from the position of what you accomplished rather than what you were planning. Also document which group member worked on which part of the assignment. While group coding is allowed, each member is responsible for their individual parts -- this ensures all group members are participating and have mastery of the assignment.

Zip this folder and submit via Canvas.


Last modified: 01/04/17 by Sarah Abraham theshark@cs.utexas.edu