Department of Computer Science
Worcester Polytechnic Institute

Course Title: Computer Animation
Course Number: CS 4732
Term D 2013

Meeting Info: Tue. & Fri. 10:00-11:50am, Salisbury Labs (SL), Room 411

Instructor: Prof. Robert W. Lindeman
E-Mail: gogo at
Telephone: x6712

TA: Jia Wang (wangjia at

Readings: There is one main book for this course, and you will summarize other readings over the course of the term.

Two other (optional) books will help those in need of a better understanding of (game) physics:

Reading is manditory, and working ahead is encouraged.

Course Objectives:

This course provides an in-depth examination of the algorithms, data structures, and techniques used to animate computer-generated objects. Rendering dynamic scenes involves imparting movement to produce a desired outcome, whether for scientific, medical, entertainment or other purposes. While artistic aspects of animation may be as important as technical aspetcs for some applications, this course focuses squarely on the technical aspects of computer animation. Other courses from the IMGD Program cover more of the artistic aspects of animation, and use common tools such as Maya. In this course, you will write all the movement code yourself, in order to better understand what is going on "under the hood" in such applications.

Topics include an overview of traditional animation, animation hardware and software, parametric blending techniques, modeling physical and articulated objects, forward and inverse kinematics, key-frame, procedural, and behavioral animation, and free-form deformation.

As opposed to using commercial animation packages, students will be expected to develop their own programs to implement low-level algorithms commonly found in these tools to design and produce small- to moderate-sized animations. Both individual and group projects will be included.

There are several objectives for this course:

Presupposed Background:


So, if you have not taken CS 4731 yet, PLEASE save yourself some pain, and take Computer Animation after you have taken Computer Graphics.

You will need to understand transformations (e.g., matrices, Euler angles), heierarchical modeling (e.g., scene graphs), and other graphics fundamentals.


20% Weekly Quizzes
20% Paper Summaries
30% Regular Projects (Proj. 0, Proj. 1, Proj. 2, Proj. 3)
30% Final Project

Weekly Quizzes:

A short quiz covering the assigned material from the text (PARENT) will be given each week. This is designed to make sure you are understanding the material from the text.

Quizzes will be given at the start of class every Tuesday.

Paper Summaries:

A list of seminal papers has been created for you to read each week. These papers support the topics covered in lecture, and are designed to augment the readings from the text book. In most cases, these are the original works that contributed a given approach to the animation community.

Summaries are due at midnight each Friday night. Of course, you can submit them early if you like. No late summaries will be accepted, so keep up!


The projects for this course consist of several programming assignments, designed to supplement the material covered in the lecture with practical experience. The projects are demanding, and will require a lot of time. On the flip side, most people enjoy these types of projects, and end up spending more time than they thought they would.

Working in pairs will be permitted on the final project. For all other projects each person should hand in his/her own work.

All of the projects must be done using C++/OpenGL or Java3D. You can use either your version of the rendering pipeline or the functions within OpenGL or Java3D. In particular, you will be implementing all of the motion-control code yourself, as opposed to using off-the-shelf tools, or libraries that provide functions for the movements you will be asked to create.

Instructions are provided with each assignment. Submissions must include instructions on compiling and running the program and should be well documented. Insufficient documentation will result in loss of points (as much as 25% of the assignment).

Each file should include a comment at the start giving your name, the assignment for which it is intended, and the most recent date in which the file was changed. I use these file and function (method) headers in my code. Please adopt these (or something similar) for all your projects. The file header should be used for both ".h" and ".cpp" (or ".java", etc.) files. Please, do NOT turn in hardcopies or executables! Any questions regarding the program may be sent to either the TA or me via e-mail, or you may stop by during our posted office hours.

You must produce a capture of your work (i.e., things moving around) as a movie file, and post it to YouTube. Include the URL for the YouTube movie along with your submission.

Discussion Boards:

There is a place on the WPI Game Development Club's forums for this course, and you are encouranged to post your questions there, and to look for answers there. We will be using this heavily during the course for clarifications, corrections, etc.

Late Policy:

It is extremely important to continue to make progress as the course progresses. If you forsee any problems with meeting deliverable deadlines, please see the instructor well in advance of the deadline that might be missed so we can attempt to work out alternate arrangements.

Late Paper Summaries will not be accepted.

Projects are due at the specified date and time.
Late projects will be penalized 10% for each 24-hour period after the due date/time. Whether a project is 3 hours or 20 hours late, it will be graded down by 10%. You will be given adequate time to complete each project, if you start when it is assigned. Projects will be turned in electronically, and the date/time received will be used to determine any late penalty. PLEASE do not miss class in order to finish up a project.


Attendance is required. If you have an unavoidable need to be absent from the lecture, you do not need special permission, but you are responsible for the work covered even if you are not in class.

Office Hours:

You do not need an appointment to come to office hours; just show up and take your turn. Office hours (the lecturer's and the TA's) are an important way for you to get help or to discuss anything you have on your mind. We are there to help you; that is an important part of our jobs. Please make good use of these hours. You are cheating yourself if you do not. The table at the bottom shows the times of the office hours.


Questions and discussion are highly encouraged throughout the lecture hours. The best way to reach the instructor is by using e-mail.

The Zoo Lab (FL-A22) can be used for this course, and development tools are installed there. You are also free to work on your own computer.

Class Conduct:

This course is intended for serious students. Participants will be expected to adhere to all rules of professional behavior.

In order to maintain a classroom environment conducive to effective learning, please refrain from the following activities during class: carrying on conversations (vocal or electronic), browsing the web, listening to music, playing games, eating (unless you brought enough to share with the whole class), or sleeping. Please set cell phones to silent mode. Your consideration for others would be greatly appreciated.

You are discouraged from using laptops/tablets/etc. in class, as these can distract others and yourself from the class. If you have a need to use a computer during class, please ask me first.

No cell-phone use of any kind will be tolerated during class.

Individual projects are expected to be done individually. As such, students are encouraged to discuss their work with each other, but are also expected to do the work by themselves.

Any breach of professional ethics as evidenced, for example, by copying exams or projects, downloading code from the Internet, cooperating in more than discussions and study groups, misusing computer resources, or using outside help of any kind, will be considered adequate reason for an NR in the course.

Group projects are designed so that every person gains a significant amount of new material. In the workplace, each team member is expected to contribute. Participants in group projects in this course should keep this in mind, and act accordingly. In evaluating each group, all team members will be asked to distribute a fixed set of "points" to the rest of their team, based on how much each member contributed.

It is to be emphasized that knowledge of material and professional behavior are tied together; failure in one of them negates any excellence in the other. Students who stay in the course past the first three days agree to adhere to the strictest rules of professional behavior.

The official WPI statements on Academic Integrity can be accessed at Those who have any doubt about what that means, and fail to gain that understanding after a discussion with the instructor, are encouraged to drop this class. Remember this warning - any breach of ethics will earn you an NR.

Course Schedule:

Meeting Date Lecture Topic Readings Slides/URLs Projects
1 03/12 (Tue) Course Logistics; Intro to traditional animation
PARENT: Chapters 1 & 2
Paper for week 1
ASSIGNED: Project 0: Hello, Animated Cube!
2 03/15 (Fri) Intro to computer animation
PARENT: Chapters 1 & 2
Paper for week 1
DUE: Project 0: Hello, Animated Cube!
ASSIGNED: Project 1: Follow My Spline!!
3 03/19 (Tue) Animating Position and Orientation PARENT: Section 3.1, Appendix B.5, Sections 3.2-3.5
Paper for week 2

4 03/22 (Fri) Animating Position and Orientation PARENT: Section 3.1, Appendix B.5, Sections 3.2-3.5
Paper for week 2

5 03/26 (Tue) Animating Shapes PARENT: Sections 4.1-4.6
Paper for week 3

DUE: Project 1: Follow My Spline!!
6 03/29 (Fri) Animating Shapes PARENT: Sections 4.1-4.6
Paper for week 3
Key Framing and Shape Animation
ASSIGNED: Project 2: Take a Walk on the Wild Side!!
7 04/02 (Tue) Forward Kinematics PARENT: Sections 5.1-5.3
Paper for week 4

8 04/05 (Fri) Inverse Kinematics; Physically Based Modeling PARENT: Sections 7.1-7.2
Paper for week 4
Physically Based Modelling
DUE: Project 2: Take a Walk on the Wild Side!!
9 04/09 (Tue) Behavioral Animation PARENT: Sections 7.4-7.7
Paper for week 5
Particles & Boids
ASSIGNED: Project 3: Boids of a Feather!!
10 04/12 (Fri) Behavioral Animation PARENT: Sections 7.3, 11.1-11.6
Paper for week 5
Acceleration Structures


DUE: Project 3: Boids of a Feather!!
11 04/19 (Fri) Animating Articulated Objects PARENT: Chapter 9
Paper for week 6

Articulated Humans
ASSIGNED: Final Project: It Is What You Make It!!
12 04/23 (Tue) Animating Articulated Objects PARENT: Chapter 9
Paper for week 6

13 04/26 (Fri) Animating Articulated Objects; Faces PARENT: Chapters 9 & 10
Paper for week 7

14 04/30 (Tue) Faces; Final Project Presentations PARENT: Chapters 10
Paper for week 7

DUE: Final Project: It Is What You Make It!!

Schedule for Office Hours:

All TA office hours will be held in FL-A22 (the Zoo lab).
Prof. Lindeman's office hours will be in his office in FL-B24a.
Please feel free to contact either the TA or Instructor to meet outside of these hours!

Time Monday Tuesday Wednesday Thursday Friday

CS 4732

CS 4732




TA Office Hours
FL-A22 (Zoo Lab)

TA Office Hours
FL-A22 (Zoo Lab)







Main Web Resources