Skip to content
AJ Uppal
← Back to selected work

Personal project / Audio / WebGPU

murmuration.

A music visualizer that maps pitch, rhythm and stereo movement to particles.

Open project Live in a browser
Trailer 1:03 Download
Music credits

Filaments by Scott Buckley. CC BY 4.0. Excerpts edited and mixed for this trailer.

Screenshots

My work

The audio analysis, WebGPU compute renderer and interaction model.

Working with

WebGPU · compute shaders · Canvas · audio analysis

Inside the build

Audio analysis and particles.

Context

The particle field responds to several features of a track: pitch, tempo, transients, stereo position and quiet passages.

How it works

Chroma, spectral flux, per-band attack and center-versus-sides analysis produce separate signals. A compute shader uses them to move and stretch the particles.

In the work

Live in a browser. A recorded run at 1800 × 3043 measured 620k particles in 8.07ms of GPU time; 1.2M in 11.85ms. Hardware was not recorded.

Signal
Chroma key detection · autocorrelated spectral flux for tempo
Separation
Centre-versus-sides analysis gives 3.5× separation on the bundled track
Styles
Nebula · ink · constellation · ribbon · etching
More detail Controls and additional screenshots
The full murmuration window: a sparse violet and white constellation of particles on black, and along the bottom a bar reading Pink Floyd - Shine On You Crazy Dia..., 4:21 of 13:35, a waveform, then PARTICLE, CONSTELLATION, SENS 1.6X, FULL, 106 FPS and the key hints beside them.
The live interface

The interface shows playback, style, sensitivity, quality and frame rate. B changes the render mode; V changes the style.

Keep exploring.

The whole collection →
A sailboat beneath a rising sun, with a warm path of light across the ocean in Saltline. saltline Simulation / multiplayer Ember Wilds in Fallowmere at dusk: a level-30 character in a voxel landscape. Ember Wilds Voxel MMORPG Blockhold in a live battle: voxel towers defend a road against an incoming wave. Blockhold Voxel tower defense