Simulator for spinning
motion of a top with finite axis radius $r_P$.
The tip of the axis is modeled as a hemisphere of radius $r_P$.
Friction at the contact point between axis and floor is described with
the coefficient $k$, and the tip P receives a resistive force proportional
to its velocity $\vec v_P$
\[
\vec F = -k\, \vec v_P.
\]
If $k = \infty$, the contact point does not slip, and the center of
mass velocity $\vec v_G$ satisfies the no-slip condition:
\[
\vec v_G = \vec R_C \times\vec\omega
\]
Here, $\vec\omega$ is the angular velocity vector, and $\vec R_C$ is
the vector pointing from the center of mass to the contact point.
When both $r_P$ and $k$ are finite,
both nutation and precession decay over time,
and the top eventually settles into an apparently upright resting state,
known as a "sleeping top".
Though it takes time to reach this state in simulation,
increasing the simulation speed makes the process clearer.
If the axis has finite thickness but $k = \infty$, precession does not seem to decay.