CPSC 426 project

The project will allow you to build on one of the assignments, develop an idea of your own, or test your understanding of a particular piece of the class material. You may work in teams of two. The projects are due on the last day of classes (Fri Dec 2).

Suggested projects

Character skinning

Implement the linear-blending type of skinning discussed in class. You will face two difficulties: (1) finding a good pre-modelled character skin, and (2) assigning the weights to the skin. The simplest version of this is to take a cylinder that you then turn into a model of a finger by adding a skeleton with two or three underlying joints. You can procedurally generate the vertices and mesh for the cylinder, as well as developing a specific rule that is used to assign the weights. Add invisible bones as desired to avoid pinching effects. Talk to me if you're thinking of doing something more complex.

Inverse kinematics implementation

Implement and illustrate one of the inverse kinematics techniques discussed in the class.

Rigid body dynamics

Build on your results for Assignment 3 by implementing a more complex falling object and a more complex environment. For example, you could build a chair from a number of rectangular blocks and treat the chair as a single rigid object that you then throw into an environment that contains a variety of ramps. For more interesting simulations such as a block or a chair falling down a set of stairs you will also need to detect edge-edge intersections.

Visualizing rigid body physics

It would be nice to be able to directly visualize various quantities during a dynamical rigid body simulation. Thus during the animation, or even when the animation is paused, one would be able to see an illustration of the various vectors involved, i.e., P, V, omega, and perhaps the orientation represented in terms of an exponential map vector. Modify your assignment 3 code to see this result. Add as many other elements as you can that would make this an interesting visualization.

Cloth simulation

Use a coarse mass-spring-damper system with non-zero rest lengths to create a cloth simulation. Do not worry about collisions of the cloth with the environment or itself. You can suspend (and animate) the cloth by fixing the locations of specific particle masses in space.

Simulation of flocking behaviour

Create an animation of flocking birds or flocking fish by using the simple rules given for flock behavior. The birds and fish should steer away from obstacles as well as wanting to maintain a desired distance from neighbors. You can attempt to script the motion of the flock by controlling the motion of the leader. Develop a 3D environment that provides an interesting illustration of various behaviours.

Particle system fire simulation

Fire simulation is a prime application for particle simulation. Particles can change colour as a function of temperature, and the temperature can change as a function of time. Particles can grow (and thin out) over time due to diffusion. They can be pushed around by external velocity fields.

Orientation interpolation tutorial

In class we spoke about four different methods of representating object orientations. Implement a tool that illustrates how these four methods end up interpolating between different pairs of orientations. Print the current values of the current orientation representation on screen during the interpolation. Add other features and/or documentation that you think would help others understand the different representations.

Character animation using motion capture data

Using the supplied framework, implement a wandering behaviour for a character. Develop variations in the motion by changing the speed of the playback, blending between motions, and interpolating between motions. Add as many interesting features as you have time for.

Grading

You may choose to either:
(a) give a live demo to the instructor and answer questions, or
(b) provide a written report and movie.

You will be graded on the quality of your results, the difficulty of the project, and the creativity that went into your project. A 8% bonus will be given for providing an animated movie that illustrates your system in action, which we can then show to next year's class.


Last modified: Thu Nov 17 23:37:17 Pacific Standard Time 2005