libccd is library for collision detection between two convex shapes.
libccd implements variation on Gilbert-Johnson-Keerthi
(GJK) algorithm + Expand Polytope Algorithm (EPA). It also implements
Minkowski Portal Refinement (MPR, a.k.a. XenoCollide) algorithm as
published in Game Programming Gems 7.
libccd is the only available open source library of my
knowledge that include MPR algorithm working in 3-D space.
However, there is a library called mpr2d, implemented in D programming language, that works in 2-D space.
libccd is part of the ODE library. See ./configure --help how to enable it.
How to use libccd see Usage.
libccd is distributed under the 3-clause BSD License.