EPA (Expanding Polytope Algorithm)
The algorithm that picks up where GJK stops and works out how deeply two bodies have interpenetrated, and in which direction.
GJK only answers yes or no to whether two convex bodies overlap; it says nothing about by how much. When the answer is yes, it leaves behind a simplex enclosing the origin of the Minkowski difference. EPA takes that simplex and inflates it into a polytope, repeatedly adding the support point in the direction of its closest face.
When no new point moves the closest face any further, you have found the point on the difference's boundary nearest the origin. That face's normal is the collision normal, and its distance from the origin is the penetration depth — exactly the two numbers collision response needs to push the bodies apart. Described by Gino van den Bergen (2001) and paired with GJK in physics engines such as Bullet.