jslee02 / Awesome Collision Detection
Licence: cc0-1.0
😎 A curated list of awesome collision detection libraries and resources
Stars: ✭ 444
Projects that are alternatives of or similar to Awesome Collision Detection
LockstepCollision
A deterministic collision lib for lockstep
Stars: ✭ 51 (-88.51%)
Mutual labels: collision, collision-detection
Spatial Collision Datastructures
Benchmark of various spatial data structures for collision detection.
Stars: ✭ 96 (-78.38%)
Mutual labels: collision-detection, collision
DAABBCC
Dynamic AABB Tree native extension with Branch and Bound Algorithm for Defold Engine
Stars: ✭ 42 (-90.54%)
Mutual labels: collision, collision-detection
intersection-wasm
Mesh-Mesh and Triangle-Triangle Intersection tests based on the algorithm by Tomas Akenine-Möller
Stars: ✭ 17 (-96.17%)
Mutual labels: collision, collision-detection
SmartTrafficIntersection
Another AI toy project, of a traffic intersection controlled by a Reinforcement Learning AI agent to optimize traffic flow in an intersection of vehicles or pedestrians
Stars: ✭ 30 (-93.24%)
Mutual labels: collision, collision-detection
Reactphysics3d
Open source C++ physics engine library in 3D
Stars: ✭ 730 (+64.41%)
Mutual labels: collision-detection, collision
collision2d
A simple Go library for performing 2D collision detection based on sat-js
Stars: ✭ 64 (-85.59%)
Mutual labels: collision, collision-detection
Cute headers
Collection of cross-platform one-file C/C++ libraries with no dependencies, primarily used for games
Stars: ✭ 3,274 (+637.39%)
Mutual labels: collision-detection, collision
TriangleMeshDistance
Header only, single file, simple and efficient C++11 library to compute the signed distance function (SDF) to a triangle mesh
Stars: ✭ 55 (-87.61%)
Mutual labels: collision-detection
Dyn4j
Java Collision Detection and Physics Engine
Stars: ✭ 317 (-28.6%)
Mutual labels: collision-detection
Intersects
a simple collection of 2d collision/intersects functions. Supports points, circles, ellipses, lines, axis-aligned boxes, and polygons
Stars: ✭ 270 (-39.19%)
Mutual labels: collision
unity-animated-convexhull
Realtime fast convexhull generator for Unity
Stars: ✭ 40 (-90.99%)
Mutual labels: collision-detection
ComputeShaderBVHMeshHit
Unity ComputeShader implementation of BVH(Bounding Volume Hierarchy) based mesh hit checking.
Stars: ✭ 25 (-94.37%)
Mutual labels: collision-detection
triangle-mesh-collision
Self-collision detection for triangles meshes (C++, libigl, eigen)
Stars: ✭ 35 (-92.12%)
Mutual labels: collision-detection
Rl
The Robotics Library (RL) is a self-contained C++ library for rigid body kinematics and dynamics, motion planning, and control.
Stars: ✭ 391 (-11.94%)
Mutual labels: collision-detection
Awesome Collision Detection
A curated list of collision detection open resources
Table of Contents
Libraries
Active
⚠️ The following table is not complete. Please feel free to report if you find something incorrect or missing.
Name | Shapes | Features | Languages | Licenses | Code | Popularity |
---|---|---|---|---|---|---|
BEPUphysics 1 | (todo) | (todo) | C#, .NET | Apache v2 | github | |
Bullet | (todo) | (todo) | C++, Python | Zlib | github | |
collision-rs | (todo) | (todo) | Rust | Apache-2.0 | github | |
FCL | (todo) | (todo) | C++ | BSD-3-Clause | github | |
JitterPhysics | (todo) | (todo) | C#, .NET | MIT | github | |
libccd | (todo) | (todo) | C | BSD-3-Clause | github | |
ncollide | (todo) | (todo) | Rust | BSD-3-Clause | github | |
ODE | (todo) | (todo) | C++, Python | LGPL-2.1 or BSD-3-Clause | bitbucket | |
ReactPhysics3d | (todo) | (todo) | C++ | Zlib | github | |
tinyc2 | (todo) | 2d | C/C++ | Zlib | github | |
qu3e | (todo) | (todo) | C++ | Zlib | github |
Some libraries (e.g., ODE and Bullet) are physics engines that contain collision detection features, but they can be used just as collision detection libraries.
Inactive
- ColDet - 3D Collision Detection.
- GIMPACT - Tools for geometry processing and collision detection.
- OPCODE - Optimized Collision Detection.
- OZCollide [github]
- SOLID - Collision detection of 3D objects undergoing rigid motion and deformation.
Mesh Processing
- bounding-mesh (github ) - Implementation of the bounding mesh and bounding convex decomposition algorithms for single-sided mesh approximation.
- cinolib (github ) - A generic programming header only C++ library for processing polygonal and polyhedral meshes.
- libigl (github ) - A simple C++ geometry processing library.
Papers
Triangle-triangle Test
- A faster triangle-to-triangle intersection test algorithm (2013), L.-Y. Wei.
- Efficient triangle-triangle intersection test for OBB-based collision detection (2009), J.-W. Chang et al. [pdf]
- A fast triangle to triangle intersection test for collision detection (2006), O. Tropp et al. [pdf, code]
- A failure case was reported in Stack Overflow.
- Faster Triangle-Triangle Intersection Tests (2006), O. Devillers et al. [pdf, code]
- A Fast Triangle-Triangle Intersecion Test (1997), T. Muller. [pdf, code]
Mesh Collision
- Robust contact generation for robot simulation with unstructured meshes (2013), K. Hauser. [pdf, web]
Penetration Depth Computation
- PolyDepth: Real-time Penetration Depth Computation using Iterative Contact-Space Projection (2012), C. Je et al. [pdf]
Proximity Query / Signed Distance Field
- Hierarchical hp-Adaptive Signed Distance Fields (2016), D. Koschier et al. [pdf, video]
- Voxblox: Building 3d signed distance fields for planning (2016), H Oleynikova et al. [pdf, code]
- Signed distance fields for polygon soup meshes (2014), H. Xu and Jernej Barbic. [pdf]
- Fast Proximity Queries with Swept Sphere Volumes (1999), E. Larsen et al. [pdf, web]
Continuous Collision Detection
- Hierarchical and Controlled Advancement for Continuous Collision Detection of Rigid and Articulated Models (2013), M. Tang et al. [pdf, web]
- Efficient Geometrically Exact Continuous Collision Detection (2012), T. Brochu et al. [pdf, video]
- C2A: Controlled Conservative Advancement for Continuous Collision Detection of Polygonal Models (2009), M. Tang et al. [pdf]
- Continuous Collision Detection for Articulated Models using Taylor Models and Temporal Culling (2007), X. Zhang et al. [pdf, web]
- Interactive continuous collision detection for non-convex polyhedra (2006), X. Zhang et al. [pdf, web]
Nearest Neighbor
- Faster cover tree (2015), M. Izbicki et al. [pdf, code]
- Fast Approximate Nearest Neighbors with Automatic Algorithm Configuration (2009), M. Muja and D. Lowe. [pdf, code]
- Cover Tree for Nearest Neighbor (2006), A. Beygelzimer et al. [pdf, web, code]
Comprehensive Collision Detection Library
- FCL: A General Purpose Library for Collision and Proximity Queries (2012), J. Pan et al. [pdf, code]
Survey
- Collision Detection: A Survey (2007), S. Kockara et al. [pdf]
- 3D collision detection: a survey (2001), P. Jiménez et al. [pdf]
Books
- Real-Time Collision Detection, CRC Press 2004 (amazon)
- Collision Detection in Interactive 3D Environments, CRC Press 2003 (amazon)
Articles
Overview & Tutorial
- Video Game Physics Tutorial - Part II: Collision Detection for Solid Objects by Nilson Souto
- GPU Rigid Body Simulation (GDC 2013), Erwin Coumans
- OpenCL accelerated rigid body and collision detection (RSS 2011), Erwin Coumans
- Contact Generation (GDC 2010), Erwin Coumans
Benchmark
- spatial-collision-datastructures - Benchmark of various spatial data structures for collision detection.
Narrow-phase
- Algorithm table for narrowphase algorithms
- 3D Collision detection by Miguel Casillas
- Collision Detection (code) by Jeff Thompson - This book explains the algorithms behind those collisions using basic shapes like circles, rectangles, and lines so you can implement them into your own projects.
- Note: The Gibert-Jonson-Keerthi algorithm by Christer Ericson
Space Partitioning
- Benchmark of various spatial data structures for collision detection
- Bounding volume heirarchy
- Bounding Volume Hierarchy Optimization through Agglomerative Treelet Restructuring (paper, code) by Leonardo R. Domingues and Helio Pedrini.
- Dynamic AABB Tree by Randy Gaul
- Efficient BVH Construction via Approximate Agglomerative Clustering by Yan Gu et al. (pdf)
- Octree vs BVH by Thomas Diewald
Other Awesome Lists
- Awesome Robotics Libraries - This is a list of various libraris and software for robotics. It's also attempting to provide some comparisons for selected libraries and software.
Contributing
Contributions are very welcome! Please read the contribution guidelines first. Also, please feel free to report any error.
License
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].