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.
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.
Key features:
- Native Praat Demo visualisation; no Python or external graphics engine.
- Individual sand-grain motion, progressive settling and continuity across parameter changes.
- Two idealised plate models, frequency-selective modal excitation and adjustable excitation position.
- Ten defined presets, including dual-mode interference, mode sweeps and multi-tone excitation.
- Optional Sound analysis with resonance-based and explicitly artistic spectral mapping.
- Three graphical quality settings, optional nodal overlay and vibration-field display.
Quick start
- Run
Chladni_Resonance_Lab.praatfrom Praat. A selected mono or stereo Sound is optional. - Choose Quality: Balanced is a practical starting point.
- Choose a Start preset; try Fundamental Resonance to observe simple node formation or Modal Morphing to see continuous reorganisation.
- If a Sound is selected, choose Sound mapping: Resonance-based excitation or Creative spectral mapping.
- Leave Plate lowest resonance Hz at
0for automatic/default tuning, or enter a positive reference frequency. - Use Start / Pause or Space. Explore the frequency and plate controls as grains settle.
- Click the plate to move the exciter; click the frequency/response strip in Explore mode to retune the drive.
Diagnostic self-test runs numerical checks instead of opening the visual demonstration; leave it disabled for normal use.
Core concept
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.
| Model | Interpretation |
|---|---|
| Free square plate — cosine approximation | Symmetric 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 plate | Uses 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.
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.
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.
Explore and Sound-driven modes
| Source | What drives the plate |
|---|---|
| Explore | Internally defined sine-tone excitations, selected through presets or modified with mode and frequency controls. Some presets sweep or glide automatically. |
| Sound: resonance-based | Selected Sound is analysed in successive windows. Energy captured around the virtual plate’s mode frequencies, weighted by exciter participation, drives the mode bank. |
| Sound: creative | Sound-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
| Control | Function |
|---|---|
| Start / Pause | Run or pause the evolving particle simulation. |
| Reset sand | Redistribute 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 lines | Show or hide the quiet-region overlay. |
| Vibration field | Show or hide the calculated field beneath the sand. |
| Plate model | Switch between the two mathematical plate models. |
| Source | Cycle Explore / resonance-based Sound / creative Sound when a suitable Sound is available. |
| Next preset | Select the next of the ten predefined excitation configurations. |
| Exit | End 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.
| Key | Action |
|---|---|
| Space | Start / pause |
| R | Reset sand |
| ← / → | Previous / next resonance (Explore) |
| ↓ / ↑ | Frequency down / up (Explore) |
| e / E | Decrease / increase drive |
| g / G | Decrease / increase grains |
| m / M | Decrease / increase mobility |
| s / S | Decrease / increase simulation speed |
| N | Toggle nodal lines |
| F | Toggle vibration field |
| B | Change plate model |
| O | Cycle source mode |
| p / P | Previous / next preset |
| , / . | Sound timeline slower / faster |
| Q / Esc | Exit |
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
| Item | Details |
|---|---|
| Environment | Native Praat scripting and Praat Demo window; no Python, browser or external rendering dependency. |
| Audio input | Optional selected Sound object. Sound-driven mapping needs a valid recording; Explore mode does not. |
| Fast quality | 900 grains, 40-cell field resolution, up to 4 active modes. |
| Balanced quality | 1,800 grains, 64-cell field resolution, up to 6 active modes. |
| Detailed quality | 3,200 grains, 96-cell field resolution, up to 8 active modes. |
| Plate lowest resonance Hz | 0 uses default/automatic tuning; positive values establish a chosen reference for plate resonances. |
| Diagnostic self-test | Runs model, transition and Sound-mapping checks without opening the demonstration. |
Limitations & performance
- Model approximations: the free-square model is an illustrative modal approximation; the supported-plate model is exact only for its idealised boundary assumptions.
- Particle physics: grains follow a phenomenological drift/noise/damping rule, without full granular collisions or real-world calibration.
- Sound interpretation: resonance-based mapping estimates modal excitation from spectral bands; creative mapping is explicitly artistic. Neither reconstructs an actual plate experiment from arbitrary audio.
- Not live sound processing: Sound analysis is offline, and the lab does not play back the selected recording during visualisation.
- Rendering cost: higher grain counts, dense fields and overlays increase computation. Choose Fast when redraw becomes sluggish.
- Demo interaction: on newer Praat builds, running is divided into short takes followed by a safe input pause; use Start / Pause to continue.
- Display shape: the layout is optimised for a widescreen Demo window; other proportions can visually stretch the plate.
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.