CS 324E Assignment 4


Assignment 4: 2D Animation



Project Description

This project explores the use of object-oriented programming in graphics, as well as scene hierarchies to perform transformations for 2D animation. To do this, students will create an animation withing Processing that will loop indefinitely. This animation is expected to be complex enough to require multiple objects (and therefore multiple classes) and have several levels of scene/shape transformations in order to create a range of interesting, cohesive movements.

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 the final animation that incorporates these objects.

Basic Requirements

Your group will implement functionality for:
  1. A 2D scene that is drawn via Processing within the sketch group_yourgroupnumber_assignment4.pde (or .pyde)
  2. Multiple objects that are continously animated in this scene. These animations do not need to loop seamlessly. For example, an animated object might jump from the last position back to the first postion, but this is acceptable as long as the animation continues.
  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 for animating objects in the scene. This class must have at least two levels of hierarchical grouping to allow for at least two distinct forms of animation that use any of the following transformations: translate, rotate, scale. To use my example, Flower objects fall along a sinusoidal curve, while the Flower's subgroup, petals, rotate the petals around the flower's origin.
  2. At least two objects expressing this class (or subclass if you're using inheritance) to be animated in different ways. These objects might have different values in their fields, for example, or be transformed in ways to make their appearence somewhat unique from each other.
  3. 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.

Sound (1 point)

Include sound to accompany the animation.

Getting Started

To get started, your group will first decide on the animated scene 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.

Progress Report

This progress report, titled group_yourgroupnumber_a4_progress.pdf, will include the team's plan for, and current progress on, the animation. The progress report should state the team's intended animation addressing artistic questions such as what is the "story" of the sequence? What are the objects being animated within this sequence? How long is the sequence expected to go? Note that "story" does not mean the animation must have a fictional narrative. For example, if you were to animate a protein docking sequence, that would be the animation's "story."

The report will break down what code needs to be created and by whom. Please include the following information:

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

Project Submission

You will submit the following in the folder group_yourgroupnumber_assignment4:

  1. A Processing file group_yourgroupnumber_assignment4.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 your animation
  4. A project description text file, assignment4_description.txt, that summarizes what the intended animation was, 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: 09/24/21 by Sarah Abraham theshark@cs.utexas.edu