freecloth. home.


Freecloth is a free, open-source cloth simulation tool. It is intended to help with further research in cloth simulation, and to help in production of feature films or games using cloth. In its initial form, the simulation has been implemented using algorithms described in Baraff & Witkin's "Large Steps in Cloth Simulation" paper. As development advances, it should hopefully incorporate newer techniques for collision detection and other features. It will hopefully match or exceed the capabilities of commercial cloth simulations like Alias | Wavefront's "Maya Cloth" or Kelseus Cloth for 3dsmax.

Freecloth is not yet ready for regular users. It's still under development, and does not have a polished user interface, or plugins for popular modeling software packages. At present, there's just a library and a small demonstration application. It is unlikely that I will have the time to implement a plugin for 3dsmax or Maya. If you are interested in hiring me to write such a plugin, please contact me. My e-mail is drpritch [at] (replace [at] with the @ sign).

This cloth simulator uses techniques that are more advanced than most comparable free packages. Most simple simulators use explicit integration, which is easy to implement and fairly fast for small pieces of cloth. Freecloth uses implicit integration, which is harder to implement but gives much better results for large pieces of cloth. For explicit techniques to work with large pieces of cloth, stretch forces have to be greatly reduced, and the cloth will look "rubbery," bouncing and stretching in unrealistic ways. The implicit technique used by Freecloth allows detailed animation of cloth without excessive stretch. If you look at the figure shown above, the checks on the cloth are all basically squares: not stretched or distorted in any way. This is typical of a good cloth simulation algorithm.

Freecloth is written in C++. The library has no external dependencies, but the demonstration application requires OpenGL, GLUT and GLUI. It has been compiled on Linux (gcc 2.95 and gcc 3.2) and under Windows (Visual C++ 6.0), and it should be straightforward to port to other operating systems, provided that a reasonably conformant C++ compiler is available. Solid C++ engineering techniques have been applied to create a fairly robust and modern application.

Last updated 2003.04.23.