Generated under CC-BY-NC 4.0
For commercial use: CLICK HERE
ExplanationFor those unfamiliar with the mandelbrot set, the visualizations we commonly see are a representation of complex number plane. The color at each position basically shows how fast a function explodes into infinity when you iterate over it again and again. The white areas indicate the locations where the function is stable and does not exceed some threshold. The function we iterate over in mandelbrot set is We start with z = 0 and c is our pixel’s position on the complex plane and then we see if z explodes into infinity or remains finite.
In almost all implementations of the Mandelbrot set, there's an early exit condition. If the complex number’s value becomes greater than 2, we can assume that the number will go to infinity and therefore stop iterating the function at that position.
Something really beautiful happens if we change the early out condition to check if only the real part of the number is greater than some arbitrary value. This is what causes the prevalence of the overlapping line aesthetic in my generator.
There are some obvious optimizations that could be made to this. You could write this as a shader and render it with the GPU rather than CPU, or use single instruction multiple data paradigm's closer to the silicon than I am in this webpage. But seeing how this already served its purpose in generating the images that I wanted, I'm going to leave it as it is. If you're interested in that topic, One Lone Coder made a great video about this.