CS 475 Project 7
This is my final project for CS 475 Parallel Programming, taught by Dr. Mike Bailey at Oregon State University. Implemented in Rust with Vulkan, using the vulkano
bindings to the Vulkan API, and the cpal
and minimp3
libraries for audio playback.
The project is an audio visualizer using a simple GPU-accelerated particle simulation. We render and simulate one million particles; with pressure interactions between particles in addition to gravity and drag. The constants of the simulation are determined by the amplitude and frequency spectrum of the background music. The effect of pressure on particles increases with audio amplitude, so when the song is louder the cloud expands outwards and vice versa. And each particle is influenced by a specific frequency range (indicated by its color): as the intensity of that frequency increases, the particle shines brighter, and the effect of drag is reduced causing the particle to move faster.
You can see a video of it in action here (epilepsy warning), but the video compression doesn't really do it justice. I recommend downloading and running it yourself: if you have Rust installed, all you need to do is cargo run --release
.
The default music is Pearl by Anamanaguchi. To listen to another song, you can replace the pearl.mp3
file and recompile.