A motorized device that turns sound into visual art. By vibrating a thin aluminium sheet at specific frequencies, sand self-organizes into geometric patterns that reveal the standing waves hidden inside the material.
When a surface vibrates, some areas move violently while others stay almost perfectly still. These still zones are known as nodal lines. If you scatter sand across the plate, the vibrating sections kick the grains away until they eventually settle along these nodal lines. The result is a physical map of the sound wave geometry.
The patterns change completely depending on the frequency. Every note has its own unique fingerprint, and even a tiny adjustment can shift the sand from one complex shape to another. That is the best part of Chladni figures: a simple flat plate can produce dozens of different designs just by turning a knob.
The hardware consists of a 1mm aluminium sheet, chosen because it is thin enough to vibrate clearly across a wide range of frequencies. A speaker mounted underneath drives the movement, powered by a dedicated amplifier. I added two potentiometers to the setup: one for volume (gain) and one for frequency control.
I used an ESP32 to generate the frequencies using its internal DAC. The firmware creates a sine wave through a 256-point lookup table, which is updated by a hardware timer running at 40 kHz. This ensures the output stays smooth and stable without putting any heavy load on the main code loop.
One interesting challenge I ran into was that the ESP32's WiFi and Bluetooth radios were leaking audible interference into the signal. It created a constant clicking noise that ruined the effect. To fix this, I set the firmware to explicitly kill both radios at startup, which cleared up the signal immediately.
I also implemented a hysteresis filter for the potentiometer readings. This prevents the frequency from flickering or jumping around due to electrical noise. The value only updates when the physical turn exceeds a specific threshold, making the controls feel solid and predictable.
The entire mechanical structure and the enclosure are original designs that I modeled and 3D-printed from scratch.
ESP32 firmware featuring the sine wave generator, hardware timer, and pot control.
view on GitHub →