- Gilbert–Johnson–Keerthi distance algorithm
The Gilbert–Johnson–Keerthi distance
algorithm is a method of determining the minimum distance between twoconvex set s. Unlike many other distance algorithms, it does not require that the geometry data be stored in any specific format, but instead relies solely on a support function to iteratively generate closer simplexes to the correct answer using theMinkowski sum (CSO) of two convex shapes."Enhanced GJK" algorithms use edge information to speed up the algorithm by following edges when looking for the next simplex. This improves performance substantially for polytopes with large numbers of vertices.
GJK algorithms are often used incrementally in simulation systems and video games. In this mode, the final simplex from a previous solution is used as the initial guess in the next iteration, or "frame". If the positions in the new frame are close to those in the old frame, the algorithm will converge in one or two iterations. This yields collision detection systems which operate in near-constant time.
The algorithm's stability, speed, and small storage footprint make it popular for realtime
collision detection , especially inphysics engine s forvideo games .External links
* [http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?&arnumber=2083 "A fast procedure for computing the distance between complex objectsin three-dimensional space", Gilbert, Johnson and Keerthi] - the initial publication
* [http://intl.ieeexplore.ieee.org/xpl/abs_free.jsp?arNumber=614298 "The Gilbert–Johnson–Keerthi distance algorithm: a fast version for incremental motions", Ong and Gilbert]
* [http://web.comlab.ox.ac.uk/oucl/work/stephen.cameron/distances "Computing the Distance between Objects", Oxford professor Stephen Cameron's implementation of GJK]
* [http://code.google.com/p/gjkd/ A 2D implementation of the Gilbert–Johnson–Keerthi (GJK) algorithm, written in the D programming language]
Wikimedia Foundation. 2010.