I've been using a third party physics library in my XNA projects since mid 2010 called
BEPUphysics . When I started using BEPUphysics it was distributed under a commercial license which meant you had to pay a percentage of your game's revenue to the creators of BEPUphysics.
As of today BEPU have made their physics library completely free and open source (under the Apache 2.0 license). This is awesome news for XNA developers as (in my opinion) BEPUphysics is probably the best physics library currently available for XNA and runs on PC, Xbox 360 and Windows Phone 7.
In my own games I'm using BEPUphysics under a number of different situations, all of which work rather well on the Xbox 360 and Windows Phone 7. Both of those platforms have limited processing power (XNA on the 360 provides less than desirable flouting point performance) and BEPUphysics makes the most of what power is available.
One feature that I always liked about BEPUphysics was how easy it is to set up multi-threading. On the 360 for example, out of the 3 processors and 6 cores available you can split your physics simulations across cores/processors to optimize performance.
I'm using BEPUphysics extensively in the engine I have written for a number of 3D racing games and it performs very well with very large meshes (on the 360) and also on WP7 (with much smaller meshes).
If you're looking for a high performance physics library for your XBLIG or WP7 game then look no further,
BEPUphysics is the answer!
If you found this post helpful please leave a comment below: