BU CAS CS 580

Advanced Computer Graphics

Fall 1997

Programming Assignment 3

Due before 11:00AM on Tuesday, October 21

In this assignment you will learn about spring- and constraint-based animation methods. You will develop an interactive stick figure animation tool that employs springs, nails, and distance constraints.


The Code You Write

Use the Lagrange multiplier approach as was described in class and the readings. Rather than hand-coding the system for one special case, your program should manage general lists of springs, nails, and distance constraints. In principle it should be possible to build and animate arbitrary "tinkertoy" structures with your program. However, for this assignment, it is sufficient fo read a model in from a file.

We talked about sparse matrices in class, but you will not need to use them for this assigment. Instead, you can use basic matrix and vector manipulations. Source code for matrix manipulation is available: matrix.c, matrix.h, mtest.c.

Your program need not model collision or contact.

Your program should include at least the following functionality:

Optional Part

For extra credit, extend your system to include point on curve constraints.

What You Turn In

Create an HTML document "p3.html" that describes your project. In the first part of the report, write a paragraph that describes how your program works. Also include equations for the constraints employed along with a brief description of their implementation.

Demonstrate your system by building a human stick figure. Include a picture of your model. Include a movie file showing an interactive simulation in which the user pulls on the model with a spring. Gravity and drag forces must be enabled in your simulation.

Finally, include your source files, program executable, and Makefile. Please be sure to tell me what computer platform (e.g., PC, SGI) your tool runs on.

Submit your complete HTML document, separate source files, and images using the submit program on CGL.

The report you write should be clear and to the point. The code you submit should be well-structured and clearly documented. For hints on good style, see the CS480 coding guidelines.


Page Created: Oct 5,1997 Last Modified: Oct 5,1997 Maintained by: Stan Sclaroff