Physics Material Properties - Friction and Restitution

Is anyone aware of a good generic material table somewhere out there that can give us some realistic hints about the static friction, dynamic friction, and restitution coefficients of common materials?

I’ve looked into real-world statistics, but most research involves two-material interactions, rather than the standalone properties of a single material.

When setting up physics properties, such as in a physics SDK, or for physics behavior in a program, we are usually forced to come up with specific properties for a single material (rather one per interaction vs other materials). Because of this, I find it really hard to believe that someone hasn’t come up with a simple table that outlines these properties for common materials (thin steel, rotten wood, solid marble, etc).

If anyone is aware of such information, I would love to see it. Thanks for any assistance!

Yes, you are correct. In the real world friction is always measured between two surfaces, it is not the property of a single surface. PhysX (and many other physics engines) try to approximate friction coefficients by combining two individual material properties for the sake of simplicity. This works well enough for most use cases. The more realistic alternative to this would be to ask the user to provide a combinatorial table of all possible material combinations which in general is not practical, but might be a better approach for special use cases where we know up front that only a very few different surfaces will be interacting.

We do plan to create material libraries with physics properties already included in the future but we haven’t gotten around to this yet. I am also not aware of something like this being easily available from third parties. In my experience most users don’t bother with realistic friction coefficients and just eyeball something that looks okay, which I agree is a bit unfortunate.

Very important: If you care about realistic friction, you should change the friction combine mode to something else than the default of “average”. For many pairs of materials, averaging individual material parameters to get the friction coefficient is not a good choice. We use this default for legacy and compatibility reasons, since it is most common across other engines. I think “min” will often be a better choice. You should ideally use the same combine mode for all your materials if you don’t want to have to think hard about how combine modes are combined! :)