Computer Graphics

University of California - Berkeley

ARCSim: Adaptive Refining and Coarsening Simulator

Back to Code


ArcSim is a simulation engine for animating sheets of deformable materials such as cloth, paper, plastic, and metal. It uses adaptively refined triangle meshes to efficiently resolve the geometric and dynamic detail of the simulated objects.

Our adaptive anisotropic remeshing framework aligns mesh edges with features such as wrinkles and creases, allowing fine details to be resolved efficiently. By anticipating buckling and wrinkle formation, our technique preserves fine-scale dynamic behavior. A physics-aware projection step allows highly stiff materials such as paper and metal to be remeshed without temporal artifacts. (Dynamic remeshing may be disabled to allow working with fixed meshes.)

The simulator also includes an efficient implementation of strain limiting as a nonlinear optimization problem. This formulation works for arbitrary non-uniform and anisotropic meshes, and converges much more rapidly than existing solvers based on Jacobi or Gauss-Seidel iterations.

The code supports bending plasticity with weakening, allowing plastic deformation in sheets such as crumpled paper, dented metal, and wrinkled cloth to be realistically simulated. The rest shape of the sheet is represented explicitly in a plastic embedding space, accurately preserving sharp creases even under extensive remeshing.

Version 0.3.1 of the code also supports dynamic fracturing and tearing of thin sheets. Adaptive remeshing refines the crack paths, enabling highly resolved fracture geometry without too much overhead in other parts of the simulation domain.

If you do not need the fracture component, we recommend using version 0.2.1 as it is generally faster and the codebase is simpler.

This code is made publicly available for non-profit use under the condition that any publication cite the following two papers. See the included license file for additional details.

  • Rahul Narain, Armin Samii, and James F. O'Brien. "Adaptive Anisotropic Remeshing for Cloth Simulation". ACM Transactions on Graphics, 31(6):147:1–10, November 2012. Proceedings of ACM SIGGRAPH Asia 2012, Singapore.
  • Rahul Narain, Tobias Pfaff, and James F. O'Brien. "Folding and Crumpling Adaptive Sheets". ACM Transactions on Graphics, 32(4):51:1–8, July 2013. Proceedings of ACM SIGGRAPH 2013, Anaheim.
  • Tobias Pfaff, Rahul Narain, Juan Miguel de Joya, and James F. O'Brien. "Adaptive Tearing and Cracking of Thin Sheets". ACM Transactions on Graphics, 33(4):110:1–9, July 2014. Proceedings of ACM SIGGRAPH 2014, Vancouver.

This distribution includes the cloth material database of data-driven elastic models for cloth acquired by Huamin Wang, Ravi Ramamoorthi, and James O'Brien, as well as character motion data acquired by Victor Zordan and Nick Van Der Horst. It uses code from the SELF-CCD library by Min Tang and Dinesh Manocha for efficient collision detection.

Related Papers


ARCSim v0.3.1


Fracturing project codebase. C++, with a Makefile for Linux and Mac OS X.

ARCSim v0.2.1


Folding project codebase. C++, with a Makefile for Linux and Mac OS X.

ARCSim v0.2.1 (contributed Windows port)

Includes project files for Visual Studio 2008. Contributed by Min Tang.