{"id":13532519,"url":"https://github.com/jslee02/awesome-collision-detection","last_synced_at":"2025-05-16T18:09:43.393Z","repository":{"id":8671768,"uuid":"59176406","full_name":"jslee02/awesome-collision-detection","owner":"jslee02","description":":sunglasses: A curated list of awesome collision detection libraries and resources","archived":false,"fork":false,"pushed_at":"2023-09-30T01:40:27.000Z","size":56,"stargazers_count":928,"open_issues_count":6,"forks_count":86,"subscribers_count":43,"default_branch":"master","last_synced_at":"2025-05-07T01:01:50.004Z","etag":null,"topics":["awesome-list","collision","collision-detection"],"latest_commit_sha":null,"homepage":"http://jslee02.github.io/awesome-collision-detection/","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jslee02.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-05-19T05:29:05.000Z","updated_at":"2025-05-05T17:28:13.000Z","dependencies_parsed_at":"2023-09-30T04:09:19.891Z","dependency_job_id":null,"html_url":"https://github.com/jslee02/awesome-collision-detection","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jslee02%2Fawesome-collision-detection","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jslee02%2Fawesome-collision-detection/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jslee02%2Fawesome-collision-detection/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jslee02%2Fawesome-collision-detection/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jslee02","download_url":"https://codeload.github.com/jslee02/awesome-collision-detection/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254582907,"owners_count":22095518,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["awesome-list","collision","collision-detection"],"created_at":"2024-08-01T07:01:11.575Z","updated_at":"2025-05-16T18:09:43.372Z","avatar_url":"https://github.com/jslee02.png","language":null,"funding_links":[],"categories":["Awesome-Game","Related Lists","Others","Other Lists","Awesome","[Other Awesome Lists](#awesome-robotics-libraries)","[Relevant Awesome Lists](#contents)"],"sub_categories":["Engineering in Organization","TeX Lists","[ETC](#awesome-robotics-libraries)","11. Cloth Simulation"],"readme":"# Awesome Collision Detection\n\nA curated list of collision detection open resources\n\n#### Table of Contents\n* [Libraries](#libraries)\n* [Papers](#papers)\n* [Books](#books)\n* [Articles](#articles)\n* [Other Awesome Lists](#other-awesome-lists)\n* [Contributing](#contributing)\n\n## [Libraries](#awesome-collision-detection)\n\n**Active**\n\n\u003e :warning: The following table is not complete. Please feel free to report if you find something incorrect or missing.\n\n| Name | Shapes | Features | Languages | Licenses | Code | Popularity |\n|:----:| ------ | -------- | --------- | -------- | ---- | ---------- |\n| [BEPUphysics 1](http://www.bepuphysics.com/) | (todo) | (todo) | C#, .NET | Apache v2 | [github](https://github.com/bepu/bepuphysics1) | ![BEPUphysics 1](https://img.shields.io/github/stars/bepu/bepuphysics1.svg?style=social\u0026label=Star\u0026maxAge=2592000) |\n| [Bullet](http://bulletphysics.org) | (todo) | (todo) | C++, Python | Zlib | [github](https://github.com/bulletphysics/bullet3) | ![bullet3](https://img.shields.io/github/stars/bulletphysics/bullet3.svg?style=social\u0026label=Star\u0026maxAge=2592000) |\n| collision-rs | (todo) | (todo) | Rust | Apache-2.0 | [github](https://github.com/rustgd/collision-rs) | ![rustgd/collision-rs](https://img.shields.io/github/stars/rustgd/collision-rs.svg?style=social\u0026label=Star\u0026maxAge=2592000) |\n| [FCL](https://github.com/flexible-collision-library/fcl) | (todo) | (todo) | C++ | BSD-3-Clause | [github](https://github.com/flexible-collision-library/fcl) | ![fcl](https://img.shields.io/github/stars/flexible-collision-library/fcl.svg?style=social\u0026label=Star\u0026maxAge=2592000) |\n| [HPP-FCL](https://github.com/humanoid-path-planner/hpp-fcl) | Box\u003cbr/\u003eSphere\u003cbr/\u003eCylinder\u003cbr/\u003eCapsule\u003cbr/\u003eEllipsoid\u003cbr/\u003eCone\u003cbr/\u003eMeshes\u003cbr/\u003eConvex Meshes\u003cbr/\u003eHeight Field | Collision \u003cbr/\u003e Distance \u003cbr/\u003e Security Margins | C++, Python | BSD-3-Clause | [github](https://github.com/humanoid-path-planner/hpp-fcl) | ![fcl](https://img.shields.io/github/stars/humanoid-path-planner/hpp-fcl.svg?style=social\u0026label=Star\u0026maxAge=2592000) |\n| [JitterPhysics](https://github.com/mattleibow/jitterphysics) | (todo) | (todo) | C#, .NET | MIT | [github](https://github.com/mattleibow/jitterphysics) | ![JitterPhysics](https://img.shields.io/github/stars/mattleibow/jitterphysics.svg?style=social\u0026label=Star\u0026maxAge=2592000) |\n| [libccd](https://github.com/danfis/libccd) | (todo) | (todo) | C | BSD-3-Clause | [github](https://github.com/danfis/libccd) | ![libccd](https://img.shields.io/github/stars/danfis/libccd.svg?style=social\u0026label=Star\u0026maxAge=2592000) |\n| [ncollide](http://ncollide.org/) | (todo) | (todo) | Rust | BSD-3-Clause | [github](https://github.com/sebcrozet/ncollide) | ![sebcrozet/ncollide](https://img.shields.io/github/stars/sebcrozet/ncollide.svg?style=social\u0026label=Star\u0026maxAge=2592000) |\n| [ODE](http://www.ode.org/) | Sphere\u003cbr/\u003eBox\u003cbr/\u003eCylinder\u003cbr/\u003eCapsule\u003cbr/\u003ePlane\u003cbr/\u003eRay\u003cbr/\u003eTriangular-mesh | (todo) | C++, [Python](http://pyode.sourceforge.net/) | LGPL-2.1 or BSD-3-Clause | [bitbucket](https://bitbucket.org/odedevs/ode) | |\n| [OpenGJK](https://www.mattiamontanari.com/opengjk/) | (todo) | (todo) | C++, C#, Go, Matlab, Python, Unity | GPL-3.0 | [github](https://github.com/MattiaMontanari/openGJK) | ![MattiaMontanari/openGJK](https://img.shields.io/github/stars/MattiaMontanari/openGJK.svg?style=social\u0026label=Star\u0026maxAge=2592000) |\n| [Parry](https://github.com/dimforge/parry) | (todo) | (todo) | Rust | Apache-2.0 | [github](https://github.com/dimforge/parry) | ![dimforge/parry](https://img.shields.io/github/stars/dimforge/parry.svg?style=social\u0026label=Star\u0026maxAge=2592000) |\n| [ReactPhysics3d](http://www.reactphysics3d.com/) | (todo) | (todo) | C++ | Zlib | [github](https://github.com/DanielChappuis/reactphysics3d) | ![reactphysics3d](https://img.shields.io/github/stars/DanielChappuis/reactphysics3d.svg?style=social\u0026label=Star\u0026maxAge=2592000) |\n| tinyc2 | (todo) | 2d | C/C++ | Zlib | [github](https://github.com/RandyGaul/tinyheaders) | ![RandyGaul/tinyheaders](https://img.shields.io/github/stars/RandyGaul/tinyheaders.svg?style=social\u0026label=Star\u0026maxAge=2592000) |\n| qu3e | (todo) | (todo) | C++ | Zlib | [github](https://github.com/RandyGaul/qu3e) | ![qu3e](https://img.shields.io/github/stars/RandyGaul/qu3e.svg?style=social\u0026label=Star\u0026maxAge=2592000) |\n\n\u003e 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.\n\n**Inactive**\n\n* [ColDet](https://sourceforge.net/projects/coldet/) - 3D Collision Detection.\n* [GIMPACT](http://gimpact.sourceforge.net/) - Tools for geometry processing and collision detection.\n* [OPCODE](http://www.codercorner.com/Opcode.htm) - Optimized Collision Detection.\n* OZCollide [[github](https://github.com/jslee02/OZCollide)]\n* [SOLID](http://solid.sourceforge.net/) - Collision detection of 3D objects undergoing rigid motion and deformation.\n\n### Mesh Processing\n\n* [bounding-mesh](http://www.boundingmesh.com/) ([github](https://github.com/gaschler/bounding-mesh) ![bounding-mesh](https://img.shields.io/github/stars/gaschler/bounding-mesh.svg?style=social\u0026label=Star\u0026maxAge=2592000)) - Implementation of the bounding mesh and bounding convex decomposition algorithms for single-sided mesh approximation.\n* cinolib ([github](https://github.com/mlivesu/cinolib) ![mlivesu/cinolib](https://img.shields.io/github/stars/mlivesu/cinolib.svg?style=social\u0026label=Star\u0026maxAge=2592000)) - A generic programming header only C++ library for processing polygonal and polyhedral meshes.\n* [libigl](https://libigl.github.io/) ([github](https://github.com/libigl/libigl) ![libigl/libigl](https://img.shields.io/github/stars/libigl/libigl.svg?style=social\u0026label=Star\u0026maxAge=2592000)) - A simple C++ geometry processing library.\n\n## [Papers](#awesome-collision-detection)\n\n#### Collision Detection and Distance Computation\n\n* GJK++: Leveraging Acceleration Methods for Faster Collision Detection (2023), Montaut et al. [[pdf](https://hal.science/hal-04070039v1/document), [code](https://github.com/humanoid-path-planner/hpp-fcl), [benchmarks](https://github.com/lmontaut/colbench)]\n* Collision Detection Accelerated: An Optimization Perspective (2022), Montaut et al. [[pdf](https://hal.archives-ouvertes.fr/hal-03662157/document), [code](https://github.com/humanoid-path-planner/hpp-fcl), [benchmarks](https://github.com/lmontaut/collision-detection-benchmark)]\n* A fast procedure for computing the distance between complex objects in three-dimensional space (1988) Gilbert, Johnson and Keerthi [[pdf](https://graphics.stanford.edu/courses/cs448b-00-winter/papers/gilbert.pdf)]\n\n#### Differentiable Collision Detection\n\n* Differentiable Collision Detection: a Randomized Smoothing Approach (2022), Montaut et al. [[pdf](https://hal.archives-ouvertes.fr/hal-03780482v2/document), [code](https://github.com/humanoid-path-planner/hpp-fcl)]\n\n#### Triangle-triangle Test\n\n* A faster triangle-to-triangle intersection test algorithm (2013), L.-Y. Wei.\n* Efficient triangle-triangle intersection test for OBB-based collision detection (2009), J.-W. Chang et al. [[pdf](http://ldc.usb.ve/~vtheok/cursos/ci6322/escogidos/Efficient%20triangle%E2%80%93triangleintersectiontestforOBB.pdf)]\n* A fast triangle to triangle intersection test for collision detection (2006), O. Tropp et al. [[pdf](http://webee.technion.ac.il/~ayellet/Ps/TroppTalShimshoni.pdf), [code](http://webee.technion.ac.il/labs/cgm/Computer-Graphics-Multimedia/Software/TriangleIntersection/code.cpp)]\n  * A failure case was reported in [Stack Overflow](http://stackoverflow.com/a/29563443/3122234).\n* Faster Triangle-Triangle Intersection Tests (2006), O. Devillers et al. [[pdf](https://hal.inria.fr/inria-00072100/document), [code](https://github.com/CGAL/cgal/blob/076c982dbf37cc244206fd7962e73360fb17ea47/Intersections_3/include/CGAL/Triangle_3_Triangle_3_do_intersect.h)]\n* A Fast Triangle-Triangle Intersecion Test (1997), T. Muller. [[pdf](http://web.stanford.edu/class/cs277/resources/papers/Moller1997b.pdf), [code](https://github.com/erich666/jgt-code/blob/master/Volume_02/Number_2/Moller1997b/tritri_isectline.c)]\n\n#### Mesh Collision\n\n* Robust contact generation for robot simulation with unstructured meshes (2013), K. Hauser. [[pdf](https://motion.cs.illinois.edu/papers/ISRR2013-RobustContact.pdf), [web](http://motion.cs.illinois.edu/simulation/index.html)]\n\n#### Penetration Depth Computation\n\n* PolyDepth: Real-time Penetration Depth Computation using Iterative Contact-Space Projection (2012), C. Je et al. [[pdf](https://arxiv.org/pdf/1508.06181v1.pdf)]\n\n#### Proximity Query / Signed Distance Field\n\n* Local Optimization for Robust Signed Distance Field Collision (2020), [M. Macklin](http://blog.mmacklin.com/) et al. [[pdf](https://mmacklin.com/sdfcontact.pdf), [slides](https://mmacklin.com/sdfcontact_slides.pdf), [video](https://youtu.be/icU6Bm-HZ-E)]\n* Hierarchical hp-Adaptive Signed Distance Fields (2016), D. Koschier et al. [[pdf](https://pdfs.semanticscholar.org/0dac/60f8ebf218a5510799cab4c74c5bb1f276e9.pdf), [video](https://youtu.be/x_Iq2yM4FcA)]\n* Voxblox: Building 3d signed distance fields for planning (2016), H Oleynikova et al. [[pdf](https://www.research-collection.ethz.ch/bitstream/handle/20.500.11850/128028/eth-50485-01.pdf), [code](https://github.com/ethz-asl/voxblox)]\n* Signed distance fields for polygon soup meshes (2014), H. Xu and Jernej Barbic. [[pdf](https://pdfs.semanticscholar.org/6247/71efeaff92c9826b9fa176e8c76a2def1d9f.pdf)]\n* Fast Proximity Queries with Swept Sphere Volumes (1999), E. Larsen et al. [[pdf](https://www.researchgate.net/profile/Dinesh_Manocha/publication/2318075_Fast_Proximity_Queries_with_Swept_Sphere_Volumes/links/54ecdc250cf2465f53305253/Fast-Proximity-Queries-with-Swept-Sphere-Volumes.pdf), [web](http://gamma.cs.unc.edu/SSV/)]\n\n#### Continuous Collision Detection\n\n* Hierarchical and Controlled Advancement for Continuous Collision Detection of Rigid and Articulated Models (2013), M. Tang et al. [[pdf](http://graphics.ewha.ac.kr/C2A/TVCG13.pdf), [web](http://graphics.ewha.ac.kr/C2A/)]\n* Efficient Geometrically Exact Continuous Collision Detection (2012), T. Brochu et al. [[pdf](https://www.researchgate.net/profile/Essex_Edwards/publication/254200434_Efficient_Geometrically_Exact_Continuous_Collision_Detection/links/5540dd8a0cf2322227304cce/Efficient-Geometrically-Exact-Continuous-Collision-Detection.pdf), [video](https://youtu.be/5bGPoMbXIzs)]\n* C2A: Controlled Conservative Advancement for Continuous Collision Detection of Polygonal Models (2009), M. Tang et al. [[pdf](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.500.7676\u0026rep=rep1\u0026type=pdf)]\n* Continuous Collision Detection for Articulated Models using Taylor Models and Temporal Culling (2007), X. Zhang et al. [[pdf](https://hal.inria.fr/file/index/docid/390313/filename/SIGGRAPH2007.pdf), [web](http://graphics.ewha.ac.kr/CATCH/)]\n* Interactive continuous collision detection for non-convex polyhedra (2006), X. Zhang et al. [[pdf](https://link.springer.com/content/pdf/10.1007/s00371-006-0060-0.pdf), [web](http://graphics.ewha.ac.kr/FAST/)]\n\n#### Nearest Neighbor\n\n* Faster cover tree (2015), M. Izbicki et al. [[pdf](http://proceedings.mlr.press/v37/izbicki15.pdf), [code](https://github.com/manzilzaheer/CoverTree)]\n* Fast Approximate Nearest Neighbors with Automatic Algorithm Configuration (2009), M. Muja and D. Lowe. [[pdf](https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.160.1721\u0026rep=rep1\u0026type=pdf), [code](https://github.com/mariusmuja/flann)]\n* Cover Tree for Nearest Neighbor (2006), A. Beygelzimer et al. [[pdf](https://homes.cs.washington.edu/~sham/papers/ml/cover_tree.pdf), [web](http://hunch.net/~jl/projects/cover_tree/cover_tree.html), [code](https://github.com/DNCrane/Cover-Tree)]\n\n####  Comprehensive Collision Detection Library\n\n* FCL: A General Purpose Library for Collision and Proximity Queries (2012), J. Pan et al. [[pdf](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.259.2177\u0026rep=rep1\u0026type=pdf), [code](https://github.com/flexible-collision-library/fcl)]\n\n#### Survey\n\n* Collision Detection: A Survey (2007), S. Kockara et al. [[pdf](https://pdfs.semanticscholar.org/250e/296b4b4c1b7ac0229e57d6638fe81188121e.pdf)]\n* 3D collision detection: a survey (2001), P. Jiménez et al. [[pdf](https://users.soe.ucsc.edu/~pang/161/w06/notes/jtt01.pdf)]\n\n## [Books](#awesome-collision-detection)\n\n* Real-Time Collision Detection, CRC Press 2004 ([amazon](http://www.amazon.com/Real-Time-Collision-Detection-Interactive-Technology/dp/1558607323/ref=sr_1_1?s=books\u0026ie=UTF8\u0026qid=1463804277\u0026sr=1-1\u0026keywords=real+time+collision+detection))\n* Collision Detection in Interactive 3D Environments, CRC Press 2003 ([amazon](http://www.amazon.com/Collision-Detection-Interactive-Environments-Technology/dp/155860801X))\n\n## [Articles](#awesome-collision-detection)\n\n#### Overview \u0026 Tutorial\n\n* [Video Game Physics Tutorial - Part II: Collision Detection for Solid Objects](https://www.toptal.com/game/video-game-physics-part-ii-collision-detection-for-solid-objects) by [Nilson Souto](https://www.toptal.com/resume/nilson-souto)\n* [GPU Rigid Body Simulation](https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/bullet/GDC2013_ErwinCoumans_GPU_rigid_body_simulation.pdf) (GDC 2013), Erwin Coumans\n* [OpenCL accelerated rigid body and collision detection](http://www.cs.rpi.edu/~trink/RSS-2011/Presentations/coumans.pdf) (RSS 2011), Erwin Coumans\n* [Contact Generation](https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/bullet/GDC10_Coumans_Erwin_Contact.pdf) (GDC 2010), Erwin Coumans\n\n#### Benchmark\n\n* [spatial-collision-datastructures](https://github.com/ttvd/spatial-collision-datastructures) - Benchmark of various spatial data structures for collision detection.\n\n#### Narrow-phase\n\n* [Algorithm table for narrowphase algorithms](http://www.realtimerendering.com/intersections.html)\n* [3D Collision detection](http://www.miguelcasillas.com/?mcportfolio=collision-detection-c) by [Miguel Casillas](http://www.miguelcasillas.com/?page_id=451)\n* [Collision Detection](http://www.jeffreythompson.org/collision-detection/) ([code](https://github.com/jeffThompson/CollisionDetection)) 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.\n* [Note: The Gibert-Jonson-Keerthi algorithm](http://realtimecollisiondetection.net/pubs/SIGGRAPH04_Ericson_GJK_notes.pdf) by Christer Ericson\n\n#### Space Partitioning\n\n* [Benchmark of various spatial data structures for collision detection](https://github.com/ttvd/spatial-collision-datastructures)\n* Bounding volume heirarchy\n  * [Bounding Volume Hierarchy Optimization through Agglomerative Treelet Restructuring](http://www.highperformancegraphics.org/wp-content/uploads/2015/Papers-Session1/apresentacao.pdf) ([paper](http://dl.acm.org/citation.cfm?id=2790065), [code](https://github.com/leonardo-domingues/atrbvh)) by Leonardo R. Domingues and Helio Pedrini.\n  * [Dynamic AABB Tree](http://www.randygaul.net/2013/08/06/dynamic-aabb-tree/) by [Randy Gaul](http://www.randygaul.net/about/)\n  * [Efficient BVH Construction via Approximate Agglomerative Clustering](http://dl.acm.org/citation.cfm?id=2492054) by Yan Gu et al. ([pdf](http://repository.cmu.edu/cgi/viewcontent.cgi?article=3602\u0026context=compsci))\n  * [Octree vs BVH](http://thomasdiewald.com/blog/?p=1488) by [Thomas Diewald](http://thomasdiewald.com/blog/?page_id=14)\n\n## [Other Awesome Lists](#awesome-collision-detection)\n\n* [Awesome Robotics Libraries](https://github.com/jslee02/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.\n\n## [Contributing](#awesome-collision-detection)\n\nContributions are very welcome! Please read the [contribution guidelines](https://github.com/jslee02/awesome-collision-detection/blob/master/CONTRIBUTING.md) first. Also, please feel free to report any error.\n\n## [License](#awesome-collision-detection)\n\n[![CC0](https://licensebuttons.net/p/zero/1.0/88x31.png)](http://creativecommons.org/publicdomain/zero/1.0/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjslee02%2Fawesome-collision-detection","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjslee02%2Fawesome-collision-detection","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjslee02%2Fawesome-collision-detection/lists"}