I wrote a 3D Physics Engine in C++ that uses GJK, EPA, and a Sequential Constraint Solver. I wrote it with two goals in mind:
- Stacking blocks - it's stable at around 200, and a lot of fun to watch when they all fall down
- Education - I wanted to create a Physics Engine I could write about to help other people learn.
Point #2 is why I'm sharing today. I've written 11 posts that aim to teach the Physics Engine. I start from the beginning, Points and Vectors in 3D, and move up to the GJK algorithm for collision detection. There's a lot more I could cover, but I thought I'd share what I have so far to see if anyone is interested.
The engine itself is on github: https://github.com/SaintDubious/DubiousEngine
And the articles are on my website: http://dubiousoft.com/2017/01/23/dubious-engine-table-of-contents/
If anyone is interested in learning how to make a Physics Engine, I hope you'll find this useful. I'd greatly appreciate feedback, discussion, questions, corrections, etc.
Thanks.