comment {
Formulas for Ultra Fractal 2 by Sean M. Pratz
Last updated October 17, 2000
The latest version of this file can always be had at:
http://formulas.ultrafractal.com/
Version History:
Oct. 04, 2000
Added SMP-001
Oct. 18, 2000
Added Bailouts Galore (Man)
Added Bailouts Galore (Jul)
Thank you, Frederik Slijkerman, for creating Ultra Fractal.
Note:
By no means am I a mathematician of any discernible skill.
I bang numbers and functions together semi-randomly until something
interesting shows up on my screen. Sometimes I dip
into others' formulas for ideas or inspiration and credit them
accordingly. If I have duplicated someone's work without proper credit
please let me know so I can rectify the situation.
I hope you'll forgive me for labeling my formulas, parameters
and functions using non-mathematical terms. I don't really understand
what they're doing!
Do not use my terminology to impress anyone intelligent. They'll
just laugh at you. If instead they laugh *with you, tell them you
learned how to be funny by examining my formulas. I can always use the
writing credits.
- Sean
pixelarts@home.com or smpratz@home.com
http://members.home.com/pixelarts
}
smp-001 {
;
; eq:z = z*z*@fn1(real(z)) + n*z*(imag(z)) + (z*z)*@fn2(real(z)) + n*z*@fn3(imag(z))+n
;
; |Modified Oct 18, 2000 (But only to add this comment block)
; |Sean M. Pratz
; |pixelarts@home.com or smpratz@home.com
; |http://members.home.com/pixelarts
init:
z=0
n=#pixel
loop:
z = z*z*@fn1(real(z)) + n*z*(imag(z)) + (z*z)*@fn2(real(z)) + n*z*@fn3(imag(z))+n
bailout:
|z|<@bailout
default:
title = "SMP-001"
param bailout
caption="bailout value"
default=1000
endparam
func fn1
default = sin()
endfunc
func fn2
default = cos()
endfunc
func fn3
default = sin()
endfunc
center = (0, 0)
}
smp-Bailouts-Galore-Man {
;
; eq:z = fn1(z) * fn2(z) + fn3(c)
;
; Simple Mandelbrot with a few added functions
; and a selection of bailout conditions.
;
; Differences between bailout conditions are most evident (to begin with)
; when using a CubeRoot or Sqrt transfer function
; under the "Outside Coloring" tab.
;
; Use the Switch feature to select a "Bailouts Galore" Mandelbrot set
;
;
; |"Bailout type" routine based on examples found in formulas by
; | F. Slijkerman.
; |
; |Other bailout conditions (types B & C) are based on routines
; | suggested by Mark Townsend.
; |
; |Modified Oct 18, 2000
; |Sean M. Pratz
; |pixelarts@home.com or smpratz@home.com
; |http://members.home.com/pixelarts
init:
z = @start
loop:
z = @fn1(z) * @fn2(z) + @fn3(#pixel)
bailout:
(@btype == 0 && |z| <= @bailout) || \
(@btype == 1 && real(sqr(z)) <= @bailout) || \
(@btype == 2 && imag(sqr(z)) <= @bailout) || \
(@btype == 3 && sqr(real(z)) <= @bailout) || \
(@btype == 4 && sqr(imag(z)) <= @bailout) || \
(@btype == 5 && (sqr(real(z)) <= @bailout && sqr(imag(z)) < @bailout)) || \
(@btype == 6 && (sqr(real(z)) <= @bailout || sqr(imag(z)) < @bailout)) || \
(@btype == 7 && (sqr(abs(real(z)) + abs(imag(z))) <= @bailout)) || \
(@btype == 8 && (sqr(real(z) + imag(z)) <= @bailout))
default:
title = "Bailouts Galore (Man)"
center = (-0.5, 0)
param start
caption = "Starting point"
default = (0,0)
hint = "Perturbation. Use (0,0) for the standard Mandelbrot set."
endparam
param btype
caption = "Bailout type"
default = 0
enum = "A - Mod" "B - Spiky (Real)" "C - Spiky (Imag)" "D - Real" "E - Imag" "F - Or" "G - And" "H - Manh" "I - Manr"
hint = "A selection of various bailout tests."
endparam
param bailout
caption = "Bailout value"
default = 4.0
min = 1.0
endparam
func fn1
caption = "z function 1"
default = ident()
hint = "The 1st function in \
'fn1(z) * fn2(z) + fn3(c)'"
endfunc
func fn2
caption = "z function 2"
default = ident()
hint = "The 2nd function in \
'fn1(z) * fn2(z) + fn3(c)'"
endfunc
func fn3
caption = "Pixel function"
default = ident()
hint = "The 3rd function in \
'fn1(z) * fn2(z) + fn3(c)'"
endfunc
switch:
type = "smp-Bailouts-Galore-Jul"
seed = #pixel
btype = btype
bailout = bailout
fn1 = fn1
fn2 = fn2
fn3 = fn3
}
smp-Bailouts-Galore-Jul {
;
; eq:z = fn1(z) * fn2(z) + fn3(c)
;
; Simple Julia with a few added functions
; and a selection of bailout conditions.
;
; Differences between bailout conditions are most evident (to begin with)
; when using a CubeRoot or Sqrt transfer function
; under the "Outside Coloring" tab.
;
; Use the Switch feature to select a "Bailouts Galore" Mandelbrot set
;
;
; |"Bailout type" routine based on examples found in formulas by
; | F. Slijkerman.
; |
; |Other bailout conditions (types B & C) are based on routines
; | suggested by Mark Townsend.
; |
; |Modified Oct 18, 2000
; |Sean M. Pratz
; |pixelarts@home.com or smpratz@home.com
; |http://members.home.com/pixelarts
init:
z = #pixel
loop:
z = @fn1(z) * @fn2(z) + @seed
bailout:
(@btype == 0 && |z| <= @bailout) || \
(@btype == 1 && real(sqr(z)) <= @bailout) || \
(@btype == 2 && imag(sqr(z)) <= @bailout) || \
(@btype == 3 && sqr(real(z)) <= @bailout) || \
(@btype == 4 && sqr(imag(z)) <= @bailout) || \
(@btype == 5 && (sqr(real(z)) <= @bailout && sqr(imag(z)) < @bailout)) || \
(@btype == 6 && (sqr(real(z)) <= @bailout || sqr(imag(z)) < @bailout)) || \
(@btype == 7 && (sqr(abs(real(z)) + abs(imag(z))) <= @bailout)) || \
(@btype == 8 && (sqr(real(z) + imag(z)) <= @bailout))
default:
title = "Bailouts Galore (Jul)"
center = (0, 0)
param seed
caption = "Julia seed"
default = (0.275, 0)
hint = "Use this to create many different Julia sets. You can \
also set this value using the Switch feature."
endparam
param btype
caption = "Bailout type"
default = 0
enum = "A - Mod" "B - Spiky (Real)" "C - Spiky (Imag)" "D - Real" "E - Imag" "F - Or" "G - And" "H - Manh" "I - Manr"
endparam
param bailout
caption = "Bailout value"
default = 4.0
min = 1.0
endparam
func fn1
caption = "z function 1"
default = ident()
hint = "The 1st function in \
'fn1(z) * fn2(z) + fn3(c)'"
endfunc
func fn2
caption = "z function 2"
default = ident()
hint = "The 2nd function in \
'fn1(z) * fn2(z) + fn3(c)'"
endfunc
func fn3
caption = "pixel function"
default = ident()
hint = "The 3rd function in \
'fn1(z) * fn2(z) + fn3(c)'"
endfunc
switch:
type = "smp-Bailouts-Galore-Man"
btype = btype
bailout = bailout
fn1 = fn1
fn2 = fn2
fn3 = fn3
}