Just playing around with the physics engine, trying to work out the relationships between the various components, and I manged to work out a terminal velocity solution. If you want to have your rigidbody to have a top speed of x, and it's maximum acceleration is y, then the ideal drag is simply y / x. However, it gets a little weirder when you factor in large ratios of y/x, and the fixedDeltaTime of your simulation. For example, when I tried a top speed of 10, with an acceleration of 1000 at a time step of 0.01, the drag required was actually 50, as time steps got smaller I got closer to 100 as the drag, but never exactly. After getting a large set of data to work with, I worked out this: Code (csharp): idealDrag = maxAcceleration / terminalVelocity; rigidbody.drag = idealDrag / ( idealDrag * Time.fixedDeltaTime + 1 ); Probably common knowledge for anyone who really uses PhysX, but maybe this will be useful for someone. Edit: Code block didn't match the description paragraph.