Coupled Oscillators: Normal Modes and Beating on an Air Track

Two spring-coupled gliders: exact normal modes, beating, mode energy exchange and damping, with a Blender-built air track.

Switch to 2D

Presets

Playback

Parameters

Camera

Layers

Quality

Model check

The science

What is modelled

Two gliders on a frictionless air track, each tied to a wall by a spring (k1, k2) and to each other by a coupling spring kc. You can pluck glider 1, or start exactly one of the two normal modes, change the masses, the three spring constants and a damping coefficient, and watch the energy move between the gliders.

Equations

  • Motion: m1 ẍ1 = −k1 x1 + kc(x2 − x1) − γ m1 ẋ1 and the mirror equation for glider 2, with x the displacement from equilibrium.
  • Normal modes (γ = 0): K φ = ω2 M φ with K = [[k1+kc, −kc], [−kc, k2+kc]] and M = diag(m1, m2). The solver uses the closed form ω2 = (a+b)/2 ∓ √(((a−b)/2)2 + kc2/(m1m2)), a = (k1+kc)/m1, b = (k2+kc)/m2. For equal masses and springs this is ω1 = √(k/m) (in phase) and ω2 = √((k+2kc)/m) (opposite phase).
  • Beating: a plucked glider excites both modes, so x1 ∝ cos(Δωt/2) cos(ω̄t) and the energy changes glider every half beat period π/Δω; the full beat period is 2π/(ω2 − ω1).
  • Energy: E = ½m1v12 + ½m2v22 + ½k1x12 + ½k2x22 + ½kc(x2 − x1)2, split exactly between the two modes because their shapes are K- and M-orthogonal.
  • Damping: force −γ m v shrinks every mode amplitude as e−γt/2 and lowers its frequency to √(ω2 − γ2/4).

Checks run in the page

  • Mode frequencies of an unequal test system against zero-crossing measurements.
  • Energy conservation without damping over 120 s.
  • The stepped motion against the exact modal solution.
  • The damped peak ratio against exp(−γTd/2).
  • M-orthogonality, Rayleigh quotients and the textbook equal-mass frequencies.

Honest simplifications

  • The springs are ideal and linear with no mass, the track has no friction, and motion is along one axis only; a real air track adds a small air-drag and spring-mass correction.
  • The damping is proportional to velocity for both gliders, which keeps the modes uncoupled; real damping often differs between the two.
  • The coil animation only stretches the pitch of a helix; coil contact at strong compression and spring inertia are not modelled.

What to try

  • Start Mode 1 and Mode 2 separately, then pluck glider 1 and see the sum of the two.
  • Weaken the coupling and see the beat period grow as 1/(ω2 − ω1).
  • Make the masses unequal: energy no longer transfers completely.
Loading model...
Loading Blender model...
Displacement of both gliders against time
Phase portrait x2 against x1 (dashed = mode shapes)
Energy carried by each normal mode

What It Demonstrates

Two masses connected to walls and to each other by springs exhibit normal modes — collective oscillations in which every part of the system moves at a single frequency. The symmetric mode (ω₋) has both masses moving together; the antisymmetric mode (ω₊) has them moving in opposite directions. When the coupling spring κ is small, the two frequencies are close and energy sloshes back and forth, producing the characteristic beating envelope.

How to Use

Click Symmetric to excite the low-frequency mode (both masses displace the same direction). Click Antisymmetric for the high-frequency mode. Click Beating to start with only mass 1 displaced — watch the energy transfer completely to mass 2 and back. Reduce coupling κ to lengthen the beat period. Increase damping γ to see energy dissipate.

Did You Know?

The physics of coupled oscillators underpins vast areas of science. Phonons in crystals are quantised normal modes of coupled atoms. Neutrino oscillations arise from quantum mixing of two mass eigenstates — a quantum analogue of the beating pattern. Even the CO₂ greenhouse effect depends on the antisymmetric bending mode of the molecule, which carries an oscillating dipole moment that absorbs infrared radiation.

About Coupled Oscillators

This simulation models two masses, each tethered to a wall by springs k₁ and k₂ and joined to one another by a coupling spring κ. Solving the coupled equations of motion gives two normal modes: a symmetric mode ω₋ in which both masses move together, and an antisymmetric mode ω₊ = √((k + 2κ)/m) in which they move in opposition. The motion is integrated numerically using a symplectic (semi-implicit Euler) scheme with eight substeps per frame.

Six sliders set the wall springs k₁ and k₂, the coupling κ, the two masses m₁ and m₂, and a damping coefficient γ. Buttons excite the symmetric, antisymmetric, or beating initial conditions, while readouts report both mode frequencies, the beat period and total energy. Coupled oscillators are the foundation of phonons in crystals, molecular vibrations, coupled pendulums and resonant electrical circuits.

Frequently Asked Questions

What does this simulation actually show?

It shows two masses connected by springs to fixed walls and to each other, with their displacements drawn in real time above and plotted as waveforms below. You can excite pure normal modes or a beating state and watch energy transfer between the two masses.

What is a normal mode?

A normal mode is a pattern of motion in which every part of the system oscillates at a single shared frequency. A two-mass system has two such modes, and any general motion is a superposition of them. Exciting one mode keeps the system in that mode indefinitely (apart from damping).

What is the difference between the symmetric and antisymmetric modes?

In the symmetric mode both masses move in the same direction, so the coupling spring is never stretched and the frequency ω₋ is lower. In the antisymmetric mode they move oppositely, stretching the coupling spring strongly, which raises the frequency ω₊.

What do the six sliders control?

Spring k₁ and k₂ set the stiffness of the springs joining each mass to its wall (0.1 to 5). Coupling κ sets the strength of the spring between the masses (0.01 to 3). Mass m₁ and m₂ set the two masses (0.2 to 5), and damping γ controls energy loss (0 to 0.15).

What causes the beating pattern?

Beating happens when only one mass starts displaced, exciting both modes at once. Because their frequencies differ slightly, they drift in and out of phase, so the amplitude of each mass swells and fades. Energy sloshes fully from one mass to the other and back over one beat period.

How is the beat period calculated?

The beat period is 2π divided by the difference between the two mode frequencies, ω₊ minus ω₋. When the coupling κ is weak the two frequencies are close together, the difference is small, and the beat period grows long; strong coupling shortens it.

Is the simulation physically accurate?

The equations of motion are integrated faithfully with a symplectic method that conserves energy well over long runs. The displayed mode frequencies use a simplified equal-mass formula, so with strongly unequal masses or springs the labelled ω values are approximate while the underlying motion remains correct.

What does the damping slider do?

Damping γ adds a force proportional to each mass's velocity, draining kinetic energy from the system. With damping above zero the oscillations gradually decay and the total energy readout falls towards zero. Set it to zero to watch ideal, undamped motion and clean beating.

How does this relate to real molecules?

Atoms in a molecule behave like masses on springs, and their collective vibrations are normal modes. The antisymmetric stretching mode of carbon dioxide carries an oscillating dipole that absorbs infrared light, which is precisely why CO₂ is a greenhouse gas.

Where else do coupled oscillators appear?

They appear throughout physics and engineering: phonons in crystal lattices, coupled pendulums, the synchronisation of metronomes, vibrations in bridges and buildings, and resonant LC circuits. Quantum analogues include neutrino oscillations, where mixing of mass states mirrors the beating seen here.

Why does the total energy stay roughly constant without damping?

With damping γ set to zero the system is conservative, so kinetic plus elastic potential energy is preserved. The symplectic integrator used here is designed to keep this total nearly constant over long simulations, which is why the energy readout barely drifts even after many oscillations.

Made with 🟠 Blender · Three.js