CS 5643 Assignment #2: Position-based Dynamics

Professor: Doug James
Due date: Friday Mar 28, 2014 (midnight)

In this second assignment, you will implement a particle system based on position based dynamics. 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 CMS), primarily to augment the
cs5643.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.
Software Dependencies:  The starter code will compile and run using JDK 1.5 or later. In addition to Java, the starter code also uses two other libraries that you need to install/get: 
Starter code tips:
Do I have to use the starter code? Can I program in C++? etc.: The starter code is provided to make your job easier, however you are not required to use it. Feel free to implement your assignment in any language or programming environment that you want (C++, processing, python, etc.). However you are still expected to implement the assignment steps listed below, and answer the questions. You may not use extensive libraries for particle systems or simulation since you are expected to implement the functionality from scratch (that's the point and the fun of it). However, please feel free to use any third-party graphics or 3D rendering software that you want.

Assignment Steps:
After you get the basic simulator working, you should try adding something unique to your submission:
Hand-in using CMS:
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 with.  (You are expected to maintain the utmost level of academic integrity in the course. Any violation of the code of academic integrity will be penalized severely.)