Latest exploration…
Made with OPENRNDR but running in the browser 
I decided to do some algorithmic botany. I was thinking how to express my interest in biology and artificial life forms. I wanted to have a formula which, when supplied with 1 parameter - time or rather progress in lifespan, would always reproduce a complete specimen in this moment.
The visuals for this piece are my first serious use of OPENRNDR. It’s a spiral spectrogram, I’m using minim for the audio file reader and FFT.
I used to do this sort of thing in Processing, but OPENRNDR is a much better fit for me, so glad I found it.
The Kotlin/JS + WebGL support is shaping up. I have made some small works with it.
Check them out here:
http://fileunderpopular.com/V/O-01-01/
http://fileunderpopular.com/V/O-01-02/
http://fileunderpopular.com/V/FALL-01-01/
http://fileunderpopular.com/V/SLAB-01-01/
http://fileunderpopular.com/V/SLAB-01-02/
Nice one @ricardo
Nice colors! Did you map the trail value to a color range? Or maybe you did something else?
I’m enrolled in the same workshop as @ricardo and this is my result:
Very cool to see your works online @edwin!!! Looks like you’re having fun ![]()
I spent this week trying to move lots of particles smoothly.
This is with 150.000 particles flocking at 60 fps. The tricky aspect is figuring out how particles can influence each other without comparing every particle against every other particle, as that would imply 22.5 billion comparisons.
Can you share how the number of comparisons is reduced?
I used a simpler variation of the Dynamic Hashed Grid explained at Scalable GPU Fluid Simulation – Wicked Engine Net Basically, I created a few buffers containing information about the particles with the goal of subdividing the space into cells. I used 64x64 cells, so 4096 “buckets”. Then, for each particle I calculate which cell is it in, then do calculations using particles in the 3x3 surrounding cells. This way the number of comparisons is greatly reduced.
In the image above I still had some glitches revealing the existence of such cells, which I improved later.
I used OPENRNDR to produce to more music videos, they’re both based on FFTs that drive the visuals
I really love being able use post-processing filters ![]()
Very nice
The music too. I enjoyed the second one most.
Do you have ideas for next iterations? Do you want feedback? 
This is how I use OPENRNDRD recently - interactive projection (kinect) on a layer of ultrasonic mist:
Hi abe - sorry for the late response. Thanks for comments as always 
I’m going to be focussing on music for a while, but when I get back to visualizations my goal is to generate more complex procedural shapes and have selected frequency/note ranges (indirectly) drive parameters for that shape. The stuff I’ve posted recently is basically all versions of “take an FFT, map each bin directly onto a the color or dimensions of a single simple thing/shape”.
Something like your post above must have a certain number of underlying parameters that can be tweaked in real time. So that finer visual details can be controlled by higher frequencies and larger structural parameter can be controlled by lower frequencies - hopefully making the whole thing “wobble and vibrate” in response to the music.
That’s the plan anyway 
negentropy-013
I made this video just before pandemic, the first sketch of something to be displayed on a giant LED ceiling 20x4m, in yoga studio in San Francisco. Never happened. Now I paired it with generative music from aimi.fm
Spent the last month on Space Colonization, these are some interactive versions using orml-style-transfer to generate non-existent leaves, city aerial views and more 
2D circle pairs with gradients. A bit convoluted: poissonDiskSampling with noise for uneven distribution, then delaunay > voronoi, I get the centers of each cell and the distance to the contour to determine the radius. Colors from PaletteStudio.
For this variation I implemented ShapeContour.area and ShapeContour.centroid2D based on openFrameworks’ methods. By using the centroid it feels more orderly than by averaging contour vertex positions to try get the center.







