The resulting cloth simulation was written from scratch in C++, and includes a mass spring model for the cloth, external forces, three different integration schemes including a fully implicit one, some basic collision detection and a tearing algorithm. I implemented my own version of a half edge structure to aid with tearing the mesh, resulting in a tearing algorithm with linear complexity. I added a user interface built using Qt and OpenGL.
As a part of the assignment, we had to make a video showing what our project could do. Have a look: