# The units for Torque are incongruously small

Add Torque of 10,000 torque units on a 200 kg body for all steps of a second does almost nothing. The presumed unit (to be consistent with the other types in the system) should be kgf.cm. However, it behaves more as if it’s gf.mm.

In general, documenting the units for physics (for force impulses, angular velocity, etc) would be good, too. The units I assume (based on the expressed units in various edit fields) would be:

• weight: kilograms
• distance: centimeters
• angles: degrees
• force: N
• torque: N.cm
• linear velocity: cm/s
• angular velocity: degrees/cm

I’d actually prefer radians and radians/sec, and meters, meters/sec, and N.m, but I’ll take any consistent set of units I can get Howdy jwatte,

Sorry about the delay in a response to your question. We are currently looking into what that the exact units are for torque. I have sent the question off to a couple devs that may know what the exact units are.

Thanks for your patience and I will let you know the answer to your question as soon as I get the response back.

Have a great day!

Hi jwatte,

AddTorque is specified in kg for mass, cm for distance, and rad/s for angular acceleration. In the future we may add another function AddTorqueDegrees to make this more consistent with the rest of the engine, but I’m not sure how useful this would be since computing torque using angular acceleration requires knowledge of the moment of inertia which is currently not exposed.

One thing to keep in mind with your example is the geometry of your 200kg body will dictate the moment of inertia. Here’s a reference page if you’re interested: http://en.wikipedia.org/wiki/List_of_moments_of_inertia

For example, if I have a 208kg cube which is 80cm x 80cm x 80cm the associated moment of inertia will be 368058.469
This means that when I apply a torque of 10000 I should expect an angular acceleration of 10000/368058.469 rad/s = .027 rad/s or about 1.5 degrees / second.

If I setup a blueprint that applies this torque for 1 second and print out the angular velocity I get an angular velocity of ~1.537 degrees / second.

Note that if I do this without sub-stepping turned on and with a very low frame-rate the angular velocity may dip to around 1.2 degrees / second. This makes sense since without sub-stepping I’m essentially shortening the amount of time the torque is applied for.

I hope this helps clarify some of your concerns. Please let me know if you have any more questions!

UPDATE: Sorry just noticed I’m actually using a sphere collision not a box so the moment of inertia for a box would be slightly different, but the overall principal is the same.

Can you clarify exactly how you calculated your moment of inertia in this example Ori? The math doesn’t seem to add up.

Also, is there any news on when the MOI might be exposed in the API at all?

TIA.

The volume doesn’t really matter here. If I add torque corresponding to 80 kgf at 40 cm from center, the torque applied is 3200 kgfcm, or about 310 N.m. That’s a lot of torque! It is, in fact, in class with a high-end car engine or electric car motor.

Your argument seems to be that the main problem here is the short time of the impulse. There may be something to that, but my experiment seems to indicate that applying this impulse as a continuous torque does not accelerate the sphere as quickly as a car would accelerate – and the sphere weighs about 1/25th of what a car does!

I didn’t calculate the moment of inertia, this is done by PhysX. In the example I wrote up I was originally using a cube, but the moment of inertia is actually for a sphere. I don’t have this example any more so unfortunately I don’t have the original numbers. We could certainly add a GetMOI, I think this would be useful. I don’t have any ETA on this right now though. I’ll add it to our backlog.

Much appreciated.

jwatte, did u mean?:

• angular velocity: degrees/sec

Yup. (But see below – the actual units are not what I assumed they were)

How can I convert kgfcm in N*m?

Hey Mattiamatrix,

1 kilogram-force centimeter = 0.0980665 newton meter. You can use a MathNode to create this conversion in the editor, if you need.