EECS 487, Fall 2005


Project 4:Animation

animated GIF

Overview


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 provided support code is an extension of the support code used in project 3. We will continue to use the jot library as before. Jot has been updated for project 4, so you will need the latest source files if you are not using "jot central" on CAEN space (see "handing in" below). The latest source files are available through CVS. Click here for details on getting jot by CVS and compiling it.

You are free to modify any of the project 4 source files (e.g. to incorporate your own project 3 functionality), and should turn them all in, along with your Makefile. However, you only need to modify a few files, which are clearly identified below.

Copy the project support code to your local machine using one of the following commands:
Remote session for Linux/Unix/SunOS/MacOS users:
  % scp -r red.engin.umich.edu:/afs/engin.umich.edu/class/perm/eecs487/proj4 .

OR

  % rsync -av -e ssh red.engin.umich.edu:/afs/engin.umich.edu/class/perm/eecs487/proj4 .

Windows users can use set up an sftp session to red.engin.umich.edu and grab the files from the above path or, on (CAEN) machines with AFS mount, copy the files from:
    K:\perm\eecs487\proj4

After you compile the program, run it with the -p option, which runs the example procedural animations mentioned below. You should also use the key command 'H' to see a list of all the key commands. Then check p4.C for more details about important key commands you will need for this project.

One key command lets you 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), and so be able 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 difference: in project 4 we're using a subclass of NODE named LINK (see below). 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 simply changing a line in SketchPen::create_node(). Change:

   NODEptr node = new NODE(new LMESH, name);

to:

   NODEptr node = new LINK(new LMESH, name);


Project Components

Procedural animation:   30 points
Spline implementation:     25 points
Keyframe animation:    25 points
Render an animation:    15 points
Write-up:     5 points

Building and running the code:

Edit the provided Makefile to define the path to your jot directory. [On Windows, you must use a DOS prompt, and you must first run the setup.bat script in your jot directory.] Then you should be able to compile the program, as follows:
  % cd proj4
% make
This results in an executable named p4 which takes model files as command-line arguments. Before running the executable, be sure to define the JOT_ROOT environment variable to specify the path to your root jot directory. E.g.:

    csh or tcsh> setenv JOT_ROOT /afs/engin.umich.edu/class/f05/eecs487/jot
    bash> export JOT_ROOT=/afs/engin.umich.edu/class/f05/eecs487/jot
  DOS> set JOT_ROOT=K:\f05\eecs487\jot

See the phorum post on setting these variables automatically each time you start a shell to avoid having to type these in each time. For windows users, this variable is set as part of the setup.bat file that is in the jot directory.

Handing in

Copy all your project source files (no object files or binaries), your Makefile, your write-up (named writeup.txt), and copies of any animated GIFs you posted to the phorum, to :

    /afs/engin.umich.edu/class/f05/eecs487/submit/<your-uniqname>/p4/     [Linux users]
       K:\f05\eecs487\submit\<your-uniqname>\p4                                                    [Windows users]

Note: put your files directly into the p4 directory specified above -- do not put them inside a separate sub-directory. Do not submit object files or executables. Do submit the animated GIF that you posted on the phorum. If you also made any animations in other formats we are happy to see them.


For submission from a remote, non-CAEN machine you can scp or sftp your files to the respective paths on red.engin.umich.edu


    Bottom line: typing make on the command line should compile without errors and link to the central JOT installation in

        /afs/engin.umich.edu/class/perm/eecs487/jot
                OR
     K:\perm\eecs487\jot

       
Modify your Makefile accordingly before submission!
        Test the compilation when you submit!



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 November 28, 2005, by 11:59pm. We are not  offering an early bonus this time, because Thanksgiving break is just before the due date.


Last updated: November 13, 2005.