So I said I came up with an algorithm for computing angular friction, and finally I tested it. At first I was unhappy with the results for reasons I can explain another time- but after a lot of thought (and reading a lot of papers about the physics of a top) realized that it is actually a correct & reliable way of computing discretized angular friction for motion that is about an axis normal to the surface.

Without further ado, the algorithm:

  1. Determine the relative angular velocity between two objects which have collided (or are in a contact state).
  2. Determine the normal force between the two objects to the surface.
  3. Use the magnitude of this normal force to compute the static and dynamic magnitudes of friction (Much like the Coloumb model of friction).
  4. Determine the magnitude of the relative angular velocity (1) in the direction of the colliding surface normal.
  5. Determine the relative angular momentum of each object.
  6. Determine & apply the frictional torque on each object.
    1. If the magnitude of L# (5) does not overcome the value of the staticMagnitude (3) simply apply +- L# opposing the direction of intended motion.
      • By +- I mean “Plus or Minus”, determine which direction you must apply it to inhibit the angular motion. So in other words you may or may not need to scale L# by -1.
    2. If the magnitude of L# (5) does overcome the value of the staticMagnitude (3) simply apply a vector in the direction of L#, but scaled to the magnitude of +- dynamicMagnitude (3) opposing the direction of intending motion.
      • Again, by +- I mean “Plus or Minus”, determine which direction you must apply it to inhibit the angular motion. You may or may not need to scale it by -1.
  7. ???
  8. Profit.

On a more serious note, I really hope somebody might find this helpful. It took me a few tries to get this right. It seems like there exists an abundance of sources for the Coulomb Model of Friction but nothing talks about the angular case explicitly. I give all credit to Coulomb and his model. This work was completely derived from that.

Happy Hacking, Mr. Nex