Algoritmo GJK
Un método que decide si dos cuerpos convexos colisionan buscando el origen dentro de su diferencia de Minkowski.
Lleva el nombre de Elmer Gilbert, Daniel Johnson y Sathiya Keerthi, que lo describieron en 1988. La idea clave es que dos conjuntos convexos se cruzan exactamente cuando su diferencia de Minkowski contiene el origen. GJK busca el origen sin construir nunca la diferencia completa: solo pide puntos de soporte —el punto más lejano de la forma en una dirección dada— y hace crecer un pequeño símplex (a lo sumo un tetraedro) que o bien encierra el origen o demuestra que es inalcanzable.
Como todo pasa por funciones de soporte, el mismo código sirve para poliedros, esferas, cilindros y cápsulas: cualquier cosa convexa. GJK da la distancia cuando las formas están separadas; para la profundidad de penetración, una vez que ya se solapan, se combina con EPA. El algoritmo es una piedra angular de motores de física como Bullet y se ejecuta en la narrow phase.