Switching and Switch Formula Classes
Switching
Those who are already familiar with the mathematics and mechanics
of switching from Mandelbrots to Julias may like to skip to the section on
Switch Formula Classes.
If you're not into the mathematics, then the best way to explain switching is to
simply say that most formulas can be viewed in one of two ways - as a Mandelbrot
or as a Julia. (Note that the original Mandelbrot iteration replaces z
by z^{2} + c; here we're using
"Mandelbrot" and "Julia" in a more general sense as modes of
iteration.)
What's interesting and artistically useful about this? For every location on a
Mandelbrot there is a corresponding Julia, and the geometry of the Julia
corresponding to a given point on a Mandelbrot matches the local geometry around
the point on the Mandelbrot. Hence if you find an area of a Mandelbrot that's
visually interesting, then you can get more of the same by switching to a Julia
from that area of the Mandelbrot.
Another way to put this is that a Mandelbrot is like a "map" of the
Julia for the same formula.
The mechanics of switching in Ultra Fractal are simple: just press F7
or click on the "Switch" icon in the top toolbar and then move your
mouse pointer over a switchable Mandelbrot. Previews of the corresponding Julias
will appear; to actually switch to one of the Julias click the left mouse button
and a new fractal window will appear.
Let's backtrack a bit to review what UF formulas do and how do they do it.
Formula iterations depend on two complex numbers, z
and c. UF does the following for each pixel
in the image.
Initialize: Set the initial values of z and c.
Iterate: Each iteration generates a new value for z, generating a sequence z[0], z[1], z[2], ..., with each new z[n] depending on the previous value z[n-1] and on c. (It's also possible to change c, but this is not usually done.) Iterations continue until one of three things happen:
the maximum iteration limit is reached; or
if Periodicity Checking (in the Formula tab) is On, periodicity is established; or
z is such that the Bailout criterion is reached
The mathematical difference between Mandelbrots and Julias is
straightforward. For a Mandelbrot of the form z[n] = f(z[n-1],c),
where f(z,c) is some function such as z^{2}
+ c, the initial value of z is
the same fixed value for every pixel (often it's zero), and the initial value of
c is the pixel value. The corresponding
Julia uses the same f(z,c) but different
initial values; the initial value of z is the pixel value and the initial value
of c is the same for all pixels. The initial c value for a Julia is often called the
seed.
In UF, when you use F7 or the Switch icon to
switch from a Mandelbrot to a Julia, the place where you click in the Mandelbrot
image is used for the Julia seed, the initial c.
Similarly, when you switch from a Julia to a Mandelbrot, the place where you
click is used for the initial value of z.
Switch Formula Classes
One of the limitations of UF5's new class formulas was that they did not allow
the use of Ultrafractal's built-in switching facility. To get around this
limitation, Dave Makin wrote mmf5.ufm:Generic Switch Formula, which makes it
possible for formula authors to write class formulas that allow switching.
To use Switch Formula objects simply choose mmf5.ufm:Generic Switch Formula as
the main fractal formula (instead of using Standard.ufm:Generic Formula) and
then you can plug in any "Switch" class formula in the usual way. At
the moment there are Switch formulas in mmf.ulb and jlb.ulb.
The following upr is a simple example. You'll see the usual Mandelbrot image,
but it's generated in two ways. the bottom layer is Mandelbrot done the standard
way. The upper layer uses Generic Switch Formula and Switch Transform
Formula from mmf.ulb to get the same result. (There's no reason why you would
want to do that, except as a starting point.) Try switching using each of the
layers and see that you get the same results (if the Julia seed in the Standard
method matches the Julia Constant in the New method, of course).
Formula_Tutorial_1 {
::cYpm0jn2tX1SvtNMM47BI/HM0pNMUHbjmmsOoLdbdADoDFI9egqFdiw0DDJ58Y/6Hlsdbe4+
4yuNgigKyvPSxPSRXZZlem86xjSS8CvEokbNWVjkt8hGvxKYyl5kktCufN9qLzSWDiVr90Ln
nlIZ7BrjWE4WaBuw7okfyUgL5GZD8l8iJ5TnUklNnMeUEcMNlsavwopkfBbJJmaWpwvnmnll
oA/aDniZ3LqZO34RKWdtQvqlHo9gleRW60JIW2KNNf8oq2bbEhitTEgEiVNYLXDl/maqqSqE
SQjXMKRpqmm2UpIB8YAt7pkfAawKKXsV4LX3V9kk6l1LVGOQ3j1T/hcq2EP48MrnmNJLEnoB
A40LyTLCXugBGfDTXiG7YoY6Gm0VyQNuzUoiswRRJ6OPtNENOwBMsOeKrHdq2CbEw2wFsnvl
pXB0iI/Ol5rSUJjFeaj8xrv7ubX2WpPggdBQ9lcbQOkW6mlraFnWN9UndHDOHkMmUXMXHA8U
U9KDWVDEjoX++umwJuOpJcq3D6Iv+tz3rEve9gCsZLOelNZgigx51idwLWG3wEyH2XD0vJ2A
WUV9njxaMea+LUOhAYaQ/FzP35CFTKDIo5f/ipDy3HSOxv7D/5jfqkcufhW4NSO9ejTEefOY
Q+TAxwCeZ43nmpOeg7+gudbjuMEYH5NZf8c37B+Ttw3LB8tl9MSVvKJMkaqgjtu3OB9zKFBt
SodIt2dsREoDtRDJOjUwpXWMbe+nzw/GPC7wnjVK04D/D2itwjPKYWeaTpk0vGbhCHfWHXc9
cqD3zHfeyJFNtyy4CkT7SVjSh/PugYhQVLhE07+4WokecpkEXM0xHhCNH2RzQiSD+UIEjWT4
e+Oj5XNb2siccMsb5eMTdxA3d1Hi+V/FTnO43H6ry/NfkoYa2gKK+theF9O0GIf0a8BV90V+
9i8xK8/72vnu9fh7q/9f
}
Formula Tutorial 1
Let's look more closely at the Formula tab on the New layer, at
The Formula Method. The Fractal Type is tx(z)+c. This means that the
iteration transforms z and adds c to get the next
z. (There are other possibilities in the drop-down list. Try them.) The
"Initial Zold" isn't of interest now. Below that is The Formula Transform, a plug-in; the current plug-in is Power. Power transforms z in two steps; first apply
the function from the drop-down list to z, then raise the result to the
power shown.
Since the function is the identity, ident, applying the function just gives z. Since the power is 2, the transform result is
z^{2}. Since the Fractal Type is tx(z)+c, the iteration formula is
z^{2}+c, the standard Mandelbrot formula.
Try changing the function and the power to see what happens. Try switching to Julia mode.
Here's an example where one layer is Mandelbrot mode and one is Julia mode. Note that the Mandelbrot layer has four-fold symmetry and the
Julia has three-fold symmetry. In the Mandelbrot layer, try switching to Julia mode and see if you can duplicate the Julia layer.
In the Julia layer, try switching to Mandelbrot mode; notice that the Mandelbrot
Start value is no longer zero, and that the symmetry is lost for most start values.
Formula_Tutorial_2 {
::8Qp0Din2tbVyutNMQ07Gw/DE8ULKitkScdaK4lukgGADEAn7CMUU2MlLCkUJ25rvDpkSlXTQ
P0TGww2am3MDnHJnnKtUmnKva4AEyL8SOBftxqql087r9GrgKzzwonFF+lkPfRCaJXsYpncx
lJIJdN36IZhYZWehw7I4bpKuD9NZN/rpZjTnOOLJ5S8wBRwxywoVehRTwzo6Cu8BrxjUmCOG
ZqoMhfNJNJBp4+lmCCsS8iKqzNcgiWVJ0LayBX75WyZJjmMGwSXoJpDHU2syjIU0ViAkQuq4
W2SO73ETZJqUI5aYRSwKV5kR1lKcAPkQ7aC+GumbFs5PL8sltMBGVlXlHWik1Qv19QKRbiP4
8UrnkMOJknoBOvgcW6oswiLYgW8EVzAjtRoo6aq0xoAf3aK0RW+GZJ6OdUTKqdcHnC9xrVdj
nqs8nE8nDLwu4tU9COJLGfLz8dJwkxGfUt8hrmN768mO9eAsLAqrlbSS/wG9U+iGyphT32Z7
jBn7NYoouYt6BcbUdMD0V7JHRvFrb3E2y1WbCb7t3OyxXd+Om449DQwmnhjXJj3TTQLKqEr4
HsN+GVIvfdFn8DxTcLwq+dxYNGPJ9AtTIBmawf2l76cuiKlBEk0fe2k9GvPUcsf1He5jfih3
1vQL8GZB5OjTEuru3k8SAx+JcW47XPTt5Bu7C8211aWIxO8bG9mn7ePwfdL89GAc3yuTQlHN
IIlaCzof8tzf3RlzDUlQ7EF8mxtREgDtRzROjUUQuIb6lpfJB+McAsBvLWpQD377NEzyfAGi
xk7MEjKnrgzQLhRm53YpFCwZYrulOhxPdu7RT5s9fV/V7MjEEFOQMtV5oY2q2hY2qI+VUFcT
ezIVeRUbCuWVg+FMYnGO+g7hIMtXXrC6A9D0zoP4Ip9sUePflvGm1iLUPOJeu8HzuNH2wqmv
kWxvWS94NTSXIHkY6BA2qqch8AQSPYagS/XklQFbIrOKsRkzoUw/hB2zFqKJHBeXHVFQd4Gh
RNUZcooA0TXRSQxNgGGsxEoB3aM9zTnONLFGL0K2GrUbOAtkuU0JFnNZye1uvtWKo/ry2J/X
1s70cjS290HbUMgXh48znCyCjmA/0T+eX79Ux7yxRFyfDV8/+2CHQIfTV8dH0cSI/kQ+Jh8T
C5nEyPJk/+Ey/DwbVX4c
}
Formula Tutorial 2
Other Switch formulas can be plugged into the slot in Generic
Switch Formula. Another from Dave Makin is Switch Formula Transformations, in
mmf.ulb. (Don't confuse Switch Formula Transformations [SFT] with Switch
Transform Formula [STF].)
SFT's iteration formula is in three parts, each a plug-in. SFT transforms z
first by a transform, the Pre-Transform; then by a Switch
formula; and then by another transform, the Post-Transform. Either (or both) of
Pre-Transform and Post-Transform can be Null Transforms, and do nothing.
The next upr is a Mandelbrot mode fractal with
Pre-Transform: Null
Formula: Switch Standard from mmf.ulb. This transform does z^{2}+c.
Post-Transform: Newton from jlb.ulb. The transform does one iteration of the Newton formula.
Try zooming into this Mandelbrot mode fractal. You'll find various modification
of mini-Mandelbrots throughout. Try changing the power in the Switch Standard
formula and the parameters in the Newton transform.
Formula_Tutorial_3 {
::dUHj2jn2deVTvtNOQ07BI/HE496IpNuOtL4lsdTxG0UEAnieUgWakN7yPEooit/33hkSOyyK
OKFIIwiz7NzwZ4Q9UphlbZiPf5FRRWuVAUydajsRwyeqxqNcmI7vIRb5F2N0Pedc0Ggvejle
9NxRC2ewUTTcczNQB3WTJ3zkQd0tiG4vTSvKZxVpxx3Qu8CPYfYyZVWuWRJfH2Si0VscudPN
JOOSC2N6CKGdLviVXf5FSWVFXtOwDUWwQjvCByWrcxtMkqezS2Ouze684oKwkvBy/fqusMqk
LAFmVUiUWOfWTpk4wjezsnS+KoADPf5WuNfT7WnEVlVlJ1FAdPuZ6eIhq0+HqtMj1lIO/4XA
gC6HSmlOHTO3CsinZqccxWGSmqhJqzZYBudJ32xAH5Fv5kZBX0UD1AD3HHi6RPVZgn5wWXC2
x3wUrBa6sWH2Wc+HBWJ979ZNiVf+hHuL7oN7TItaH2fawiNYInye2zZrDlJfb6EjtP6MOK5c
t6ZwguwWwb/xbRBT3afW+u56L2F7b7cDMNozN0av245zq21td1utha35SJs/H6dDMVp3GOVP
KxGnbXx4CdDm3naX4Yfw+ougVUUx3BjH9bRqPtvCofpr6OqPMatlmcV84OwF7k0bGl5SJTIc
goJ/7HmPCkc3/f0AHOHSJ5apUr8HX/ejQcwCZK0P+w6EZcoR+O4gDom/EeKcLNJetDojN7u0
inxZmCybwdaFjXAf+RrBgn4A5AWhBo/Eu9GjmE0wlAvN0zdpwQon/GiBo7N592gXd2BpT88h
3vMhk2XxpP6uqYabxEa8E3ihbvu+1h+ou22b0+XiV+jy3/tbzw3/b1qfgjRTYCvvbm4I+AKT
bWdAppPkPg4IbupT3dm8c92hoffdhZG3V5TEKIY7aPN4EWwV18CIIX0DCjrSrgoatgXQvOdx
NJfKG/7yLwDzniVwVoMmeayMwKUTWu4ENZMxSJ+WnNo8vsvaYFc0oTYWbvHVT1ZuXdNLfc9K
HWPXLQRtvCn2ocWMDitjzggY3xkv8u42FlWuXbNedQR0/h6UZONwkeIciXVNygc6eeLntC1Y
3blyngd2GU6IpQ+r5+ppv8w9ZYPra5GWFcHqLhcsT6o8qFmeAwWVVtzPIkkX1NYofBZJGxQx
qrEGEsjvGH/NK+cJXWJgI06evI3oOczIRhSpXuGXVA4htIfDIUBDLhfDR7iJfcxiFpJoQi2P
cwHpWfgCc6cR3nVkOHh+bUomLWP=
}
Formula Tutorial 3
The above fractal is from a composite formula. In UF4, a formula writer would
have had to write this. In UF5, a user of UF who is not a formula writer can
generate such a formula. Knowing UF programming, or even knowing the mathematics
of fractals, is not necessary. (Admittedly, knowing UF programming and
mathematics does help.)
From the previous upr, you can switch and find Julia fractals. Here's one.
From here, you can use Explore on the Julia Constant (the seed) or change any of
the formula parameters.
Formula_Tutorial_4 {
::v7MZtin2deVXvtpSQ03jU+Pg49gBi/q9q9lc7NV3omqI5U1HRrhB7td/AtsEb/vvzuAOEMxm
UpoIzOnzMzOzOLHy10UDl/5rvyzzwMcg4fvSLq40knrMKNjyTm67tjlZ2SmPN0bLw2s1QmuM
0jTPA6SSklbqGyYmSi/DUBU6dHvC+no4JRLmEHGu0/6rcgdhJlWYYKJx/Oa6v3oVVyMfPVBN
lZOQiCD9EgZrKjgJhhVQLLv+KBtogJ3UTHkGQTCngApbkkog4ZeU5GM1vZKmL51pvDrgunZB
HPL0rA0pbh0fTU55e5MOIxMl4LE5zCqyF+W8or1HI+fFkgmluaHzkutpc47VkUkIUZARqO+7
IyBo0y0uQphqNkwglzmEGEHOHzL3yAkRuJKIcR0tznP5mwgbDjmO7WnRa2LUZKCQqadjgKro
8yUK/Yos7ZN42zOP6she09UVJUCUcz1xHHXw9UhGehB7s5q7ZNWuAScQYN8mK2/yxatrgEUx
X/5Hf8+k3UBeGpVax+TN2OAt/psDeJZTdtz1IPxYzjWjDSOVJfB0oLMZsmfcJKY6W6yyPMXX
lO7QTVpnpme5khJ22SjnN5CZVz6m2a3u6a35SJs5X346ZqQtr+c/gErsudNlxVVYefqdul9R
7D6CaWWBbPMc0vDp+8hCg8l2q7g+QrUGS0kwhdgN2RxLHk5KBlztgIR/3NzGASq9/PphjnDJ
+pKhQJdHX/eFnf0i/Yo/2DrjkxxG5HgDOgq/b4Jxt0o41MgO0s7KDeGnqz8vA3xVMeF85Ht6
BekDk9YVPA93wtzY0ogWfJwlheuLF6D983Q0DdnJvLDe9ZHkOxz9e/yZTaXFn8k9qixtFjwX
3NutY9tXTffoPpKNdGt/Fft7o8Df7ukvD7MK5PwxoRMh31NjcEvHlxNr2j04Hy7RcgN34pbP
Teuebf0fsuQg2eV+IhCc6+mTDWhFMZJLDq1V6AhxVqkgXpizyITjXsM6Th4fXfFeY+UscmE1
w0RomGWjC1S5nIUjyXJw36sFFIm8VNNjhGtq1a69oUqWzdqrJpDrX546pKOq+9d40ElzipXs
tc6FEzeq413F3sowwciwxrDy8+fU8K1KW2vDCriWZloW3dHvlSXjix7sS+zweTFqb0PT8rZu
ppv84DJYPrY1WaBcPqLx/tOply7WY6AAbVFlW/gQieX3gh+Vk5YErLWtlwaJ94rxxfjiPXxE
FcwDtewJy1rFXgvXdp0JXjJzA8wmnrBUXBrXC/YjmFjmvYxi4IUIRznW4iUjPQBOtuo9DPin
hQ/Du9ol6B==
}
Formula Tutorial 4