Differences between Farseer Physics Engine 2.x and 3.0
In FPE 2.x we approximated circles using polygons. This lead to unexpected results when the circles bounced off a wall and uneven rolling on a floor. This is no longer an issue in FPE 3.0 as we now have perfect circles.
In 3.0 we have broadphase enabled raycasting. This means you can raycast very quickly against a large number of bodies and get very precise results back.
In FPE 2.x we had the Inactivity Controller to control sleeping bodies. It was implemented outside the engine and thus it was not very good. In 3.0 we have sleeping implemented directly into the engine, i.e, the sleeping system is a lot better. Sleeping
is enabled by default and when used correctly, it can improve performance a lot.
More realistic joints
The joints are solved using a very sophisticated solver that creates more realistic results.
The contact solver is also a lot better and it is possible to stack a large number of bodies.
Warmstarting makes the engine approximate results faster and more accurate. It improves stacking and performance.
Continuous Collision Detection (CCD)
Fast moving objects can tunnel other objects - a big problem in a lot of games. With FPE 3.0 we have a CCD system that is enabled on static bodies by default, and can be enabled for other bodies if needed.