CS 348C Assignment #2: Position-based Dynamics

Professor: Doug James
Due date: Tuesday, Nov 15, 2016 (midnight)  [Late deadline: 10% penalty by Friday, Nov 18, 2016]

In this second assignment, you will implement a particle system based on position-based dynamics based on [Macklin et al. 2016; Müller et al. 2006]. You system will support a similar position-level constraint-based relaxation approach to dynamic modeling. The core system should support cloth simulation, and you can extend it to add additional functionality of your choosing.

Groups: Work on your own, or in a group of at most two people. Additional work is expected from a group submission, such as a more elaborate creative artifact or modeled phenomena. PhD students are encouraged to work alone, and pursue a more challenging creative artifact. 

Starter Code: This project has starter code (available to registered students through Canvas), primarily to augment the cs348c.particles package to represent triangle meshes for cloth modeling,
loading of OBJ triangle meshes, and to support OpenGL rendering. Several triangle mesh examples are provided to help you get started. In this assignment, you will modify this package as needed. As in Assignment #1, use of the starter code is optional. The code does not depend on Assignment #1 at all, however you may use code from your previous assignment if you wish, e.g., code for fast neighbor finding.

Assignment Steps: The code provides some very basic functionality for a particle system, but does not implement any cloth constraints, or other collision detection, etc.
After you get the basic simulator working, you should try adding something unique to your submission:
Hand-in using Canvas:  
Start early. Ask questions. Have fun!!! 

On collaboration and academic integrity: You are allowed to collaborate on the assignments to the extent of formulating ideas as a group, and derivation of physical equations. However, you must conduct your programming and write up completely on your own (or with your partner), and understand what you are writing. Please also list the names of everyone that you discussed the assignment details with.  (You are expected to maintain the utmost level of academic integrity in the course.)