Chladni Plate (3D)

A shaker drives a metal plate on a Blender lab bench; sand hops off the antinodes onto the nodal lines.

Presets

Playback

Plate

Mode

Drive

Exciter

Sand

View

Camera

Layers

Quality

Model check

The science

What you see

A thin square metal plate is shaken at one point at a chosen frequency. At most frequencies it hardly moves. When the frequency matches one of the plate's natural modes, a standing bending wave builds up. Sand hops away from the parts that move a lot and rests on the lines that stay still (the nodal lines), drawing a Chladni figure.

What the 3D scene shows

The metal surface is the computed plate displacement drawn with an adjustable vertical exaggeration (a real plate moves by about a millimetre on a 20 cm side). Red and blue tints are up and down. The grains are points that sit on the surface; those on parts of the plate faster than 1 g hop. The shaker under the plate is the exciter you can move by clicking. Everything is driven by the same code as the 2D page.

Bending waves and mode frequencies

A thin plate obeys rho h w_tt + D lap^2 w = 0 with bending stiffness D = E h^3 / (12 (1 - nu^2)). A wave exp(i(k.x - w t)) therefore has w = k^2 sqrt(D / (rho h)), so the frequency grows with the square of the wavenumber (unlike sound in air, where it grows linearly). For a mode with m and n half-wavelengths across a plate of side L the wavenumber is k^2 = pi^2 (m^2 + n^2) / L^2 and

f_mn = (pi / 2) (m^2 + n^2) (h / L^2) sqrt(E / (12 rho (1 - nu^2))).

Doubling the thickness doubles every frequency; doubling the side divides them by four.

Mode shapes used here

The mode shapes are cos(m pi x/L) cos(n pi y/L) +/- cos(n pi x/L) cos(m pi y/L) (the form Chladni and Ritz used). Two shapes, with the plus and minus sign, share one frequency when m != n. Which combination you see depends on where the exciter touches the plate. An exciter placed on a nodal line of a mode cannot excite it at all.

Forced response

Every mode is treated as a damped oscillator with quality factor Q. The amplitude of mode k at drive frequency w is a_k = phi_k(exciter) w_k^2 / (w_k^2 - w^2 + i w_k w / Q), a complex number because the modes have different phases. The plate displacement is Re( sum a_k phi_k(x,y) e^(i w t) ). The mode shapes are orthonormal, so the RMS response is exactly sqrt(sum |a_k|^2); this is the curve in the first graph.

Sand

A grain lifts off only when the plate acceleration exceeds gravity: A(x,y) w^2 > g. Grains that hop move a random distance proportional to the local vibration amplitude, and grains sitting where the plate is quiet stay. A random walk with a step size that depends on position collects the walkers where the steps are smallest, so the sand ends up on the nodal lines. If the drive is too weak (try the "Weak drive" preset) only grains near the antinodes get enough acceleration to move at all.

Honest simplifications

  • Real free-edge plates have mode shapes and frequencies that differ from these cosine modes by tens of percent (the true free-plate problem has no closed solution). The formulas here are exact for a plate with sliding-clamped edges and a good model of the pattern types.
  • The grain model is a statistical hop rule, not a rigid-body contact simulation. Air streaming, which moves fine powder to antinodes in real experiments, is not included.
  • The plate amplitude is shown in true millimetres, but the exciter is treated as a point force whose position sets which modes appear.

Numerical checks on this page

  • An independent time-domain solver of the plate equation measures the oscillation frequency of a mode and compares it with the formula for f_mn.
  • The number of modes below a cut-off is compared with the Weyl law, and the mode shapes are checked to be orthonormal.
  • A sand test starts with uniform grains and measures how far they move away from the antinodes.
Loading model...
Loading Blender model...
Plate response vs drive frequency (RMS amplitude)
Middle line: displacement, envelope, sand density
Sand on nodal lines: amplitude ratio over time
Mode frequencies f_mn vs m^2 + n^2 (bending dispersion)
Made with 🟠 Blender · Three.js