*p5.brush
p5.brush.js is a versatile library for the p5.js ecosystem, tailored for artists, designers, and hobbyists who wish to explore natural textures in generative art. This library extends the drawing capa
Ten GPU shader worlds that react to every part of your music. Windows tray app, browser demo and Chrome extension.
PluginsWGSL · RustGitHub @CurioCrafterOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Ten GPU shader worlds that react to every part of your music. Windows tray app (Rust + wgpu) + WebGPU browser player + Chrome extension.
Taken from the repository README
Loading the full README.
Read the full README ↗Ten hand-built GPU worlds that react to every part of whatever you're playing.
Windows tray app in Rust + wgpu · the same WGSL shaders in the browser and a Chrome extension (WebGPU)
▶ Try it in your browser · Download for Windows · Website
Most visualizers make things bigger when the music gets louder. This one splits the music into separate signals and gives each one its own job in every scene:
| Bass Drop: a club with a pumping woofer, lasers through haze and a crowd that jumps on the beat | Ferrofluid: magnetic liquid on a mirror floor, spiking to the spectrum |
| Data Bus: a neon line-art tunnel; viruses get deleted on the kick and a worm lunges on the drop | Pulse Ring: a reactor of rings, a live waveform ring, a vortex and shockwaves |
| Neon Horizon: synthwave with mountains built from the last seconds of music | Reef Arcade: a pixel-art reef; a diver spears lionfish on the beat, with a boss on the drop |
| Deep Wreck: an ocean liner on the sea floor, porthole spectrum, sonar, a whale and jellyfish | Moonlight Piano: a lake and moon; the keyboard lights the notes being played |
| Aurora: northern lights over a mirror lake; a wolf howls on the drop | Classic Bars: a hi-fi rack with LED analyser, VU meters and a scope |
Download MusicVisualizer.exe from Releases
and run it. It's a single 5 MB file with no installer. Windows SmartScreen may warn because the exe isn't
code-signed: choose More info → Run anyway, or build it yourself.
F for full screen.S: settingsM: mouse controlEsc: back / hideIt hears whatever your PC plays through WASAPI loopback (no virtual cable). It runs at below-normal priority so games always come first. One frame in flight keeps the latency low.
cargo build --release # target\release\MusicVisualizer.exe
The web player runs the same shaders with WebGPU (Chrome/Edge). It can use a demo song, a shared tab's audio or the microphone. The Chrome extension adds one-click capture of the current tab's audio: see extension/README.md.
A look is one WGSL file: fn look(fc: vec2f) -> vec4f, with the music in a uniform and an audio texture.
// name: My Look
// palette: #ff2fa6 #8a3cff #22e0ff
fn look(fc: vec2f) -> vec4f {
let p = centered(fc);
let r = 0.35 + 0.25 * G.kick + 0.1 * spec(fract(atan2(p.y, p.x) / TAU));
var col = pal(G.beat_phase) * glow(abs(length(p) - r), 0.02);
col += vec3f(G.drop) * 0.3;
return vec4f(col, 1.0);
}
Test it without opening a window: MusicVisualizer.exe --shots out shaders/looks/my_look.wgsl renders it with a
built-in test song and saves PNGs. The full contract is in docs/WRITING_LOOKS.md.
src/analyzer.rs FFT bands, kick/snare/hat onsets, tempo + beat phase, drop, energy, piano keys
src/capture.rs WASAPI loopback capture
src/render.rs look pass (with last-frame feedback) → bloom → composite + glass UI, wgpu / DirectX 12
src/app.rs tray, dockable window, settings panel, mouse control, auto-pick
src/media.rs now playing + album-art palette (Windows media controls)
shaders/ common.wgsl (the contract), post.wgsl, looks/*.wgsl
extension/ WebGPU player + Chrome extension running the same shaders
site/ the project website
Made by Andrew Rainsberger. MIT licence.