I implemented a much simpler version of a 2d physics engine like this in a graphics class back in college (but in gtk on linux). It was really fun to do and surprisingly straightforward. A lot of the math gets much hairier in 3D.
Really interesting stuff. I have no idea what I would use this for right now, but have often had thoughts about trying to implement something like this.