When I last wrote I was looking for a physics library to integrate. Everyone was nice enough to unanimously suggest Bullet which made my decision easy and it ends up that it also made integration easy too. The library does everything I need it to do and does it in a very clean fashion. Understanding how all the pieces work together was a breeze which made it easy to fit into my framework. One final work item that I still need to implement is passing along collision events to individual objects in my scene. Currently objects collide correctly based on collision masks but the objects don't currently perform any custom events on those collisions. I haven't done any heavy testing to see how performance holds up with a bunch of things going on in the world but unless there's a complete melt down I would definitely recommend this library to anyone else looking for a physics solution.
Of course everything can't go completely smooth all the time and the physics integration did identify a few bugs in my shaders with lighting not behaving correctly with objects in motion. I would never call myself a graphics dev, and neither would anyone else, so tracking down the bugs was a bit of work. I haven't really done much thinking of dot products, etc. since I was in school and I always let the fixed function pipeline worry about that stuff in the past so my debugging of things took longer than it probably should have. In the end though I did finally get things working enough that I'm ready to move on.
I've got a quick little video showing off the rubber ducky model getting some forces applied to it and bouncing off the walls. The physics world is using a sphere as a rigid body for the duck if you're wondering why the collisions don't look 100% accurate for an odd shaped object like the duck but I can easily get it to use the mesh instead. In this case I just want to test the basics of the physics integration.