A solid sphere (I = ⅖mR²) is tested against the Coulomb-friction slip condition every physics step — this is not a canned animation, it is the actual condition that decides whether a real ball skids or rolls:
v_s = v − ωR (contact-point slip velocity)
|v_s| > ε → sliding: F_f = −μk·N·sign(v_s)
|v_s| ≈ 0 → try rolling: F_f = −(2/7)·m·g·sinθ
accepted only if |F_f| ≤ μs·N, else falls back to sliding
m·dv/dt = m·g·sinθ + F_f − Crr·N·sign(v) (+ rolling resistance)
dω/dt = −F_f·R / I
Solving the rolling-without-slip case analytically gives the textbook result a = (5/7)g·sinθ for a solid sphere, and the friction it needs is exactly (2/7)mg·sinθ — the two readouts "μ needed to roll" vs "μ available (static)" show that inequality live: whenever the needed value exceeds the available one, the ball cannot grip and slides instead, which you can see directly as the spin indicator on the ball falling out of sync with its travel.
- Spin indicator — the radial mark on the ball tracks true integrated rotation; it stays locked to the contact point only while rolling without slipping.
- Rolling resistance — a small material-dependent drag (deformation losses) that keeps decelerating the ball even once it is rolling cleanly on the flat section, so it eventually stops instead of coasting forever.
- Launch impulse — applied via the impulse–momentum theorem (Δv = J/m), so the same N·s kick gives the light rubber ball a bigger speed boost than the heavy steel one.