Favorite Fractal Program

tl;dr: Do you have a favorite fractal program? Do you want to talk about it? Please let me know.

Sometimes I am not sure to whom I am writing. I am just trying to make it a habit to write and create art, and to not get bogged down by introspection and planning.

The recent posts have been like a tutorial. I plan to continue this theme for a few more days. Writing a tutorial implies someone, the reader, you, wants to know “how”. And that implies someone wants to make similar images.

I know that when I see art I like, after simply appreciating its existence, I want to know the “how”. What materials were used, whatever the origin, brushes, computer programs, mathematics? What was the artist thinking? There will be many days when I post a picture on this blog without any explanation, after all, that is better than a blank page. But I will strive to add a few words when I can. These “how” pages, has value. Even if incomplete.

What if someone wants to create pictures like these? Well first, I think that would be great. Please create and share. If you want, you can share them here. I would be honored to host them.

You do not have my software, and my software will never be ready to share. You do not have to write your own software, you can but it is not necessary. There are plenty of free and commercial programs you can use. I am not familiar with most of them. If anyone is interested, I could do some research and create a resource page.

I need help from you. The tutorial would be better with specific examples. Something the reader can build and experiment with. Software that only runs on my computer does not meet that need. If you have a favorite program that is available to the public, would you be willing to show how to apply these concepts in that software? Just to be clear, leave the full “how to use the program” tutorial to the publisher. I am thinking just a quick “In software ___ this concept is called ___, and it is found in menu/form ____”

Smooth 1D Colors #7

fractal 18

In the previous post, the color noise was tamed by adjusting the color range. The fireworks in yesterday’s image is nice, and easily qualifies as completed art. But that is not the only choice, less fireworks and more emphasis on shape as with today’s image is also a worthy goal.

For today’s image, the linear color scale knob is not enough. The blue in today’s picture, and the sparkly areas of yesterday’s have higher iteration counts than the surrounding area. But the distribution of counts is not uniform. The rate of change is higher in the higher count areas.

A linear scale adjustment can change the overall rate of change, but the relative rate of change between the high and low count areas will remain the same.

The different rate of change is desirable for image composition, it directs focus to where it belongs, it helps the foreground pop out from the background. But how much is the right amount? Of course there is no single answer, it depends on moods and tastes. We need another knob to turn.

So for today’s image, I use the square root of the scale-adjusted iteration count for the color index. The square root function serves to squeeze together the high count values, and reduce the color variation in that area.

Smooth 1D Colors #6

fractal 17

Now that is much better. The only thing that has changed is the scale on the palette. The colors palette is “slowed” by a factor of 50. In my program, this value is called color entropy. Previous image = 0.16, this one = 0.0032.

Notice that the color bands are gone. The colors are still set by the integer valued escape count. The only change is the change in the palette scale factor.

Discrete color values do not matter in deep zooms.

The observation should be intuitive, we have large numbers for the escape count, then apply a very small scale factor to the palette. So each step if very small. The difference between two adjacent colors is imperceptible.

Suppose color 0 is black and color 1 is white, your monitor can display only 256 shades of gray between these two color. Put into the 0-1 range, your monitor has discrete shades at each 0.0039 step. In today’s picture, the fractal calculation is scaling the palette by a factor of 0.0032. Each “fractal step” is finer than the “display step”.

This series of post is leading up to different kinds of smooth colors. The conclusion, “do deep zooms” is not the final answer, just the first observation on the journey.

Smooth 1D Colors #5

fractal 16

Obviously, this image is not meant to be visually appealing. It is an example of what goes wrong. Fractal artists see these things quite often, and they are quickly remove from the hard drive and computer memory. Thus propagating the illusion that all fractals are pretty.

So what went wrong, and why? This image is deep zoom into an interesting area of the Mandelbrot set called a Misiurewicz point. The problem is the palette is set to the same scale as in the previous image. You can see the same color steps if you look at the few areas that are not just random colors.

If you have a map, this Misiurewicz point is near -0.2073 + 0.6947i. The horizontal (x) range of the image is +/- .0004.

What is most significant is that the escape count ranges from 75 to 1921, with average value of 500 (and for the statistic nerd, standard deviation of 22.17). These are much larger numbers, distributed over a larger range than in the previous image. So most pixels get assigned a (fapp) random color with no apparent correlation to adjacent pixels.

In the previous image the escape count range was 2 to 481, with average 4, and sd=2.18. Many fewer colors, and smaller variations.

Smooth 1D Colors #4

fractal 15

The sharp contrast in the color bands works best for two complementary colors. Black and white is probably the best choice. Today’s example feature a more gradual color change. From white, through some shades of brown and then shades of blue. The interior is set to the traditional black.

Back in the day, when fractals and personal computers were new, most color graphic cards had a 256 color table. Each pixel is assigned a color number from 0 to 255 in memory, which is used to look up a color in the table. 16.8 million total colors were possible, but only 256 could be displayed at any one time. That graphics design worked out well for fractal coloring which is basically paint-by-numbers. The original DOS fractal program, Fractint, had a feature that would rapidly change the color table in the graphics card which created a trippy psychedelic effect on the fractal.

Now (and for the last 20 years) computer monitors are capable of displaying all 16.8 million rgb colors.

The palette used in this picture is actually a mathematical formula that takes a (continuous) real number and directly generates a color in the 16.8 million color space.

Even if you define a palette as a list of discrete colors, then by using interpolation it is possible to generate a smooth transition between any two colors in the list. It makes sense to ask for color number 3.2, which would be a blend of 80% color 3, and 20% color 4.

So palettes are, or can easily be made into continuous functions that convert real numbers to colors. The discrete colors in this picture are due to the discrete nature of integer numbers, the escape count, and not due to any limitation in the color palette.

When palettes are defined as continuous functions, it is possible to scale palettes to speed up or slow down color transitions. For example instead of using color(x), one could use color(a*x) where a is a scale factor. The only difference between today’s picture and yesterday’s is a color scale factor of 1/3.

And now, a special addendum for those suffering with technical pedantry syndrome. Yes, 16777216 different colors is still a discrete set of colors. And yes if you look really hard you can see the difference between red #A00000 and red #A10000 which differs in red intensity by 1/256 of the full gamut. But for our purposes, our displays show a continuous range of colors.