Spent a while working on this one. It's a music visualizer using a 10x10 grid of cubes. I tried a lot of different approaches to get this working. It uses Python with librosa to do the audio analysis, using STFT to pull per-frequency amplitudes.
My first approach was to use a driver-driven value in geometry nodes, which would have worked for a sigle value, but I couldn't figure out a way to pass instance data into it. That would have been perfect if the driver node had an input socket that it could work with, but it doesn't.
Second approach was to bake the data to F-Curves, thinking I could use arbitrary tracks for the different frequency bands, but I couldn't figure out how to sample at an offset of the current time to get the wave effect working right.
Third approach, which is this final result, was to bake the STFT to a grayscale image, with each column representing a frequency and each row being a volume of that frequency at each centisecond slice. Then I loaded that in as a texture and scaled instances by sampling into that texture based on the current frame. That worked much better.
Rendered in Eevee, because Cycles was going to take at least a dozen hours. This instead took just under an hour.
I might come back to it and see if I can add some motion to make it resemble a particle system, with each cube a constant size, moving up from the bottom and disappearing.
Track is CUM MONOLITH by Emma Essex
#Blender #Blender3D #Blender3DArt #3DArt #Music #Video #Mograph #MotionGraphics #AudioVisual #MusicVisualization #GeometryNodes