CS599, Spring 2011, Assignment 2: Constrained Particle System
Due Wednesday Mar 9, 2011, by 11:59pm
Instructions
Please download the assignment writeup here.
You can use your OpenGL setup from Assignment 1 as a starting point.
Useful (free) software for solving linear systems (you are not bound to using any particular solver software, listed or not):
Some hints for solving linear systems in the assignment:
-
The system of equations in this assignment is symmetric, but not necessarily positive-definite. In some isolated configuration, the system matrix can be singular.
You can handle these singularities using singular value decomposition. See Chapter 14.4. Singular Value Decomposition in the GSL library, in particular,
the routines gsl_linalg_SV_decomp and gsl_linalg_SV_solve.
-
Note that the assignment requires the particles to stay in the xy plane, i.e., z=0 for all particles for all times.
Therefore, you may simplify your simulation by omitting all the z degrees of freedom.
-
Baraff and Witkin's course notes give an alternative system version, formed by conjugation of the mass matrix. You may use this version
in your assignment if you wish.
How to submit the assignment
Upload your entire solution as one zip file to the Blackboard.
Don't forget to include your README file,
the compiled executable (Windows or Mac, include all the required DLLs),
the animation frames, and
any other material required by the assignment writeup.
For the animation, use the same format as
with Assignment 1.
Please submit JPEG frames (assumed frame rate is 15 fps),
at the 640x480 resolution. Do not exceed 300 frames.
Example screenshots
Extra credit ideas
- Implement a time-varying random force field.
For example, you can use Perlin noise.
- Make a screen-saver (driven by the time-varying random force field).
- Implement a higher-order integrator, e.g., Runge-Kutta 4th order.
- Any creative extra credit contributions are encouraged.
Jernej Barbic, February 2011