Unity’s default integration method

Unity’s default integration method

Which method(s) does Unity provide for physical integration? RK4? Verlet? Euler?


Answer 1:

For 3D, Unity uses PhysX. According to this answer, PhysX uses a symplectic integrator. The paper it cites as evidence is a bit more ambiguous though:

Since it is a commercial engine the implementation details are

Most physics engines provide results similar to the Symplectic Euler
integrator, or 2nd order Euler. Novodex (Ageia PhysX) provided the
best results.

The integration error graph shows it behaving slightly better than the “Euler 2nd order” reference implementation, and significantly better than the “symplectic Euler” reference integrator. So it looks to me like it’s not a 100% off-the-shelf integrator, and has some custom adjustments that may be hard to duplicate without the source code.

For 2D, Unity uses Box2D, which uses Symplectic Euler, according to these forum posts.