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.
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.
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.
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.
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 ω₊.
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).
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.
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.
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.
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.
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.
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.
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.