How, specifically, does the game engines friction work? I have a dynamic physics-typed object. Its material has an option for the amount of friction:



Here is what it tells us:



Well, refer to the first picture. We see, under Force Field an option for distance. Here is what it tells us:



I have a few questions on how this works:

How is the distance created?

Is it a box around the object? Convex hull? A distance from any point on the object? Using Game > Show Physics Visualization, where exactly is this area?

 Why does friction still occur when there is zero distance of the physics area

The Friction option tells us that the changes occur "when inside the physics distance area." Why is velocity still truncated with distance of the physics area?

What formula does the friction use?


What about environmental friction (i.e. friction from other sources)?
Does it use the common method introduced back in Quake? (Sorry about the example not being in python; although, it is very understandable.)

What is the exact formula/method of determining exactly how much velocity to truncate?


Thank you!
Friction belongs to the surface. When the object touches the surface the combined frictions result in a sliding force (both objects have materials).

Distance and Force belongs to force field. The force field is defined above the faces with that material. 'Above' means 


+Z (global) when Align to Normal is unset
+Z (local) when Align to Normal is set


I can't tell about the formulas, nor if friction belongs to force field too.