This was one of the more ambitions project during first part of my master year. We were given a rudimentary OpenGL rendering engine in C++ and we were asked to build our own physics engine over it. This had to have support for multiple physics model like Newtonian and Runge–Kutta 4 and it had to implement full rigid bodies.
I wanted to do something a bit different this time so I stared by replacing Quaternions with Rotors by following this paper. After successfully implementing that feature I moved over to Rigid-bodies and their collisions. After that was done the last things were a depenetrating system and a space partitioning one to improve performance.