EECS 487, winter 2007

Project 4:Animation

animated GIF


In this project you will implement parts of an animation system and use it to create several animations. First you will create a simple procedural animation of a bouncing ball (with squash and stretch) or an object moving along a spiral path (with slow in and out). Then you will implement two types of splines (interpolating and approximating) and use them for key frame animation. You will complete the provided interface for animating an articulated figure by posing it to match frames in a short movie clip. This permits a kind of "motion capture" (also known as rotoscoping), where you could act out a short motion sequence in your living room, record it with a digital camera in movie mode, and load it into the system to animate "blobby man" (the articulated figure we provide for you) with your own skillful dance moves.

Support Code

The project 4 support code is in the usual place on CAEN space: /afs/
Copy the whole directory to your work space as you did for the previous projects.

See the project 4 README.txt file for help compiling and running the project.

Importing your project 3 code

Using a key press command, you can switch between the "animate pen" used in this project and the "sketch pen" used in the last project. You can copy over your project 3 code (replace our sketch_pen.C) in order to sketch scenes with your sketch functionality, then animate them with the project 4 functionality. The "blobby man" articulated figure defined in blobby_man.C is implemented using the same hierarchy of nested transforms used in project 3 (via the NODE class).

Actually, there is a small difference: in project 4 we're using a subclass of NODE named LINK (defined in link.H). This is just a NODE with some extra data that lets you animate the node's transform over time. You can update your sketch code by including "link.H" instead of "node.H" in sketch_pen.H, and by changing a line in SketchPen::create_node() to create a new LINK instead of a new NODE. These changes have already been made in proj4/sketch_pen.[HC].

Overview of tasks

The following list outlines the tasks, which are explained in more detail below.

Tasks in detail

Procedural animation:

Spline implementation:
Keyframe animation:
Render an animation:

Handing in

Turn in your proj4 directory, including:
  • all your project 4 source files
  • a subdirectory, 'images', containing images you created (e.g. anything you posted on the phorum)
  • no model files or binary files please!
  • a brief write-up in text format that discusses:
    1. anything about your implementation that is noteworthy, and
    2. feedback on this assignment, including suggestions for how it should be changed next time.
Name your file writeup-<uniqname>.txt . Example: writeup-rmanoj.txt

Copy your files to the following directory on IFS:

This path is accessible from any machine you've logged into using your ITCS ( password. Report problems to ITCS.
  • The timestamp on your key files (source files and your writeup) will indicate the time of submission and if this is past the deadline your submission will be considered late. Therefore, you are allowed multiple 'submissions' as long as you respect the deadline.
  • Test the compilation: Your submission must compile without errors and warnings (except those from external libraries like OpenGL, JOT etc.) on CAEN Linux or Windows machines. Mention the platform in your writeup. Code that doesn't compile will be heavily penalized. (There is no need to compile on IFS; we will do the grading using the CAEN setup.)
Multiple submissions:
  • You are allowed to overwrite your files in the above directory as many times as you want.
  • If the timestamp on these files is past the deadline your submission will be considered late.
  • Test this submission procedure and please let the GSI know well in advance if you encounter and problems.

Due date

The project is due on March 29, 2007, by 11:59pm. Turning it in 48 hours early is worth a 4% bonus; turning it in 24 hours early is worth a 2% bonus.

Last updated: March 13, 2007.