Coupled Wave Machine (3D)

A Blender-built bench with 64 pendulum bars on a torsion wire, a motor, heavy-bob section and foam absorber: the same model as the 2D page, with live graphs and four checks.

Presets

Playback

Launch

Medium

Heavy section (impedance step)

Ends of the wire

Motor

Pulse and speed

Camera

Layers

Quality

Model check

The science

The machine

A row of N = 64 bars (pendulums) hangs from one long torsion wire. Each bar can swing about the wire axis by an angle θi. Neighbouring bars feel each other only through the twist of the wire between them, so a disturbance has to travel along the wire as a wave. This is the classic Shive / Bell Labs wave machine, here with an optional pendulum restoring torque (gravity on the bobs) and a motor that twists the left end.

Equation of motion

μi θ̈i = c² (θi+1 − 2θi + θi−1) − μi ω0² sin θi − μi γi θ̇i

Here c² = κ/I1 (wire torsion constant over the inertia of a normal bar, in bars²/s²), μi = Ii/I1 is the relative inertia of the bob, ω0² = m g ℓ/I is the pendulum frequency (a heavier bob has both more inertia and more gravity torque, so ω0 does not depend on μ) and γ is a friction rate. For small angles sinθ ≈ θ and the equation is linear (the Klein–Gordon lattice); the pendulum check box switches on the full sinθ, which is the discrete sine-Gordon equation.

Dispersion and the band gap

A plane wave θi = A cos(k i − ω t) satisfies ω² = ω0² + (4c²/μ) sin²(k/2). For long waves (k small) this is ω² ≈ ω0² + (c k)²/μ: with ω0 = 0 the wave speed is c/√μ for every wavelength (no dispersion), but with gravity on, long waves are faster than short ones in phase and the group speed vg = (c²/μ) sin k / ω drops to zero at the cutoff ω0 and at the band top ωmax = √(ω0² + 4c²/μ). A motor below ω0 (or above ωmax) cannot launch a travelling wave: the disturbance dies out exponentially (evanescent) within a few bars, exactly like light below the plasma frequency.

Reflection at a change of load

If the bobs become μ2 times heavier on the right, the wire stays the same but the characteristic impedance changes, Z ∝ √(κ I) ∝ √μ. Continuity of angle and torque at the step gives the amplitude coefficients R = (√μ1 − √μ2)/(√μ1 + √μ2) and T = 1 + R (valid when the pulse is long compared with the bar spacing). Going into a heavier medium R < 0: the reflected pulse is inverted, as at a fixed end; going into a lighter one R > 0, as at a free end. The foam absorber is a sponge layer whose damping rises smoothly (as s²) over the last 16 bars, so almost nothing returns.

Kinks

The sine-Gordon equation has the exact travelling solution θ = 4 arctan exp[γL(x − v t)/d] with d = c/ω0 and γL = 1/√(1 − v²/c²): a 360° twist that runs along the chain like a particle and is Lorentz-contracted as v approaches c. The page launches one at 0.4 c; check 4 compares the simulated position with x0 + v t after 12 s.

Numerics and honest simplifications

The page integrates the 64 equations with the velocity-Verlet (kick-drift-kick) scheme at a fixed step of 5 ms, which is symplectic: energy only oscillates slightly and does not drift. The four in-page checks run separate copies of the model: lattice dispersion for a clamped standing mode, the reflection and transmission coefficients, energy conservation at 126° amplitudes, and the kink speed. Simplifications: the wire has no mass of its own (its inertia is lumped into the bars), friction is linear, the motor imposes the angle exactly, the foam is a numerical sponge, not a material model, and the lattice is a good approximation of a continuous string only for wavelengths much longer than the bar spacing (the dispersion formula above is exact for the lattice).

Loading model...
Loading Blender model...
Energy: kinetic, wire torsion, gravity, total
Dispersion relation w(k) and the motor frequency
Angle of three probe bars A, B, C
Spatial spectrum of the chain
Made with 🟠 Blender · Three.js