Presets
Playback
Mode pair (n, m)
Vibration and sand
Model checks
The science
Standing-wave modes of a square plate
The 3D page uses the classic Chladni approximation u(x,y) = cos(nπx)cos(mπy) − b cos(mπx)cos(nπy) with x,y in [−1,1]. The two terms are degenerate partners (same frequency for n ↔ m), so any mixture is a valid standing wave; b = 1 gives the symmetric combination, b = −1 the antisymmetric one. The plate is driven at the frequency of the chosen mode and moves as u(x,y) cos(ωt).
Why sand finds the nodal lines
Grains are thrown up where the plate moves, i.e. where |u| is large, and land at random. Each bounce is a random step whose size grows with |u|, so grains diffuse away from antinodes and pile up where u = 0. The steady density of such a walk is proportional to 1/|u| (capped by the grain size), the bright lines in the picture. For a simply supported square plate the frequency scales as f ∝ n² + m², which is the relative frequency shown in the third graph.
Honest simplifications: the cosine product is an idealised mode shape, not the exact free-edge plate solution (which needs a Ritz expansion); the frequency law is the simply supported one; air streaming and grain collisions are ignored; the sand dynamics are a stochastic toy that reproduces the correct patterns.
What to try
- Press Shake sand loose and watch the nodal pattern emerge within 20 seconds.
- Switch to Antisymmetric 3,4: the diagonal becomes an antinode.
- Raise the drive strength to settle faster, lower the damping to blur the lines.