*p5.brush
p5.js 환경에서 자연스러운 텍스처를 탐구하는 아티스트·디자이너·취미자를 위한 다목적 라이브러리
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Ten GPU shader worlds that react to every part of your music. Windows tray app (Rust + wgpu) + WebGPU browser player + Chrome extension.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
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.