Click here to go to the applet.

This javascript applet is a simulation of a symmetric top with one point fixed. When the applet starts, you will see the top spinning around one of its principal axes with a small initial tilt. Its rotation axis is also rotating slowly around the vertical, which is called precession. The angle of tilt is also changing slightly, which is called nutation, but that is small and quickly damped out on the default settings.

The Example popup lets you select some other examples like:

Reset resets the top to its initial conditions.

The top traces out a yellow line as it moves showing its path. Clear Trail erases the yellow line.

Zoom In and Zoom Out adjusts the view, or you can use the mouse wheel.

Reverse Spin reverses the direction the top is spinning.

Apply Torque applies torque to the top in the specific direction, as long as the button is held down. The Torque Strength slider adjusts how strong this torque is. You might want to slow down the simulation before applying a strong torque.

Simulation speed controls the speed of the simulation, which is in real time by default.

Spin speed controls how fast the top is spinning.

Initial tilt controls the initial tilt angle. Whenever you change the slider, the top will reset to its new initial conditions.

Gravity controls how strong gravity is. By setting it to zero, you can turn it off altogether.

Damping controls the amount of friction. The top's spinning motion is not damped, but rotation along other axes is damped. If the Tippe Top is selected, then damping works differently. Then there is friction at the contact point between the top and the floor which damps rotation along all axes.

The Stopped checkbox stops the simulation.

The Show Velocity checkbox shows the velocity of the edge of the top at several points.

The Show Ω Vector checkbox shows the normalized direction of the rotation vector. It doesn't show the magnitude, because as you change the spin speed, the arrow would often be too large or too small to be practical.

The Show Angular Momentum checkbox shows the direction of the angular momentum vector. You may not be able to see the angular momentum and omega vectors at the same time because they may be too close together.

The Show Gravitational Torque checkbox shows the direction of gravitational torque.

The Show Trail checkbox shows the path of the top.

The Solid Floor checkbox can be turned off to make the floor drawn as a transparent wireframe. This may happen anyway if there is a vector being displayed under the floor. The top is free to move through the floor, whether or not the floor is drawn as solid; we don't attempt to simulate the top's collision with the floor.

The Texture popup controls the texture used to draw the top. By default, a high contrast texture is used so you can clearly see the rotation. But if that is giving you a headache, you can change it to "Solid Color".

The applet also displays:

The bike wheel model is from but the original is much better. I decimated it down quite a bit to make the file smaller.

Thanks to Aaron Boman for the obj file loader. Copyright (c) 2013 Aaron Boman and

Thanks to the authors of gl-matrix.js. Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV.

Click here to go to the applet.