I want to create an organic pattern like plasma or lava. Many examples use a noise function (like Perlin noise). Is a noise function required or are there other ways to do this?
That’s funny, I was just in a wikipedia hole last night on OpenSimplex, Worley noise, and diamond-square.
I don’t think these are based on Perlin noise, but check out the “plasma 3D” and “cube fire 3D” patterns in the pattern library. Both render down to 2D.
It’s not up to my normal standards for posting to the patterns library, but it seems to be working!
I threw in a 1D render() for you to try out as well.
Note that I think most plasma effects, including the one you posted, will be cycling a thinner stripe through the Perlin’s height map output. I’m only cycling hues through it, then panning the viewport through the noise in a circle.
It looks good on your 2D LED matrix but not so good on a strip. Might look better with a denser 144/m strip but with the gaps in my 60/m strip it doesn’t look smooth. The pattern on the strip just kind of sloshes back and forth, which makes sense looking at the 2D matrix. I had some fun messing with your code but never came up with anything good. It may not be possible to get a good plasma on a 60/m strip. I did enjoy digging into your code, I learned a lot. Thanks for giving me so much code to tinker with.