Overview
CRISP is a physics engine for contact-rich robotic assembly. It uses expressive collision geometries and robust contact solvers to simulate multibody dynamics with frictional contact. We provide a prebuilt C++ library, headers, and two examples with the assets required to run them.
For a detailed description of CRISP's design, collision handling, and contact solvers, see the CRISP paper. Related method papers are listed under Publications.
Assembly scenarios
Both models use a Franka arm with a Robotiq 2F-85 gripper.
| Model | Sequence | Contact solver |
|---|---|---|
| Peg insertion | Grasp and lift a round peg, then insert it into a hole. | CANAL |
| Gear assembly | Place a gear on its shaft, release and grasp it again, then turn it in both directions. | SubADMM |
Get started
Use Installation to build and run the examples. See Examples for their sequences, collision representations, solver settings, and viewer controls.
Guides
- Model construction: bodies, joints, collision geometry, and actuators
- Contact solvers: CANAL, SubADMM, and numerical settings
- Using CRISP: C++ model construction, stepping, and control
- API reference: operations, ownership, state access, and callbacks
- Release notes: feature updates and breaking changes by version
See Publications for the related papers. CRISP is available for academic and non-commercial research under the CRISP license; third-party assets retain their own terms.