;Barry Etheridge 2004 & 2005 Ski-Path { init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif i=@go loop: i=i-1 z=z*(z^i)+c bailout: |z|<=@bailout default: int param go caption = "Start Countdown at" default = 0 endparam heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam float param bailout caption = "Bailout" default = 4 endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam title = "Ski-Path" switch: type = "Ski-Path" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale bailout = @bailout go=@go } Downhill { init: z = #pixel int i = @go int q = 0 int out = 0 loop: q=q+1 i=i-1 z=z*(z^i)+z if @testtype==0 && |z|>@bailout out = 1 endif if @testtype==1 && q>@bailout out=1 endif bailout: out<1 default: int param go caption = "Start Countdown at" default = 0 endparam float param bailout caption = "Test Limit" hint = "Bailout for T1, iterations for T2" default = 4 endparam param testtype caption = "Test" enum = "T1""T2" default=0 endparam heading caption="Do not use ucl (None) with T2" endheading title = "Downhill" } Planetex { init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif loop: z=z+c/z+z/z^@power bailout: |z|<=@bailout default: param power default = 1.5 endparam heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam float param bailout caption = "Bailout" default = 4 endparam complex param startseed caption = "Start/Seed" default = (0.25,-0.25) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam title = "Planetex" switch: type = "Planetex" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale bailout = @bailout power=@power } Multicon { init: z=#pixel loop: z=@function(z^(z^(z^(z^(z))))/(z^z)) bailout: |z|<=@bailout default: center = (0.9415,0.98368) magn = 0.1795 method = onepass float param bailout default = 4 endparam title = "Multicon" switch: } Powers { init: z=#pixel loop: z=z^(z^(z^(z^(z))))/(z^z)+z bailout: |z|<=4 default: center = (0.9415,0.98368) magn = 0.1795 method = onepass title = "Powers" switch: } Powers2 { init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif x = #pixel loop: z=x^(x^(x^(x^(x))))/(x^x)+c x=z bailout: |z|<=@bailout default: method = onepass heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam float param bailout caption = "Bailout" default = 4 endparam complex param startseed caption = "Start/Seed" default = (0, 0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam title = "Powers2" switch: type = "Powers2" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale bailout = @bailout } Lobsters { ;Recommended initial coloring Smooth Mandelbrot init: z=#pixel loop: z=z^(@f(z))+z bailout: |z|<=@bailout default: center = (-0.36778,-0.13061) magn = 0.7 method=onepass param bailout default = 4 endparam func f caption = "Function" default = tan() endfunc title = "Lobsters" switch: } Lobsters2 { ;Recommended initial coloring Smooth Mandelbrot init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif x = #pixel loop: z=x^(@f(x))+c x=z bailout: |z|<=@bailout default: method=onepass func f caption = "Function" default = tan() endfunc heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam float param bailout caption = "Bailout" default = 4 endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam title = "Lobsters2" switch: type = "Lobsters2" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale bailout = @bailout f = @f } Warbird { init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif loop: z=c^z bailout: |z|<=@bailout default: ;center = (-0.07256,-0.03313) ;magn = 0.67793 title = "Warbird" heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam float param bailout caption = "Bailout" default = 4 endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam switch: type = "Warbird" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale bailout = @bailout } Warbird2 { init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif loop: z=c^z bailout: real(z)<=real(c) default: ;angle = 90 ;center = (8.91068,0.41676) ;magn = 0.16948 heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam float param bailout caption = "Bailout" default = 4 endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam title = "Warbird2" switch: type = "Warbird2" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale bailout = @bailout } Warbird3 { init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif loop: z=c^z+z bailout: abs(tan(|z|))<=4 default: ;center = (-1.21626,-0.08795) ;magn = 1.3054 heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam float param bailout caption = "Bailout" default = 4 endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam title = "Warbird3" switch: type = "Warbird3" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale bailout = @bailout } Wings { init: z=#pixel loop: z=1/((@multiplier*z)^@power)+z bailout: |z|<=4 default: param multiplier default = (2,0) endparam param power default = (2,0) endparam center =(0.20549,-0.05629) magn = 0.69933 title = "Wings" switch: } Wings2 { init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif x=#pixel loop: z=1/((@multiplier*x)^@power)+c x=z bailout: |z|<=@bailout default: param multiplier default = (2,0) endparam param power default = (2,0) endparam heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam float param bailout caption = "Bailout" default = 4 endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam title = "Wings2" switch: type = "Wings2" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale bailout = @bailout multiplier = @multiplier power = @power } Impact { init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif x =#pixel loop: z=(x^@power/c)+@seed x=z bailout: real(conj(z))<=@bailout default: param seed default = (0.123,0) endparam param power default = (2,0) endparam float param bailout default=4 endparam heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam title = "Impact" switch: type = "Impact" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale bailout = @bailout seed = @seed power = @power } Bullet { init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif x =#pixel loop: z=(x^@power/c)+@seed x=z bailout: |z|<=@bailout default: param seed default = (0.123,0) endparam param power default = (2,0) endparam float param bailout default=4 endparam heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam title = "Bullet" switch: type = "Bullet" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale bailout = @bailout seed = @seed power = @power } Shatter { init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif x =#pixel loop: z=(x^@power/c)+@seed x=z bailout: abs(imag(z))<=abs(real(#pixel)) default: param seed default = (1.5,0) endparam param power default = (2,0) endparam heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam title = "Shatter" switch: type = "Shatter" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale seed = @seed power = @power } Well { init: c = @seed if @pseed == true c = #pixel endif z=#pixel loop: z=@f1(@f2(@f3(z^@power)))+c bailout: |z|<=@bailout default: param power default = (5,0) endparam param seed default=(0,0) visible = !(@pseed) endparam bool param pseed caption = "Use pixel as seed?" default = false endparam func f1 default = sin() endfunc func f2 default = tan() endfunc func f3 default = cos() endfunc method = onepass float param bailout default=4 endparam title = "Well" } Well2 { init: c = @seed if @pseed == true c = #pixel endif z=#pixel loop: z=@f1(@f2(@f3(z^@power)))+c bailout: sin(|z|)<=@bailout default: float param bailout default = 0 endparam param power default = (5,0) endparam param seed default=(0,0) visible = !(@pseed) endparam bool param pseed caption = "Use pixel as seed?" default = false endparam func f1 default = sin() endfunc func f2 default = tan() endfunc func f3 default = cos() endfunc method = onepass center = (-0.26638,-0.149240) magn = 0.6993 title = "Well2" switch: } Well3 { init: c = @seed if @pseed == true c = #pixel endif z=#pixel loop: z=@f1(@f2(@f3(z^@power)))+c bailout: abs(cotan(|z|))<=@bailout default: float param bailout default = 4 endparam param power default = (5,0) endparam param seed default=(0,0) visible = !(@pseed) endparam bool param pseed caption = "Use pixel as seed?" default = false endparam func f1 default = sin() endfunc func f2 default = tan() endfunc func f3 default = cos() endfunc method = onepass center = (-0.26638,-0.149240) magn = 0.6993 title = "Well3" switch: } Well4 { init: c = @seed if @pseed == true c = #pixel endif z=#pixel loop: z=@f1(@f2(@f3(z^@power)))+c bailout: cos(|z|)<=sin(|z|) default: param power default = (5,0) endparam param seed default=(0,0) visible = !(@pseed) endparam bool param pseed caption = "Use pixel as seed?" default = false endparam func f1 default = sin() endfunc func f2 default = tan() endfunc func f3 default = cos() endfunc method = onepass center = (-0.26638,-0.149240) magn = 0.6993 title = "Well4" switch: } Well5 { init: c = @seed if @pseed == true c = #pixel endif z=#pixel loop: z=@f1(@f2(@f3(z^@power)))+c bailout: real(z)<=@bailout default: float param bailout default = 0 endparam param power default = (5,0) endparam param seed default=(0,0) visible = !(@pseed) endparam bool param pseed caption = "Use pixel as seed?" default = false endparam func f1 default = sin() endfunc func f2 default = tan() endfunc func f3 default = cos() endfunc method = onepass center = (-0.26638,-0.149240) magn = 0.6993 title = "Well5" switch: } LogOn { init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif loop: z=log(sin(z)+cos(c)) bailout: abs(@function(|z|))<=@bailout default: func function default = tan() endfunc ;center = (0.8581,-0.31) ;magn = 0.1672 heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam float param bailout caption = "Bailout" default = 4 endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam title = "LogOn" switch: type = "LogOn" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale bailout = @bailout function = @function } MandelbrotVariation { ;switch programming by Toby init: if @mode == "Mandelbrot" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif loop: z = @function1(z-@p1) * @function2(z-@p2) + @function3(c-@p3) bailout: |z|<=@bailout default: title = "Mandelbrot Variation" heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "Mandelbrot""Julia" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "Mandelbrot""Julia" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam float param bailout caption = "Bailout" default = 100 endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam complex param p1 caption = "Param 1" default = (0,0) endparam complex param p2 caption = "Param 2" default = (0,0) endparam complex param p3 caption = "Param 3" default = (0,0) endparam func function1 caption = "Function 1" default = sin() endfunc func function2 caption = "Function 2" default = sqrt() endfunc func function3 caption = "Function 3" default = tan() endfunc switch: type = "MandelbrotVariation" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale bailout = @bailout p1 = @p1 p2 = @p2 p3 = @p3 function1 = @function1 function2 = @function2 function3 = @function3 } A4 { init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif loop: z = z^@power + @f1(c) bailout: |z|<@bailout default: heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam float param bailout caption = "Bailout" default = 4 endparam param power default = (2,0) endparam func f1 caption = "Pixel Function" default = sin() endfunc title = "A4" switch: type = "A4" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale power = @power f1 = @f1 } Adsorber { init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif i=(0,0) int out=0 loop: i=i+@Step z=z-c z=c-(@f1(z^i)/@f2(c^i+z^c)+@f3(c-z)) if @testtype==0 && |z|>@bailout out=1 endif if @testtype==1 && real(i)>@bailout out=1 endif bailout: out<1 default: param Step default = (1,0) endparam func f1 default=ident() endfunc func f2 default=ident() endfunc func f3 default=ident() endfunc param testtype caption = "Test" enum ="T1""T2" default=0 endparam heading caption="Do not use ucl (None) with T2" endheading title = "Adsorber" heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam param bailout caption="Test Limit" hint="Bailout value for T1, iterations for T2" default=4 endparam switch: type = "Adsorber" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale Step = @Step bailout=@bailout f1=@f1 f2=@f2 f3=@f3 testtype=@testtype } A2 { init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif a = 0 i = 0 loop: i=i+@step if @power == 0 a = z elseif @power == 1 a = #pixel else a = i endif z=(z*i)^a+c bailout: |z| < @bailout default: heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam float param bailout caption = "Bailout" default = 10 endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam param power enum = "z""pixel""iterations" default = 0 endparam param step caption = "Step" default = (1,0) endparam title = "A2" switch: type = "A2" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale bailout = @bailout power = @power step = @step } Scrunch{ init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif x=flip(#pixel)^2/#pixel^2 loop: z=@f(x^@power+c) x=z bailout: |z|<=@bailout default: func f caption = "Function" default=recip() endfunc param power default=(3,0) endparam param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam float param bailout caption = "Bailout" default = 4 endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam title = "Scrunch" switch: type = "Scrunch" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale power = @power f = @f } A7 { init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif x=0 a=0 loop: x=z z=@f1(z)*@f2(z)*@f3(z)*@f4(z)*@f5(z)+c a=@f6(z)-@f7(x) bailout: |a|<=@bailout default: func f1 default = sin() endfunc func f2 default = sin() endfunc func f3 default = sin() endfunc func f4 default = sin() endfunc func f5 default = sin() endfunc func f6 default=ident() endfunc func f7 default=ident() endfunc heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam float param bailout caption = "Bailout" default = 100 endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam title = "A7" switch: type = "A7" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale bailout = @bailout f1=@f1 f2=@f2 f3=@f3 f4=@f4 f5=@f5 f6=@f6 f7=@f7 } TwoCircle { ;recommend Max Iterations Adjust Automatically be set init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif i=(0,0) loop: i=i+@stepr+flip(@stepi) z=z^@power/(i+z)+@stepr/c bailout: real(i)>#maxiter && abs(real(z))>@bailout || abs(imag(z))>@bailout default: float param stepr caption = "Real Step" default = 1 endparam float param stepi caption = "Imag Step" default = 0 endparam param power default = (2,0) endparam heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam float param bailout caption = "Bailout" default = 1 endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam method = onepass title = "Two Circle" switch: type = "TwoCircle" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale stepr = @stepr stepi = @stepi power = @power } Angle { init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif loop: z=z^@f(z)+c bailout: |z|<=@bailout default: func f default=sin() endfunc heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam float param bailout caption = "Bailout" default = 10 endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam title = "Angle" switch: type = "Angle" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale f=@f } Frump { init: z=#pixel int i=0 int out=0 loop: i=i+1 z=(@n1*@f1(z)/@n2)+(@n3*@f2(z)/@n4) if @testtype==0 && |z|>@bailout out=1 endif if @testtype==1 && i>@bailout out=1 endif bailout: out<1 default: func f1 default=cos() endfunc func f2 default=sin() endfunc param n1 default = (4,0) endparam param n2 default=(5,0) endparam param n3 default = (3,0) endparam param n4 default = (2,0) endparam param testtype caption="Test" enum="T1""T2" default=0 endparam param bailout caption="Test Limit" hint="Bailout for T1, iterations for T2" default=40 endparam heading caption="Do not use ucl (None) with T2" endheading title = "Frump2" switch: } Splash { ;Some function options benefit from low bailout values init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif a=(0,0) loop: a=@f1(a+@power) z=@f2(z^a+c) bailout: real(z)<=@bailout default: periodicity = 0 param power default=(-2,0) endparam func f1 default=ident() endfunc func f2 default=ident() endfunc heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam float param bailout caption = "Bailout" default = 100 endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam title = "Splash" switch: type = "Splash" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale bailout = @bailout power=@power f1=@f1 f2=@f2 } Differences { init: z=0 z1=(0,0) z2=(0,0) a=2*#pixel b=-2*#pixel bool snap = false loop: z1=@f1(a^@power1)+b z2=@f2(b^@power2)+a a=2*z1 b=-2*z2 z=@f3(z1*z2)+@f4(z2/z1)+z2-z1 if @Test == 0 && real(z)>@bailout snap=true endif if @Test == 1 && imag(z)>@bailout snap=true endif if @Test == 2 && |z|>@bailout snap=true endif if @Test == 3 && abs(real(z)+imag(z))>@bailout snap=true endif if @Test == 4 && cabs(z)>@bailout snap=true endif bailout: snap==false default: param Power1 default=(2,0) endparam param Power2 default=(2,0) endparam func F1 default=ident() endfunc func F2 default=ident() endfunc func F3 default=ident() endfunc func F4 default=ident() endfunc param Test enum = "real""imag""|z|""real+imag""cabs(z)" endparam float param bailout default=4 endparam title = "Differences" switch: } Whiling { ;also useful for cutouts/masks eg. f: = conj & test = |z| init: c=#pixel z=0 float x = -|c| bool snap = false loop: while x<=|c| z=z+c^@power if |z|>0 x=x+|z| else x=x+0.0001 endif endwhile x=-|c| z=@f(z) if @Test == 0 && real(z)>@bailout snap=true endif if @Test == 1 && imag(z)>@bailout snap=true endif if @Test == 2 && |z|>@bailout snap=true endif if @Test == 3 && (real(z)>@bailout && imag(z)>@bailout) snap=true endif bailout: snap==false default: param power default=(2,0) endparam float param bailout default=4 endparam func f default=sqr() endfunc param Test enum = "real""imag""|z|""real OR imag" default=2 endparam title = "Whiling" switch: } UpAndDown { init: if @mode == "M1" z = @startseed y = @startseed c = #pixel else z = #pixel y = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale y = y/@scale endif if @center != (0.0,0.0) z = z + @center y = y + @center endif loop: z=@f1(z^@power)+@f2(c) y=@f3(z^-@powerb)+@f4(c) bailout: |z|<=@bailout && |y|<=@bailout default: param power caption = "Power Z" default=(2,0) endparam param powerb caption = "Power Y" default=(2,0) endparam func f1 caption = "F1 of Z" default=ident() endfunc func f2 caption = "F2 of Z" default=ident() endfunc func f3 caption = "F1 of Y" default=ident() endfunc func f4 caption = "F2 of Y" default=ident() endfunc heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam float param bailout caption = "Bailout" default = 1000 endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam title = "Up And Down" switch: type = "UpAndDown" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale bailout = @bailout power = @power powerb = @powerb f1 = @f1 f2 = @f2 f3 = @f3 f4 = @f4 } Why { ;Why use this? Try exploring the switch! init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif float a=0 float b=0 loop: a=real(z)^cabs(z)+real(c) b=imag(z)^cabs(z)+real(c) z=a+flip(b) z=z^@power bailout: |z|<=@bailout default: param power caption = "Power" default = (2,0) endparam heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam float param bailout caption = "Bailout" default = 4 endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam periodicity = 0 title = "Why" switch: type="Why" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale bailout = @bailout power = @power } PoolsofDawn { ;Recommended initial coloring Smooth Mandelbrot init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif a=2*c b=-2*c x=2*flip(c) y=-2*flip(c) loop: a=@f1(a)+@f2(x) b=@f1(b)+@f2(y) x=@f1(x)+@f2(a) y=@f1(y)+@f2(b) z=@f1(z*(a+x)*(b+y))+c bailout: |z|<=@bailout default: func f1 default=cos() endfunc func f2 default=ident() endfunc heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam float param bailout caption = "Bailout" default = 4 endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam periodicity = 0 ;magn = 4 title = "Pools of Dawn" switch: type = "PoolsofDawn" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale bailout = @bailout f1 = @f1 f2 = @f2 } Pendulum { ;Use as map for switch parameters. Increase maxiter for detail. init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif bool snap=false loop: z=(z^@power+c)^(1/@power)-c if @Test == 0 && real(z)>@bailout snap=true endif if @Test == 1 && imag(z)>@bailout snap=true endif if @Test == 2 && |z|>@bailout snap=true endif if @Test == 3 && abs(real(z)+imag(z))>@bailout snap=true endif if @Test == 4 && cabs(z)>@bailout snap=true endif bailout: snap==false default: periodicity=0 param power default=(2,0) endparam param Test enum = "real""imag""|z|""real+imag""cabs(z)" endparam heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam float param bailout caption = "Bailout" default = 1 endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam title = "Pendulum" switch: type="Pendulum" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale bailout = @bailout power = @power } Angelus { init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif a=c^2 b=-1*(c^2) x=flip(c)^2 y= -1*(flip(c)^2) bool top = false bool rt = false loop: z=(@f1(z/#pi)^@power+@f2(c))^@power2 if |a-z|<|z-b| top = true else top=false endif if |x-z|<|z-y| rt = true else rt = false endif if top==true && rt==true z=z*b+y endif if top==true && rt==false z=z*b+x endif if top==false && rt==true z=z*a+y endif if top==false && rt==false z=z*a+x endif a=a/z b=b/z x=x/z y=y/z bailout: |z|<=@bailout default: param power default=(2,0) endparam param power2 default=(1,0) endparam func f1 default=ident() endfunc func f2 default=ident() endfunc heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam float param bailout caption = "Bailout" default = 10 endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam title = "Angelus" switch: type = "Angelus" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale bailout = @bailout power = @power f1=@f1 f2=@f2 } Turnover { init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif count = (0,0) loop: count = count+@Supplement z = count*@f1(z+c)*@f2(z-c) bailout: |z|<=@bailout default: periodicity = 0 param Supplement default = (1,0) endparam func f1 default = ident() endfunc func f2 default = ident() endfunc heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam float param bailout caption = "Bailout" default = 4000 endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam title = "Turnover" switch: type="Turnover" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale bailout = @bailout f1=@f1 f2=@f2 Supplement = @Supplement } SwingLow { ;use default mode to map switch options init: if @mode == "M1" z = @startseed y = @startseed c = #pixel else z = #pixel y = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale y = y/@scale endif if @center != (0.0,0.0) z = z + @center y = y + @center endif int route=-1 loop: route=0-route if route==1 z=(z^@power)*@f2(c)+c else z=(z^recip(@powerb))/@f2(c)-c endif bailout: |z|<=@bailout default: param power caption = "1st Power" default=(2,0) endparam param powerb caption = "2nd Power" default=(2,0) endparam func f2 caption = "Variety" default=ident() endfunc heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam float param bailout caption = "Bailout" default = 1000 endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam title = "Swing Low" switch: type = "SwingLow" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale bailout = @bailout power = @power powerb = @powerb f2 = @f2 } Carmine { init: if @mode == "M1" z = @startseed c = #pixel else z = #pixel c = @startseed endif if @scale != 1.0 z = z / @scale endif if @center != (0.0,0.0) z = z + @center endif loop: z=@f(z-c)/@f1(z-c) bailout: |z|<=@bailout default: heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "M1""M2" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "M1""M2" default = 1 visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show endparam float param scale caption = "Scale Reset" default = 1 visible = @show endparam complex param center caption = "Center Reset" default = (0,0) visible = @show endparam float param bailout caption = "Bailout" default = 40 endparam complex param startseed caption = "Start/Seed" default = (0,0) hint = "Defines the init z value in the Mandelbrot, \ the seed value in the Julia" endparam func f1 default=sqr() endfunc title = "Carmine" switch: type="Carmine" startSeed = #pixel mode = switchMode switchMode =@mode center=@swcenter scale=@swscale bailout = @bailout f=@f f1=@f1 }