art, software

My First Fractal Program

I really like fractals. But despite having worked with several programs, I never quite found the program that best suited me. I started learning about fractals with the discovery of Apophysis 2 around November 2009. Since then, I’ve used:

  • Apophysis 7X
  • Frost
  • JWildfire
  • Mandelbulb 3D
  • Incendia Ex

And for notable mention, there is also the fractal explorer in Gimp, but that’s very limited in how you can change the output.

Currently JWildfire is my favorite, but there is one thing that always kinda bugged me, and it goes into fractal theory. If you understand fractal theory (which I don’t fully yet, despite having read about it), you are aware of how fractals generate the sorts of images they do. It turns out, the cool 3D effect that you get from fractals comes from treating the alpha channel of each point on a logarithmic scale. That is, if you plotted all of the alpha channel values on a graph of final intensity (that is, the value it will become) versus the original intensity (noting that the values on both graphs range from 0 to 255), you would get a large constant curve. Don’t try mentally visualizing this; let me simplify this. What’s important in this is that it causes the brighter areas of the final image to become brighter and the darker areas to become darker. This gives a sort of glare effect like you would see on a ball.

Ok, so what’s the big deal? It turns out, because the 3D effect is generated this way, you can’t always rotate the image and see a 3D world. This only works for some things. But I, of course, want to do this for everything.

Some of the programs I listed above, with the exception of Mandelbulb 3D (which is very confusing and has a very messy GUI to work with) and Incendia Ex, work by the usual fractal theory, and thus all have the same problems I described. Mandelbulb 3D might not have the problem but you really have to understand the existing formulas to get what you want. Thus, it’s time to make something new.

Enter the new guy

Ok, not just yet. It’s still in production, but I do have a few pictures. The first picture is a couple circles linked back to each other.

Again with the circles. Notably, both images have a small blur effect, which is itself a variation (and not part of the renderer).

And then, of course, what I’m quite proud of…

my first Mandelbrot:

As it turns out, a Mandelbrot is rather easy to make. The formula is kind of confusing at first. Simply put, if you have a point at (x,y), the formula is:

z = z + x + yi

where “i” is the imaginary number and “z” is a meaningless complex number. You repeat this function until the magnitude of “z” is greater than two ( abs(z) > 2 ). The number of times you had to repeat that function to get it this way is used to determine the alpha channel value (the transparency).

Aside note: You will often see the Mandelbrot equation as:

z = z + c

but “c” is just a complex number which happens to be x + yi for Mandelbrots. This changes is for the Julia formula, when the initial “z” value is x + yi and the initial value for “c” is anything you want.

My program is still very young. It has no graphical user interface, and based on how liberal and flexible I want the thing, I’m not even sure I’ll be able to make one. lol


2 thoughts on “My First Fractal Program

Enter the space and time of my little world... Welcome Earthling.

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s