Assignment 4: Keyframing and Simulation

In this assignment, you will implement two techniques for computer animation: keyframe animation of articulated characters, and physics-based simulation of mass-spring systems. Use the code provided at https://git.iitd.ac.in/col781-2302/a4 to display the computed animation.

There are three required tasks and three optional tasks. Students working in pairs are required to do all three required tasks and at least one of the three optional tasks. For students working in pairs, the optional tasks are not necessary but can give up to 10% extra marks.

  1. Design an articulated character composed of several bones connected with hinge joints. Attach one or more fixed meshes to each bone, each of which is translated rigidly by the bone’s transformation. Animate the character’s motion by keyframing the hinge angles.

  2. Implement a mass-spring system for simulating a single sheet of cloth. To do this, you will create a collection of particles in a grid layout, connected to nearby particles with springs. Also add a gravity force acting on all the particles, and allow some particles to be labeled as “fixed” in space so that they never move. Perform time stepping using the semi-implicit Euler scheme.

  3. Modify your simulation to handle collisions of particles with moving obstacles. You may use discrete collision detection, i.e. you only need to check for collisions at the end of the time step. Also, you only need to test the particles of the mass-spring system; you are not required to handle the case where an edge or face of the cloth is intersecting the obstacle but all particles are outside.

  4. Extra optional task: Put all three parts of the assignment together by draping a cloth on top of a keyframed character!

Submission

Submit your assignment on Moodle before midnight on the due date. Your submission should be a zip file that contains your entire source code for the assignment, not including any binary object files or executables. The zip file should also contain a PDF report that includes:

  1. one or more representative frames of each of the demonstration animations,
  2. discussion of any implementation choices or unusual features of your program,
  3. explanation of any required components you could not implement, and what problems you faced in doing them.

You should also record videos of your demonstration animations, as mentioned on Moodle. These are likely to be too big to upload to the Moodle assignment submission system, so please upload them somewhere else (like the institute’s Owncloud or Sharepoint, Google Drive, or even YouTube), make them world-readable, and include links to them in the PDF report.

Separately, each of you working in groups will individually submit a short response in a separate form regarding how much you and your groupmate(s) contributed to the work in this assignment.