A rapidly spinning rotor resists a sudden change in its angular-momentum direction. This is not a mysterious force: changing a vector requires torque over time.
Use a body record containing orientation, angular velocity, and angular momentum. For a simple symmetric rotor whose spin is close to its symmetry axis, start with:
\[\mathbf L=I_s\omega_s\hat{\mathbf s}, \qquad \frac{d\mathbf L}{dt}=\boldsymbol\tau.\]Each solver step first adds the torque impulse to (\mathbf L), then derives angular velocity from the inertia model, then advances orientation. Do not rotate a rendered mesh directly in response to a mouse or gravity control; that makes the visual answer independent from the stated dynamics.
The useful comparison is dimensional: the same sideways torque changes direction by roughly (|\boldsymbol\tau|\Delta t/|\mathbf L|). Doubling spin momentum should roughly halve the one-step turn in the small-angle regime. Log the torque vector, (|\mathbf L|), angle from the initial momentum direction, and the orientation representation used (quaternion or matrix). Normalizing an orientation after its update is numerical housekeeping, not a replacement for angular-momentum conservation.
Build fixed cases: zero torque preserves (\mathbf L); a torque parallel to (\mathbf L) changes magnitude but not its initial direction; a perpendicular torque changes direction; reversing the torque reverses the early directional trend. Compare a constant-torque run at half the time step for the same physical duration. If the precession angle moves substantially, reduce the step or improve the integrator before explaining the trace.
For a gravity-supported top, compute the torque from the pivot-to-centre-of-mass lever arm and gravity, with an explicit world-axis convention. State whether the pivot is fixed, whether friction transfers angular momentum out of the rotor, and whether the inertia tensor is axisymmetric. Nutation, bearing friction, large-angle rotation, and non-axisymmetric bodies require the full three-dimensional rigid-body equations; a scalar spin-rate toy does not predict them.
Prediction: Increasing spin rate makes the same sideways torque produce a smaller directional change per frame.
Compare two angular-momentum magnitudes under the same torque and time step. Describe the observable change in orientation.Gyroscopic stability follows from a vector state update. Apply a measured torque impulse to angular momentum, derive orientation from that state, and verify direction, magnitude, convention, and refinement checks before trusting the animation.
Treat the lesson as a small function before treating it as a fact to memorize. Give every value a unit, keep only the state needed for the next step, and make the output easy to inspect.
\[\text{observable output} = f(\text{inputs},\,\text{state})\]For Gyroscopic Stability, write down the quantities you can control, the values your program must retain, and the result a reader could inspect. In Rolling, Angular Momentum, and Gyroscopes, the useful program is not the drawing: it is the smallest explicit model that makes a prediction you can test.
Prediction: changing one declared input while holding the others fixed should change only the outputs that the model connects to that input. Choose one input, predict the direction of change, then check a limiting case such as zero, a symmetric arrangement, or a familiar low-speed or small-change approximation.
This lesson is a teaching model, not a complete simulator. Before using it outside the stated question, check which interactions, scales, uncertainties, boundary conditions, and measurement limits it leaves out.
Treat Gyroscopic Stability as a contract: named inputs and units enter a rule, the rule produces an observable result, and a known limit or invariant checks whether the implementation deserves trust.
Explain gyroscopic stability by updating angular momentum as a vector under applied torque.