
Chladni plate resonance
An interactive Chladni plate. A tone generator drives a metal plate through a speaker; sand is shaken off the moving regions and collects along the still nodal lines, drawing the standing wave. Tune along a DAW-style analyzer — every resonance on this plate lands on a piano pitch.
Take a metal plate, bolt it to a speaker (a wave driver), sprinkle sand on top, and feed the speaker a pure tone from a tone generator. At most frequencies, nothing much happens — the plate barely moves and the sand just sits there. Then you nudge the dial a few hertz and the plate suddenly sings: the sand leaps, slides, and organizes itself into a crisp geometric figure. Keep raising the pitch and each new resonance draws a new figure, more intricate than the last.
That's the real bench experiment this page recreates. The sand isn't being pushed into patterns by some hidden force — it's being thrown off every part of the plate that vibrates, and it survives only where the plate is perfectly still. The pattern is a map of the silence.
The strip along the bottom is the plate's frequency response, drawn exactly like an analyzer in a DAW: each peak is a resonance, and the space between peaks is where the plate refuses to move. Drag anywhere on it to tune, or hop peak-to-peak with ⏮ ⏭. Turn sound on to hear the driving tone (it's the same oscillator the physics reads), and flip to the Mode shape view to see the up/down motion the sand can't show you.
What you're actually looking at
A driven plate is a two-dimensional standing wave. When the driving frequency matches one of the plate's natural frequencies, the reflected waves reinforce each other and the surface settles into a fixed pattern of motion:
- Antinodes — regions swinging up and down violently. Sand landing here gets kicked into the air, over and over, in random directions.
- Nodes — curves where the plate does not move at all. Sand that wanders onto a nodal line stops being kicked. It's a one-way trap.
Give it a few seconds and the statistics do the rest: every grain performs a random walk whose step size is proportional to the local vibration, so grains drift out of the loud regions and accumulate in the quiet ones. The Mode shape view shows the same standing wave directly — orange regions moving up while blue regions move down, with the dark curves between them exactly where the sand piles up.
Between resonances the plate responds weakly everywhere, so the sand barely moves and the last pattern lingers. That's faithful to the bench: the figures don't morph continuously with the dial, they snap from one geometry to the next as you pass through each resonance — you can read that straight off the analyzer strip, where the response falls to nothing between peaks.
Why only certain frequencies work
The plate can't vibrate in arbitrary shapes. Its edges are free, its center is clamped to the driver, and waves crossing it must close back on themselves consistently — so only a discrete family of standing-wave shapes (eigenmodes) is allowed, each with its own natural frequency. Drive at a mode's frequency and a tiny input builds into a large response; drive between modes and the waves cancel themselves out. That comb of peaks in the analyzer strip is the plate, as an instrument.
Each mode is labeled by two integers (m, n) — roughly, how many half-waves fit across the plate in each direction. Higher frequency means shorter wavelength, which means more half-waves fit, which means more nodal lines: this is exactly why the patterns get more complex as the pitch rises. Notice the other thing the strip makes obvious: the peaks crowd together as you go up. At the low end resonances are rare and far apart; near the top of hearing they're everywhere — engineers call this growing modal density, and it's why high-frequency vibration is analyzed statistically rather than mode by mode.
The plate plays piano
Here's the demystifying part: a resonant frequency is just a pitch. There is nothing more exotic about a plate's resonance at 440 Hz than there is about the A above middle C — they're the same fact stated twice.
We leaned into that: this virtual plate is tuned, with every mode frequency snapped to the nearest equal-tempered piano pitch, and the dial itself moves in semitone steps. So the readout doesn't just say "494 Hz," it says B4 — and finding a pattern feels like finding a key that the plate likes. Some keys answer with a figure; most answer with silence.
That's less artificial than it sounds. A real plate's resonances are specific pitches (an aluminum Chladni plate might have modes at, say, F♯3 and C5 — wherever its geometry puts them), and tuning a plate to target notes is a real job: violin makers carve a top plate, sprinkle glitter on it, drive it with a speaker, and shave wood until the Chladni patterns appear at the pitches a good instrument should have. Chladni's law (f ∝ (m + 2n)²) describes how those pitches climb; this sim uses the simpler thin-plate scaling f ∝ (m² + n²) before snapping to the semitone grid.
From sand to flames: the same wave, three ways
The Chladni plate has two famous gas-powered cousins, and together they make a nice ladder:
| Demo | Medium | Dimensions | What marks the wave |
|---|---|---|---|
| Rubens' tube | air in a pipe | 1D | a row of flames — tallest at the pressure antinodes |
| Pyro Board | air under 2,500 holes | 2D | a plane of flames showing the 2D standing wave |
| Chladni plate | the metal itself | 2D | sand collecting on the displacement nodes |
Note the inversion: flames mark where the sound field oscillates most, sand marks where the plate moves least. Same standing wave, opposite indicator. In Veritasium's Pyro Board video there's a lovely moment where Derek walks along the tube and hears the nodes and antinodes directly — his ear is doing exactly what the sand does, sampling the standing wave point by point.
Who should care, and how to think about it
This is modal analysis in its most photogenic form. Every structure — a bridge deck, a turbine blade, a rocket fairing, a PCB in a vibrating chassis — has the same discrete spectrum of eigenmodes, and the same danger: excite one at its natural frequency and small forces produce large amplitudes. The sand patterns are literally the mode shapes an FEA package would draw, computed by nature, and the analyzer strip is the frequency response function a shaker test would measure.
Honest simplifications here: real free-edge plate modes come from the Kirchhoff plate equation, which has no closed-form solution for a fully free square plate (Ritz's 1909 approximation is the classic treatment); the cos·cos ± cos·cos figures and the f ∝ m²+n² spacing used here are the standard demo-grade stand-ins, then snapped to concert pitch. Also, a center-driven plate can only excite modes that actually move at the driving point — this sim lets every mode respond so you can browse the whole family.
No PDE is solved at runtime. The eigenfunctions are analytic (cos products), so the per-frame work is: evaluate a weighted sum of the few modes whose Lorentzian response at the current pitch exceeds a threshold, then move each sand grain by a random kick scaled by the local amplitude. Grains live in one flat Float32Array, rendered with fillRect on a 2D canvas — 10k particles at 60 fps with no libraries. The analyzer comb is rendered once per resize and cached; only the playhead is redrawn per frame, and the mode-shape view is a 144² ImageData heatmap scaled up by the canvas.
The random-kick rule is the whole trick: a random walk with position-dependent step size has its stationary distribution concentrated where the step size vanishes. You get node-finding for free, no gradient computation needed. The tone is a single native OscillatorNode whose frequency tracks the same variable the physics reads — the Web Audio API is the one part of the browser that was born for this page.
Resonance is why instruments sound like themselves. A violin or guitar top is a wooden Chladni plate: it has mode shapes and natural frequencies, and they decide which parts of the string's spectrum get amplified into the room. Luthiers literally do this experiment — sprinkle glitter on a carved top, drive it with a speaker, and shave wood until the patterns (and their pitches) match a good instrument. Hutchins' violin-plate work made this a standard technique — which is also why this sim's "every resonance is a note" framing is honest rather than cute.
The same physics runs your listening room: room modes are 3D standing waves, and a bass null at your mixing chair is you sitting on a node — the exact thing the sand finds on the plate. The analyzer strip should look familiar too: it's the same picture as an EQ analyzer, except the peaks belong to a plate instead of a mix.
Sound is invisible — this experiment is one of the oldest tricks (Chladni was drawing these figures with a violin bow in the 1780s, decades before anyone could record sound) for making it visible. The plate is genuinely vibrating in those patterns whenever the tone plays; the sand just tattles on it.
The counterintuitive part: the sand doesn't gather where the action is. It gathers where nothing is happening — the quiet lines between the vibrating regions. And every one of those patterns is pinned to an ordinary musical note: play the plate's notes and it answers with geometry; play anything else and it ignores you.
Reading the controls
| Control | What it does |
|---|---|
| Analyzer strip | The plate's frequency response, 30 Hz–20 kHz on a log axis with octave gridlines (C1, C2, …). Peaks are resonances. Drag anywhere to tune — the dial snaps to the semitone grid, so every stop is a piano pitch |
| ⏮ / ⏭ | Jump straight to the previous / next resonance peak |
| Readout | The current note and frequency; turns orange and names the mode (m,n) when you're locked onto a resonance |
| Sand / Mode shape | Sand shows the grains hunting the nodal lines; Mode shape shows the standing wave itself (orange up, blue down, dark curves = the nodes) |
| Sound on/off + volume | Plays the actual driving tone through your speakers (starts muted; it's a pure sine, so mind your volume — and the top of the dial reaches the edge of human hearing) |
| Orange dot | The wave driver under the plate's center; it swells when the plate is responding strongly |
| Expand (⤢) | Top-left of the viewer — fullscreen dialog; Esc or click the backdrop to exit |
What this doesn't model
| Omitted | Why it matters in reality |
|---|---|
| True free-plate eigenmodes | Real mode shapes and frequencies come from the Kirchhoff plate equation (no closed form for a free square plate); the demo-grade cos figures are close cousins, not exact solutions |
| Untuned resonances | A real plate's modes land wherever its geometry puts them — snapping them to concert pitch is our (luthier-approved) liberty |
| Driving-point coupling | A center-mounted driver can only excite modes with motion at the center; here every mode is browsable so no pattern is off-limits |
| Sand physics | Real grains bounce, collide, pile up, and at high drive can fly to the antinodes instead (fine, light powder famously does this, dragged by air currents — Faraday figured that one out) |
| Nonlinear overdrive | Shake a real plate hard enough and modes couple; the clean single-mode picture is a small-amplitude story |
Glossary
| Term | Definition |
|---|---|
| Standing wave | A wave pattern that oscillates in place, formed by reflections reinforcing each other |
| Node | A point or curve of a standing wave that never moves — where the sand collects |
| Antinode | Where the standing wave swings hardest — sand can't survive there (but flames peak there) |
| Eigenmode / normal mode | One of the discrete vibration shapes a structure permits, each with its own natural frequency |
| Resonance | The large response that builds when a structure is driven at one of its natural frequencies |
| Frequency response | Response amplitude plotted against driving frequency — the comb of peaks in the analyzer strip |
| Modal density | How tightly packed resonances are along the frequency axis; it grows with frequency |
| Chladni figure | The sand pattern tracing the nodal lines of a plate mode |
| Chladni's law | Empirical scaling of plate mode frequencies, f ∝ (m + 2n)² |
| Wave driver | A speaker fitted with a post instead of a cone — a tone generator's hand on the plate |
| Modal analysis | The engineering discipline of finding a structure's modes before resonance finds them for you |
Sources and further reading
- E.F.F. Chladni, Entdeckungen über die Theorie des Klanges (1787) — the original figures, drawn by bowing a sand-covered plate by hand
- Veritasium — Pyro Board: 2D Rubens' Tube — the flame-based cousin of this experiment, including hearing nodes and antinodes by ear
- W. Ritz (1909) — the classic approximate solution for the free square plate, and the origin of the Rayleigh–Ritz method
- A.W. Leissa, Vibration of Plates (NASA SP-160, 1969) — the standard reference tabulating real plate modes and frequencies
- C.M. Hutchins, "The Acoustics of Violin Plates," Scientific American (1981) — Chladni patterns as a working luthier's tool
Drone Show Simulator
An interactive 3D drone-swarm simulator. Watch hundreds of drones morph between formations under real physical limits — max acceleration, minimum separation, and wind — and see why a show succeeds, smears, or ends in collision.
Demographics Simulator
Population simulation to understand birthrates, budgets, immigration