Comparisons
A companion to the main Awesome Collision Detection list, providing side-by-side comparisons for commonly used collision detection and proximity query libraries.
Last updated: May 2026. Feature data is summarized from project documentation and repository metadata.
Contents
Library Feature Matrix
| Name | Collision | Distance | CCD | Ray/Shape Cast | Language | License |
|---|---|---|---|---|---|---|
| Box2D | Yes | Yes | Yes | Yes | C | MIT |
| Bullet | Yes | Yes | Yes | Yes | C++, Python | Zlib |
| CCD-Wrapper | No | No | Yes | No | C++ | MIT |
| FCL | Yes | Yes | Yes | No | C++ | BSD-3-Clause |
| coal | Yes | Yes | Partial | No | C++, Python | BSD-3-Clause |
| libccd | Yes | No | No | No | C | BSD-3-Clause |
| MuJoCo | Yes | Yes | No | No | C++, Python | Apache-2.0 |
| ODE | Yes | Partial | No | Yes | C++, Python | LGPL-2.1 or BSD-3-Clause |
| OpenGJK | No | Yes | No | No | C++, C#, Go, MATLAB, Python | GPL-3.0 |
| Parry | Yes | Yes | Yes | Yes | Rust | Apache-2.0 |
| PhysX | Yes | Yes | Partial | Yes | C++ | BSD-3-Clause |
| python-fcl | Yes | Yes | Yes | No | Python, Cython | BSD-3-Clause |
| pytorch_volumetric | Partial | Yes | No | No | Python | MIT |
| ReactPhysics3d | Yes | Partial | No | Yes | C++ | Zlib |
| Tight-Inclusion | No | No | Yes | No | C++ | MIT |
Legend: Yes = directly supported by the library API; Partial = supported for selected shapes, backends, or workflows; No = not a primary feature.
Shape Support
| Name | Primitives | Convex | Mesh | Height Field | SDF / Volumetric |
|---|---|---|---|---|---|
| Box2D | Yes | 2D | No | No | No |
| Bullet | Yes | Yes | Yes | Yes | No |
| FCL / coal / python-fcl | Yes | Yes | Yes | Yes | No |
| libccd | No | Yes | No | No | No |
| MuJoCo | Yes | Yes | Yes | Yes | No |
| ODE | Yes | Yes | Yes | No | No |
| OpenGJK | No | Yes | No | No | No |
| Parry | Yes | Yes | Yes | Yes | No |
| PhysX | Yes | Yes | Yes | Yes | No |
| pytorch_volumetric | No | Partial | Yes | No | Yes |
| ReactPhysics3d | Yes | Yes | Yes | Yes | No |
Decision Guide
Which library should I use?
- General C++ collision and proximity queries: FCL, coal, or Bullet.
- Robotics with Python bindings: python-fcl, coal, or MuJoCo.
- 2D games and simulations: Box2D.
- Rust projects: Parry.
- Exact or conservative continuous collision detection research: Tight-Inclusion or CCD-Wrapper.
- Convex-only distance queries: OpenGJK or libccd.
- GPU or production physics engine integration: PhysX, Bullet, or MuJoCo.
- Signed distance fields and differentiable geometric queries: pytorch_volumetric.
Benchmark Resources
- Continuous Collision Detection - Project page for CCD papers, implementations, benchmarks, and datasets.
- CCD-Wrapper - Wrapper and benchmark for multiple CCD algorithms.
- spatial-collision-datastructures - Benchmark of spatial data structures for collision detection.
- Collision Detection Accelerated - Benchmark code for optimization-oriented collision detection.
- GJK++ / colbench - Benchmark suite for accelerated GJK variants.
Contributing
Contributions are very welcome! Please read the contribution guidelines first. Also, please feel free to report any error.
