I’m completely stuck with fractals nowadays, especially famous Mandelbrot and Julia sets. Here is my first definition which estimates Julia sets. There are lots of applets about this fractal calculations on the internet because the computational method is very simple, (and generally people love them because of this dilemma between simplicity, chaos and infinity). It is the iteration of a single function over and over again and placing points on the complex plane (not the cartesian plane). Here, it was my first recall of complex numbers, now I’m happy I’ll be able to generate something out of it. At, each iteration, detail level of the shape increases, infinitely, if Rhino could hold infinite number of points. These sets have many mathematical explanations but I chose this one as it is very clear and understandable.
This is a common brute-force approach, distributing points, converting them to complex numbers, using the expression ( usually in the z2 + c form, where c is a constant complex number and z is the variable complex number), then checking the modulus of the resulting complex number against a value (usually 2). I know I couldn’t tell the whole story here, if you are interested, there are tons of explanations and examples on the web. Here are my first outputs;
expression: z2 + c nr. of points: 30000 nr. of iterations: 22 constant c : 0.293542 + 0.493596i
expression: z4 + c nr. of points: 20000 nr. of iterations: 14 constant c : -0.241306 + -0.528048i
expression: (1- z3 / 6) / ( z - z2- 2) + c points: 20000 iterations: 16 c : 1.191216 -0.848560i
I use a vb.net component to calculate the expression. You may change it there. Here is the Grasshopper3D definition, if you are interested: [GHX: 0.9.0006]
Also there is an opportunity to create interesting animations of these forms:
And of course color coding, according to the escape value:
expression: (1- z2 / 2) + c points: 50000 iterations: 11 c : 1.815215 + 0.071440i
This is the color-coded version of the same definition: (right-click and save target as…): [GHX: 0.9.0006]
Please be careful when opening these definitions, they can exhaust your CPU and Rhino may stop functioning while Grasshopper calculates the points and iterations. But once you’ve done, you can play with, iteration, c, d and escape values.
Here is a better explanation:
Julia studied rational polynomial expressions of various degrees (e.g., z4 + z3/(z + 1) + z2/(z3 + 4z2 + 5)+ c), but here I will limit the discussion mostly to the family of sets generated by the special quadratic case form f(z) = z2 + c. Here z represents a variable of the form a+ib (a and b real numbers) which can take on all values in the complex plane. The quantity c also is defined as a complex number, but for any given Julia set, it is held constant (thus it is termed a parameter). In other words, there are an infinite number of Julia sets, each defined for a given value of c, though the ones with smaller values of c (i.e., |c| < ~ 2) are particularly interesting graphically.
Used once, the simple expression f(z) = z2 + c has little potential to create anything interesting—it is only by repeatedly iterating it that the Julia set can be defined. When the output of the expression f(z) is fed back into the expression as a new value of z, this is called iteration, a type of feedback process. Thus, for any n:
zn+1 = f(z) = zn2 + c
and each new computed value of f(z) becomes the subsequent input value of z via the feedback loop.
Michael McGoodwin (web site)
It would be great if I could implement the inverse iteration method, reducing the CPU load and iterate on the boundary of the shape much more deeper.