A few years ago I was experimenting with using Frank-Wolfe for collision detection in a toy physics engine. I never knew about the connection to GJK so I was pleasantly surprised to find the paper mentioned in the blog. Since I had never seen it before I'm sure other people missed it so I wanted to share.
Yeah I agree, the error analysis could be many blogs in and of itself. I kinda got tired by the end of this blog. I would like to write a post about this in the future. For global solvers and iterative.
> Finding the closest vertices is easy but not sufficient.
As I'm sure you are aware, most GJK implementations find the closest features and then a one shot contact manifold can be generated by clipping the features against each other. When GJK finds a simplex of the CSO, each vertex of the simplex keeps track of the corresponding points from A and B.
> A second problem is what to do about flat polygon surfaces
Modern physics engines and the demo I uploaded do face clipping which handle this. For GJK you normally ensure the points in your hull are linearly independent.
Depends on your definition of "engine". XNA was a set of APIs and tools for game development. Game engines are also a set of APIs and tools for game development, although usually a bit more integrated than XNA. But before Unity and Unreal Engine became the "default engines" the term was used much more losely, often only for the runtime parts, not the authoring tools.