Spherical Elastic Pendulum: Swing, Stretch and Precession in 3D

A mass on a spring that can swing in any direction: the 3D companion of the 2D spring pendulum, with exact conical orbits, precession and the 2:1 resonance.

Switch to 2D

Presets

Playback

Parameters

Camera

Layers

Quality

Model check

The science

What is modelled

A point mass m on an ideal massless spring (constant k, natural length l0) hangs from a fixed pivot and is free to move in three dimensions. This is the 3D companion of the 2D page "Elastic Spring Pendulum": the 2D page keeps the bob in a vertical plane, here it may also move sideways, so it can precess and orbit.

Equations

  • Newton's law in Cartesian coordinates, m a = −k (r − l0) p/r − m g ẑ − b v, with r = |p|. Using Cartesian coordinates avoids the singularity of spherical coordinates at the bottom point. Integrated with classical RK4, step 1/600 s.
  • Equivalent Lagrangian: L = ½m(ṙ² + r²θ̇² + r² sin²θ φ̇²) − ½k(r−l0)² + m g r cosθ. The azimuth φ is cyclic, so Lz = m r² sin²θ φ̇ is conserved without drag.
  • Rest length with the bob: req = l0 + m g/k. Small motions have two frequencies, stretch ωr = √(k/m) and swing ωθ = √(g/req). When ωr ≈ 2ωθ (for example k = 3 m g/l0) energy is pumped between bouncing and swinging.
  • Exact conical orbit (derived from the polar equations with ṙ = θ̇ = 0): r = l0 + m g/(k cosθ) and Ω² = g/(r cosθ). The "Conical orbit" preset starts the bob on this cone.
  • Drag is linear, −b v. The energy ledger shows kinetic, spring and gravitational energy and the sum plus the work done by drag, which stays constant.

Checks run in the page

  • With no sideways push the 3D solver reproduces, to better than 1 μm over 6 s, the path of the 2D page's own polar (r, θ) RK4 solver (its code is copied into this page for the comparison).
  • The exact cone: after 5 turns the length and height stay on the analytic values to ~10−6 m.
  • Energy and the vertical angular momentum are conserved in a large 40 s run without drag.
  • The simulated small-oscillation periods agree with 2π√(m/k) and 2π√(req/g).

Honest simplifications

  • Massless, ideal linear spring: no coil mass, no spring waves, no coil-binding, no sideways spring bending. The helix is drawn by stretching a Blender-modelled coil; its coil spacing is not a physical quantity.
  • The bob is a point; its size in the picture only scales with the cube root of the mass.
  • Linear drag only; real air drag is quadratic at these speeds, and there is no friction at the pivot.
  • The motion of a spring pendulum is chaotic for large energies: tiny numerical differences grow, so trajectories after many seconds depend on the step size, while the conserved quantities stay accurate.

What to try

  • Start with "Planar swing" and compare with the 2D page, then add a sideways push to see the plan view open into a rosette.
  • Use "Conical orbit", then change the angle: the stretch and the rotation rate follow the formulas above.
  • Use "Tune to 2:1 resonance" and watch the energy graph trade between the stretch and the swing.
Loading model...
Loading Blender model...
Plan view: path of the bob seen from above
Stretch and polar angle over time
Energy ledger
Made with 🟠 Blender · Three.js