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.

]]>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.

]]>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.

]]>You probably would have chosen different colors. Perhaps opposite or adjacent colors from a color wheel. But it is still trying to find an interesting way to arrange colors in concentric, warped circles.

The focus should be the Mandelbrot set in the middle, not the surrounding color bands. OK, a mathematician may be interested in the equipotential line. But for the rest of us, it is a distraction.

The palette used here is actually my favorite palette, I will use it for the rest of the pictures in this series.

]]>Not that we are any closer to smooth coloring. This is just another example of non-continuous colorings.

(Introspective diversion: A normal blogger would combine these multiple posts into a single article. I am trying to get into the habit of making daily posts. Trying to write a large post a day will result in immediate failure. The article never feels complete, and often never gets posted. Whereas, adding one small increment to the story each day is possible, and feels like success. I can find the motivation to add one more picture to the story each day.)

]]>You likely have seen fractal images that look like the above. Especially in older books or on old websites. I cannot say why the pictures were produced like this. Perhaps the authors liked the strong contrast between colors, or maybe it was a limitation of their software, or they may have been demonstrating a mathematical property. Whatever the reason, many older fractals look like this.

I created the image to provide a starting point for a series of technical posts on Smooth coloring in fractals. There is something artistically intriguing about the hard contrast of black and white. I want to explore that in the future. But today’s post is about some technical aspects of creating fractal images.

The next few post will be somewhat technical. They should still be accessible to everyone. But beginner level knowledge of escape time fractals, of which the Mandelbrot set is the most famous, is assumed. The introduction in Mandelbrot set and the section on Escape Time Coloring will provide sufficient background.

The output of the fractal calculation is an integer, the number of iterations before the orbit exceeds a threshold escape value. Ignore the details in that definition, all that really matters is that the result is an integer. You get discrete, non-continuous values. Not continuous values like real numbers.

The coloring algorithm assigns a color to each value, since the input is discrete, the output, the colors are also discrete. In this case even numbers are black and odd numbers are white (or maybe vice-a-versa, I do not remember).

]]>So I am probably all alone here, and I am writing this post to myself. I will go ahead and be self-indulgent, after all, no one will notice. If you happen to read this, and you are not me, go ahead and skip to the next post. I will not be insulted.

The low hit rate is OK, I do not expect more at this time. I have not started promoting the site yet. I really need to be consistent and regularly put up new posts. My last posts were two months ago. Interestingly, the hit rate was slightly higher for a short time.

So I need to make posting a habit. This is the usual “I have been busy / I will get better” post that you see in blogs that are dying or never get started. I know, I have been there myself several times. I do not want that to happen again.

So, starting now, at least one post a day. Even if I have nothing to say I will write something. Even if it is solipsistic introspection like this. Things improve with practice. Hopefully, both the quality and quantity of my posts will improve with practice. Hopefully this public commitment keeps me going.

]]>