Simulating Julia morphings
1 0 1K (1 Today)
Published: April 9, 2019
Almost all of my images from the last few years are the result of using Julia morphings that occur in the Mandelbrot set. It takes a lot of time and effort to find their location and render them. Therefore it is extremely beneficial to have a good idea of what the result is going to look like. If you explore the Mandelbrot set a lot you can do a simulation in your head. You can then zoom to the location and see if it looks any good in reality. In this article I give information about Julia morphings and how to simulate them with a computer instead, to get a better idea of what to expect when zooming in on the Mandelbrot set. I also talk about whether such a simulation can replace real renders of deep locations.

## Julia morphings

Mathematically, I define a Julia morphing as a transformation of the complex plane of the form
c -> f(c) + coordinate
where f is a polynomial function. For the Mandelbrot set this is:
c -> c^2 + coordinate

It follows that each coordinate in the complex plane then defines a Julia morphing.

I call such morphing a Julia morphing because, by definition of the Julia set, when the same Julia morphing is repeated infinitely many times, those c that have not been sent to infinity form the Julia set of f(c) + coordinate. A Julia morphing is like a single iteration.

There's also another way to look at it. This video shows what repeating a Julia morphing does to the plane. It shows the Julia morphings being applied one by one:

As you can see, a Julia set is approached as the number of morphings increases.

## Julia morphings in the Mandelbrot set

Julia morphings occur inside the Mandelbrot set. All the variation of shapes that you can find is caused by it.

First let me say what I mean by a region. In fractal software you always have a particular region visible, usually determined by the center coordinate and the image width or magnification factor. It's really just a rectangular subset of the complex plane.

Let a region with zoom depth 2^n (and that contains a part of the Mandelbrot set, otherwise it's silly) be given and call it R. Then you can choose a minibrot inside it. Let the depth of the minibrot be 2^m. Then at the location of the minibrot and at the average of the depths 2^ ( (m+n)/2 ), it looks like the region R with a Julia morphing c -> c^2 + coordinate applied to it where the coordinate is the coordinate of the minibrot.

What that means in practice is: if you see some shape in the Mandelbrot set, anywhere, and you zoom further in on somewhere that leads to a minibrot, then when you're half way there you get a Julia morphing of the shape. Here's an example image of Julia morphings occurring in the Mandelbrot set, taken from my previous journal Newton-Raphson zooming and Evolution zoom method.

In the left image, 2 points are labeled 1 and 2 respectively. Zooming in on the point labeled 1, which is outside of the "shape" yields the middle image, a doubling. Zooming in on the point labeled 2 yields the right image, a morphing.

## Simulating Julia morphings instead of zooming deep!?

I just mentioned two paragraphs ago what a Julia morphing is, with mathematical precision. You can find them in the Mandelbrot by zooming deep, requiring high-precision calculations and therefore long render times. Does the fact that the morphings seen in the Mandelbrot set correspond to Julia morphings mean that they can be pretty easily simulated without having to zoom deep at all? All you have to do is apply c^2 + a coordinate of a minibrot before iterating c!

Unfortunately the answer is no. The reason is that morphings in the Mandelbrot set are not exactly the same. It's only approximately true, and the approximation is better the deeper you zoom. The problem is that minibrots (including the entire set) deform the plane as well. The effect is so strong at low depths that the technique of pre-calculating a Julia morphing result is completely worthless, in fact. Note that repeatedly using the same minibrot to get another Julia morphing effect means that the depth of the result is averaged with the minibrot depth again and again. Eventually the depth of the morphing will be roughly the same as that of the minibrot. The morphing is then just a ring around the minibrot, highly deformed by the minibrot. Clearly a simulation doesn't work there.

To which extent simulation of Julia morphings can be used to reduce render time is something that still requires research. As long as the minibrot is so small that its influence on the shape of the morphing is negligible it should be possible to use a simulation, but it's not clear to me when that is, and what happens when multiple Julia morphings are simulated.

## Simulating Julia morphings to test ideas

As said, Julia morphing simulation is not a replacement for rendering deep zooms, but it can still give a good impression of what the real result looks like. For that I made my own program.

No other fractal software currently implements Julia morphing simulation. Ultra Fractal is actually flexible enough to do it with layers of transformations but that's not user friendly and doesn't allow fast exploration. I wanted a program that makes testing the effect of Julia morphings as easy as possible: with a single click.

ExploreFractals.exe   518 KB
mega.nz/#!Z88Q1QiI!pwRXrL6c3UN…
CRC32: 76357D65
MD5: 2915B31F8CC4C15B0F3EA293AFC63A22

With this program you can test the effect of inflections / Julia morphings on the Mandelbrot set with powers 2, 3, 4 and 5. This works by transforming the plane and then actually rendering the fractal. Each click adds an inflection at the location of the cursor. You can also work with Julia sets. You can go somewhere in the M-set, then use "Toggle Julia" which uses the center of the screen as the seed for the Julia set.