#What We Have Accomplished In Project 2# * Semi-Implicit Integration * Adaptive Time Stepping * More Flexible User Interface * Pre-Generated Cloth Animations * Saving and Loading ##Semi-Implicit Integration## After some debugging, we discovered that the problem with our original implementation was a lack of clearing one of the force accumulator buffers used, as well as a memory leak in the matrix library that we are using. After fixing these bugs, semi-implicit worked as desired. We were uncertain as to which semi-implicit method to implement so we chose one with 2 implicit steps for the forces that depend on the velocities(damping forces, gravity) and explicit steps for forces that are dependent on position (spring forces). ##Adaptive Time Stepping## We added the ability to use adaptive time steping when generating cloth animations. We used the adaptive time stepping method of trying the time step as one large step then trying 2 smaller timesteps and comparing the results. The error was determined by the difference between taking one time step and taking two smaller time steps. If the error was larger than a predetermined threshold we did the step over again with a smaller time step and changed the adaptive step length. Adaptive time stepping can be used with any of the methods for generating cloth animation (explicit, implicit, or semi-implicit). When a cloth animation is generated using adaptive time stepping, information about the number of steps taken and the error found is printed in the terminal window that is running the GUI program. ##More Flexible User Interface## We added in the ability to generate a animation and play. The user can either play their animation back in real time or drag the time slider around to view whatever part of the animation they like. We also moved coltrol of all the relevant constants used in the particle system up into the user interface. This way users who are exploring cloth animations can change these constants and see the affects on their animation. ##Pre-Generated Cloth Animations## We completely re-engeneered part of our framework to deal with pre-generated cloth animation information at draw time. We also set up the ability to generate the cloth animation information from the users choices for the constants, using some of our old framework for the generation. When the user generates a new cloth animation, information about the generation's progress and the total time it takes to create the animation is displayed in the terminal window that is running the GUI program. ##Saving and Loading## Once we had the ability to pre-generate cloth animations we assured that the user could save and load these animations to/from files. We also created several example animations with larger cloth meshes in order to demonstrate different properties of the different different methods and the effects of the different constants.