Chladni Resonance Lab — Sound into Patterns

Watch virtual sand migrate across a resonating plate, reveal nodal figures and reorganise as you change the excitation. An interactive native-Praat experiment in resonance, spatial form and sound-driven visualisation.

Author: Shai CohenAffiliation: Department of Music, Bar-Ilan University, IsraelCategory: Visualization / Hybrid SystemsLicense: MIT LicenseRepo: Praat AudioTools
Contents:

What this does

Chladni Resonance Lab simulates sand accumulating in relatively quiet regions of a vibrating plate. The animation begins with scattered grains; as the model evolves, they drift, scatter and settle into visible nodal structures. Change a resonance, excitation position or plate model and watch the existing grains reorganise rather than jump to a newly drawn figure.

Central idea: the geometry is not painted as a fixed ornament. A modal vibration field guides the evolving positions of individual simulated particles.

Key features:

Quick start

  1. Run Chladni_Resonance_Lab.praat from Praat. A selected mono or stereo Sound is optional.
  2. Choose Quality: Balanced is a practical starting point.
  3. Choose a Start preset; try Fundamental Resonance to observe simple node formation or Modal Morphing to see continuous reorganisation.
  4. If a Sound is selected, choose Sound mapping: Resonance-based excitation or Creative spectral mapping.
  5. Leave Plate lowest resonance Hz at 0 for automatic/default tuning, or enter a positive reference frequency.
  6. Use Start / Pause or Space. Explore the frequency and plate controls as grains settle.
  7. Click the plate to move the exciter; click the frequency/response strip in Explore mode to retune the drive.
Running on recent Praat: the display deliberately runs in short animation takes. After a take, the simulation pauses for input; press Start / Pause or Space to continue. This is an interface safeguard, not a simulated physical phenomenon.

Diagnostic self-test runs numerical checks instead of opening the visual demonstration; leave it disabled for normal use.

Core concept

Explore tones OR analysed Sound ↓ plate resonant-mode bank ↓ excitation position + resonance ↓ spatial vibration-energy field ↓ drift + stochastic grain movement ↓ progressive accumulation near nodes ↓ interactive Praat Demo display

A nodal region is a location where the chosen vibration field has little motion. Grain motion responds to the local field rather than to an arbitrary drawing. The particles have memory: changing a preset, frequency, exciter or plate does not directly teleport their positions.

Vibrating-plate model

The program uses a finite bank of modal shapes with resonant frequencies and frequency-dependent excitation weights. A virtual exciter at a chosen plate position favours modes that have appreciable displacement at that point. Moving the excitation point can therefore change the visible response even when the drive frequency stays constant.

ModelInterpretation
Free square plate — cosine approximationSymmetric and antisymmetric combinations of cosine patterns generate Chladni-like bending figures. This is an illustrative approximation, not an exact free-edge elastic-plate solution.
Simply supported plateUses sinusoidal rectangular-plate mode shapes and idealised Kirchhoff plate modal frequencies, with adjustable aspect ratio. These mode shapes are exact within the specified idealised boundary model.

The modal response depends on drive frequency, distance from resonant frequencies, quality factor Q, excitation point and relative tone amplitudes. Simultaneously excited tones contribute to a mean-square vibration measure: different excitation frequencies are treated incoherently, while same-frequency modal contributions can combine coherently.

Scientific scope: the simulation is intended for educational and artistic exploration. Real Chladni plates depend on material, thickness, mounting, exciter coupling and granular mechanics beyond these approximations.

How the sand moves

Each grain retains its own coordinates. At each simulation step, the script evaluates modal displacement and analytical spatial derivatives near the grains. A directional transport component encourages migration away from strongly vibrating regions, while stochastic motion, damping, mobility and excitation level control the visible agitation and settling.

Modal excitation → vibration field and gradient Local field + excitation → particle mobility Gradient drift + random agitation + damping → updated grain positions Near-quiet regions → progressively denser patterns

This is a phenomenological grain-transport model, not a collision-resolved simulation of real sand. High noise produces broad moving clouds; stronger directed drift and damping can create sharper patterns. The Reset sand control redistributes grains, while ordinary mode and preset changes preserve their positions.

Ten resonance presets

Each preset specifies a concrete combination of model, modal indices, excitation amplitudes and movement parameters. Presets differ in the way they create spatial structure, not merely in colour or drawing style.

1. Fundamental Resonance

A low-order bending pattern with a central nodal cross. The simplest starting point for watching grains migrate.

2. Symmetric Cross

A (3,1)+ symmetric mode, forming an orthogonal cross with curved corner structures.

3. Diagonal Interference

An antisymmetric (2,0)− mode emphasizing two diagonal nodal pathways.

4. Higher-Order Resonance

A higher (6,4)+ mode with nested diamonds, rings and smaller nodal regions; uses stronger drive.

5. Dual-Mode Interference

Two simultaneous tones excite (3,1)− and (4,0)−. Sand responds to their combined mean-square vibration field, favouring mutually quiet regions.

6. Near-Degenerate Modes

A simply supported, slightly rectangular plate (Ly/Lx = 1.06) with a slow frequency sweep between closely spaced (3,2) and (2,3) resonances.

7. Modal Morphing

A repeating frequency glide from (5,1)− toward (5,3)− and back, crossing intervening resonances. Existing particles remain on the plate.

8. Turbulent Sand

An overdriven (4,0)− diamond lattice with high mobility, strong random motion and reduced damping.

9. Quiet Nodes

A (4,2)+ mode using stronger directed drift, less random movement and heavier damping for relatively crisp settling.

10. Experimental Resonance

Three tones excite (3,1)−, (5,2)+ and (7,2)− with a lower Q. The pattern reflects a compromise among several modes.

Transitions: selecting the next or previous preset switches the excitation to Explore mode but retains the existing grain positions. The changing field guides their subsequent movement.

Explore and Sound-driven modes

SourceWhat drives the plate
ExploreInternally defined sine-tone excitations, selected through presets or modified with mode and frequency controls. Some presets sweep or glide automatically.
Sound: resonance-basedSelected Sound is analysed in successive windows. Energy captured around the virtual plate’s mode frequencies, weighted by exciter participation, drives the mode bank.
Sound: creativeSound-derived spectral centroid and spectral spread select and blend modal responses as an artistic rather than physically predictive mapping.

With a valid selected Sound, the Source button or O cycles through Explore, resonance-based Sound and creative Sound. Without a suitable Sound, the lab remains usable in Explore mode. In Sound modes the analysed timeline drives changing spatial excitation; the control keys , and . change its traversal rate.

The script analyses the recording before the visual simulation. It does not provide live microphone input or synchronized Sound playback from within the Demo interface. Short or silent files may be rejected by the analysis safeguards.

On-screen controls

ControlFunction
Start / PauseRun or pause the evolving particle simulation.
Reset sandRedistribute the particles and restart the progression.
◀ Mode / Mode ▶Move to a neighbouring excitable resonance in Explore mode.
Freq − / Freq +Retune the Explore excitation in quarter-tone steps.
Drive − / Drive +Decrease or increase the excitation level.
Grains − / Grains +Change the number of rendered and simulated grains.
Mobility − / Mobility +Change how strongly grains move under the transport model.
Speed − / Speed +Change the number of numerical simulation steps per drawn frame.
Nodal linesShow or hide the quiet-region overlay.
Vibration fieldShow or hide the calculated field beneath the sand.
Plate modelSwitch between the two mathematical plate models.
SourceCycle Explore / resonance-based Sound / creative Sound when a suitable Sound is available.
Next presetSelect the next of the ten predefined excitation configurations.
ExitEnd the simulation and clean up temporary objects.

Some controls are context-sensitive: mode stepping and frequency changes act in Explore mode, while selected-Sound modes follow the analysed recording.

Keyboard shortcuts

Click the Demo window to give it keyboard focus before using the shortcuts.

KeyAction
SpaceStart / pause
RReset sand
← / →Previous / next resonance (Explore)
↓ / ↑Frequency down / up (Explore)
e / EDecrease / increase drive
g / GDecrease / increase grains
m / MDecrease / increase mobility
s / SDecrease / increase simulation speed
NToggle nodal lines
FToggle vibration field
BChange plate model
OCycle source mode
p / PPrevious / next preset
, / .Sound timeline slower / faster
Q / EscExit
Case matters for paired commands: lowercase e, g, m and s decrease their values; uppercase versions increase them. p goes backward through presets and P advances.

Display and mouse interaction

Sand plate

The dominant visual area shows individual sand grains and the evolving patterns. Click within the plate to reposition the virtual exciter and alter which resonances are effectively driven.

Response strip

In Explore mode, clicking the response/frequency strip directly selects a new driving frequency. The selected excitation is applied without redistributing sand.

Field and node overlays

Toggle these optional displays to compare the calculated vibration structure with the actual distribution of grains.

Readouts

The interface reports the current preset or Sound window, plate model, excitation and simulation state. The running frame-rate indication is measured rather than guaranteed.

Requirements and initial settings

ItemDetails
EnvironmentNative Praat scripting and Praat Demo window; no Python, browser or external rendering dependency.
Audio inputOptional selected Sound object. Sound-driven mapping needs a valid recording; Explore mode does not.
Fast quality900 grains, 40-cell field resolution, up to 4 active modes.
Balanced quality1,800 grains, 64-cell field resolution, up to 6 active modes.
Detailed quality3,200 grains, 96-cell field resolution, up to 8 active modes.
Plate lowest resonance Hz0 uses default/automatic tuning; positive values establish a chosen reference for plate resonances.
Diagnostic self-testRuns model, transition and Sound-mapping checks without opening the demonstration.

Limitations & performance

Musical and educational explorations

Learn how a node forms

Choose Fundamental Resonance, reset the sand and observe how an initially random cloud concentrates along quiet pathways. Toggle Nodal lines to compare the computed field with the visible accumulation.

Compose transitions rather than static forms

Start with Symmetric Cross and advance to Diagonal Interference without resetting. The original grains must travel toward the new equilibrium, making the transition itself the subject.

Observe competing resonances

Compare Dual-Mode Interference with Experimental Resonance to see how several tones can generate quiet regions that differ from any one isolated mode.

Explore timbre as spatial excitation

Select a voice, instrument or electronic texture and compare resonance-based Sound mapping with creative spectral mapping. The two interpretations can create very different spatial histories from the same recording.

Compositional idea

Keep the same sand configuration and alternate between Near-Degenerate Modes, Modal Morphing and Quiet Nodes. Observe how speed, modal competition and damping produce different spatial gestures even when the particles are never reset.