In this project I had to research and develop the basics of physics programming in real time by my own. This projects is built from scratch in C++ and no physics libraries were used. I had to implement numerical methods such as implicit or semi implicit Euler to approximate ordinary differential equations. Then, I developed the half edge data structure in order to accelerate physical computations. Once that was done, I implemented the separating axis theorem in order to detect collisions and generate collision data of arbitrary convex shapes. Then, once the collision data was generated I added physical constraints to simulate collision resolution. Once the system for constraints was implemented, I added joint constraints to simulate rag dolls.


Here is an extensive document in which I go in depth in the theoretical aspect of the project.