Intersection-free Rigid Body Dynamics
1New York University, 2University of California, Los Angeles, 3University of Pennsylvania, 4University of Victoria, 5Adobe Research
ACM Transactions on Graphics (SIGGRAPH), 2021
Rigid IPC

Expanding Lock Box. An intricate locking mechanism designed for 3D printing can be directly simulated with our algorithm. As the "key" turns, the central spiral is rotated which in turn pulls in each of the five locking pins. When all pins have been retracted the bottom is able to freely fall. Our algorithm's intersection-free guarantee enables the automatic testing of designs without the need to tune simulation parameters. ©Angus Deveson.


Paper (PDF) Low res (PDF)


We introduce the first implicit time-stepping algorithm for rigid body dynamics, with contact and friction, that guarantees intersection-free configurations at every time step.

Our algorithm explicitly models the curved trajectories traced by rigid bodies in both collision detection and response. For collision detection, we propose a conservative narrow phase collision detection algorithm for curved trajectories, which reduces the problem to a sequence of linear CCD queries with minimal separation. For time integration and contact response, we extend the recently proposed incremental potential contact framework to reduced coordinates and rigid body dynamics.

We introduce a benchmark for rigid body simulation and show that our approach, while less efficient than alternatives, can robustly handle a wide array of complex scenes, which cannot be simulated with competing methods, without requiring per-scene parameter tuning.


Video (MP4, 54.8 MB)

Video (MP4, 54.8 MB)

Source Code and Data



Mechanisms. We demonstrate the robustness of our method on various mechanisms with tight conforming contact. Top: a piston is attached to a rotating disk and a static cylinder is used to constrain the motion of the piston. Middle: A wheel with complex geometry rotates smoothly, but results in intermittent motion on the connected wheel. Bottom: a bike chain is attached to a kinematic sprocket. Each link is modeled using a realistic joint consisting of a roller, pin, and two plates. ©Okan (bike chain) and Hampus Andersson (sprocket) under CC BY.

Bolt. A bolt spins inside a static nut under gravity. Without friction, the bolt is quickly able to follow the threading and begins to rotate. This is a challenging scene for many rigid body simulators due to the tight sliding contacts on an extended curved area. ©YSoft be3D under CC BY-SA 3.0.

Anchor. A heavy anchor attached to a chain briefly falls under gravity before being lifted by rolling the chain around an axle. Natural bunching and kinking behaviors are visible. ©Animation Anchor Line (anchor) under TurboSquid 3D Model License.

    title     = {Intersection-free Rigid Body Dynamics},
    author    = {Zachary Ferguson and Minchen Li and Teseo Schneider and Francisca Gil-Ureta and Timothy Langlois and Chenfanfu Jiang and Denis Zorin and Danny M. Kaufman and Daniele Panozzo},
    year      = 2021,
    journal   = {ACM Transactions on Graphics (SIGGRAPH)},
    volume    = 40,
    number    = 4,
    articleno = 183