I've been looking into procedural plant generation recently. One of the aspects I'm interested in are methods for producing leaves, petals and flowers. While doing some digging around that topic, I stumbled upon the so-called superformula - an equation that produces some funky-looking curves.
The superformula was invented by Belgian mathematician Johan Gielis. Incidentally, he also wrote a book called "The Geometrical Beauty of Plants" (title probably alludes to ABOP), so yeah, he is definitely interested in plant synthesis :-)
Anyway, the superformula equation given in 2D polar coordinates is as follows:
r(φ) = (|cos(0.25m1φ)/a|n2+|sin(0.25m2φ)/b|n3)-1⁄n1
...where a, b, m1, m2 n1, n2, n3 are parameters that you can tweak to achieve a different look for the resulting curve.
Let's plug it into Shadertoy and see how it works:
Click to go to Shadertoy and see the source code
Play with the parameters to figure out how each of them affects the result.
I added offset/rotation/scale parameters to the curve function to allow drawing multiple curves at different locations:
Like this post? Follow this blog on Twitter for more!