Hi, i dont intend to push anyone "to extend the limits", but what good is a composition tool if it isïnt used as such? It would be sad, if the only reason is that the inputs are not clear. Also Iïm not an artist and definetly there is much more to it than I can explore. First some remarks about the basic structure as John suggested. The main loop consists of 3 parts, the iteration loop, the part defined by the variable "wo" and the part defined by the variable "start". The iteration loop checks if "VB"is set, which means one of the 2 hybrid frms is to be used, if "zero" one of the 2 basic frms is used. The "d3" variable checks if it is a Julia (1) or a mandel-type (0).In case of the hybrid frms it`s the hybrid Julia, otherwise many_mods. If "vb" is zero itïs one of the 2 basic frms, but as Julia. The default basic frm, just like the hybrid Julia gets more complexity by use of the warp-factor "u". The "ab" variable determins which one of the 2 basic frms is to be used. The "wo" part supplies the initial value to warp the basic shape if it is checked. When the border or maxiter values are reached, iteration restarts from zero but warped. The difference can easily be checked with the speed test image. The "start" variable determines if one or two in/out options are used. If zero, only the main loop and the "wo" part (if checked) is active. If "1", only in/out2 options are active. It is counted down from 2 to zero, so that finally, at high iteration, only the iteration loop is used. Regard the border and maxiter values as imaginary bailout points where the iteration switches to the next selected frm. The warpeffect like it says somehow bends the look of the next iteration part, how - depends on the type. The internal counter "t" of the previous part(s) is used for itïs calculation. It needs outside=tdis and a colourmap which supports "3d"looks. BUD2.map is my favorite as it supports "3d" in 3 basic colors. To create a new image from the scratch firstly you decide which basic frm (I call it shape) to use. There are 6 options, the 4 frms and the Julia variation of the 2 basic frms. Ismand has the precedence, so if frm3 (many_mods) is checked and Ismand is "no" the hybrid julia (4) is used. To start off you use the real(p5) 1digit input, 1 to 4. Set image(p5) to 5 if you want to warp it. Having done that you add the other 4 digits, in the following order: (shape), out1, out2, in1, in2. Of course the outside options are used also for the inside parts and vv, if the conditions are met. Now the explanation of the inputs in their order: P1 is the Julia seed, it is used for all julia variations and it is shared by the basic frm1. Get the values using the evolver or take them from any other image. Real (p2) factor1, is used for the shape-warpeffect. Set it to maxiter1 or higher. A good example is one third above. After the dot the border1 input. Select the value and divide it by 100000, a value of 1.234 appears as -.00001234. It is the same with the other secondary inputs, except where a number of digits is requested, see the text. If the shape is a basic mandel or Julia, any value between 1 and 4 makes sense, for the other ones itïs a matter of try and error and experience. Use low resolutions for that purpose. Image(p2) is maxiter1, select a relatively low value, maybe 256. The secondary input has 4 digits, the first 2 are used for frm1, the other 2 for frm2. The first one also accepts a negative input. A "-" will be applied to this one only. If you have found the julia seed, see what image you get and modify it with these inputs. Use the evolver, set max mutation f.e to 0.5 for frm1 and to 0.003 for frm2. Higher figures generate smaller shapes. Frm2 supplies a big variety of shapes, mirrored mandels or 2 mandels combined to one shape, it even can be quadratic. This one is used in todayïs image. Real(p3) is the general bailout, use a really high value if you want to fill those black holes, which are typical for many_mods.The second input is the "number of sides" created by many_mods; a high number generates smaller structures, f.e. 4 to 32. The format is the same as border1. This value is doubled if m_m is called as in/out option and again, if called twice. This leads to very high complexity, sometimes chaotic spots, so it can be shut off (-later). Image(p3) is factor 2, take a value higher then maxiter2, just like factor1. Border2 is fractional, same format as border1. For a basic mandel or Julia a value between 4 and 32 makes sense, of course all other values are possible. Modify this figure, so that nothing of the basic shape is covered, if it is a mandel (and you want that), 9.1 is a good example. Real(p4) is maxiter2, it makes sense to double the value of maxiter1 or any higher value. The second input, factor 3 is used for in/out2, any value well above maxiter 3, f.e. one third or double. Image(p4) is border3, this one is not fractional, any value below bailout. The second input, maxiter3 should be well below the general maxiter on the x-screen in order to leave enough iterations for in/out2. If you want to use the in-options exclusively set the border values higher then bailout, and vv the maxiter values higher then general maxiter. Real(p5): As explained use 1 digit only to create just the shape and add the other 4 digits later. Add 5 to each selection, except the shape, in order to reset it. Resetting generally adjusts the selected part to the screen instead of the surrounding, if itïs m_m, it creates circular shapes and helps avoid chaotic spots. If this value is negative in/out1 is shut off. The figures are as follows: 1_basic mandel, 2_basic julia, 3_many_mods, 4_hybrid Julia. The second input is optional and determines where the basic frm2 is used, regardless if itïs Julia or mandel. Type the number of the out-option you want to use it for and the number of the in-option, zero if none. Type 3 to use it on both. One digit only defines the out-option, add 5 to the first or second digit, to use frm2 as shape. Precedence has the primary real(p5) input, so these values must correspond to it, to be active. One example: 18212.71 (or 18212.26) uses frm2 as shape, out2 and in1. Out1 is m_m with a reset, out2 is basic julia2, in1 is basic mandel2,in2 is basic julia1. This may sound complicated, but you`ll manage after a couple of times. An earlier version of this formula was much heavier. Image(p5): Optional, 1 digit: "1" resets the iteration counter after the "wo" calculations, "2" after in/out1, "3" after both. This effects the calculation of the warp-factor. Add "5" or just type "5" to use the warpeffect on the shape. 2 digits: the first digit shuts off the m_m multiplication, "1" at the in/out1 switch, "2" at the in/out2 switch, "3" completely. Second input: Optional, used for the lake-effect variables. 6 digits, 2 digits for each one: Example 324151 means a frequency of 320, a level of 41% and an amplitude of 0.51. Any valid input activates the lake effect. The functions are used for the calculation of the warpeffect, if you use a different one, possibly the corresponding factor must be changed. For some Julias "sin" is a must. Fn1 is shared by m_m and the basic image, so if that is not warped, it is free to use. The m_m rendering changes dramatically. Fn2 is used for in/out1 fn3 is used for in/out2 Thatïs it. I hope itïs understandable and not too chaotic. Fractal greetings, Al. ----------------------------start-par------------------------------------- Easter_eggs { ; Time 0.29.47.49 ; Albrecht Niekamp May, 03 reset=2002 type=formula formulafile=mult239.frm formulaname=multifractal ismand=y function=exp/exp/exp passes=t center-mag=-0.464607/-4.44089e-016/0.5117907 params=-0.8940855128635518/0.8105868709372235/384.00001/256.1133/2048.00\ 008/768.0003400000001/768.01536/2560.01025/18934.5/5 float=y maxiter=3072 inside=maxiter outside=tdis logmap=7 periodicity=0 rseed=-2436 colors=200444222000<25>0bo0cq0es<3>0kz<25>09C08A068<2>022000211<24>oiQqj\ RslS<3>zsX<25>CB7A96875<3>000400<23>o00q00s00<3>z00<25>C00A00800<3>000<2\ 5>iiijjjlll<3>sss<25>BBB999777555 } Wonderland { ; Albrecht Niekamp May, 03 ; Time 1.09.00.09 ; Version 2002 Patchlevel 5 reset=2002 type=formula formulafile=mult239.frm formulaname=multifractal ismand=y function=exp/exp/exp passes=t center-mag=-1.5922/0.155851/14.26617/1/95/1.31075705844807544e-014 params=-0.8940855128635518/0.8105868709372235/384.00001/256.1133/4094.00\ 016/768.0003400000001/768.0076800000001/256.01024/18937.52/5 float=y maxiter=3072 inside=maxiter outside=tdis logmap=7 periodicity=0 rseed=-2436 colors=200444222000<25>0bo0cq0es<3>0kz<25>09C08A068<2>022000211<24>oiQqj\ RslS<3>zsX<25>CB7A96875<3>000400<23>o00q00s00<3>z00<25>C00A00800<3>000<2\ 5>iiijjjlll<3>sss<25>BBB999777555 } -------------------------------start-frm----------------------------------- FRM:Multifractal {; Albrecht Niekamp 16.5.01 ;only integers as first input, second input 5 digits to the right ;real(p2) factor1,border1 ;imag(p2) (-)maxiter1,input bas.frm1_2digits input bas.frm2_2digits ;real(p3) bailout,hyb.mandel: number of sides (Many_mods L.Allison) ;imag(p3) factor2,border2 ;real(p4) maxiter2,factor3 ;imag(p4) border3,maxiter3 ;real(p5) 1digit_shape only 5digits: shape,out1,out2,in1,in2 ; 1_mand 2_jul 3_hyb.mand 4_hyb.jul +5_reset (not shape) <0_no in/out1 ; optional basic frm2: out-nbr 1digit in-nbr 1digit 3_both +5_shape ;imag(p5) 1digit : 1_iter1reset 2_iter2reset 3_both +5_shape effect ; 2digits : many_mods multipl.shutoff +10_in/out1 +20_in/out2 +30_both ; optional input2: frequency_2digits level_2digits amplitude_2digits ; d=real(p2) ;factor1 , border1 fac1=trunc(d) b1=(d-fac1)*100000 ; d=imag(p2) da=d<0 ;p6 negative (frm1) if (da) d=-d endif mi1=trunc(d) ;maxiter1 d=round((d-mi1)*10000) p6=trunc(d/100)/10 ;init. value frm1 d=d-1000*p6 if (da) p6=-p6 endif p7=d/10 ;init. value frm2 ; d=real(p3) ba=trunc(d) ;bailout mm=round((d-ba)*100000) ;m_mods nbr of sides ; d=imag(p3) fac2=trunc(d) ;factor2 b2=(d-fac2)*100000 ;border2 ; d=real(p4) mi2=trunc(d) ;maxiter2 fac3=round((d-mi2)*100000) ;factor3 ; d=imag(p4) b3=trunc(d) ;border3 mi3=round((d-b3)*100000) ;maxiter3 ; da=real(p5) t=da<0 ;in/out2 only if (t) da=-da endif start=2-t ;inout1+inout2: start=2 dd=trunc(da) if (dd<5) start=0 endif vb=(dd==3)+(dd==4) ;shape hybrid frm_1digit input da=round((da-dd)*100) d=trunc(dd/10000) vb=(d==3)+(d==4)+vb ;shape hybrid frm_5digits input dd=dd-d*10000 d=trunc(dd/1000) or1=d>5 ;reset out1 d=d-5*or1 vv1=(d==3) ;hybrid frm out1_mandel vv2=(d==4) ;hybrid frm out1_julia dd1=(d==2)+(d==4) ;julia out1 dd=dd-d*1000 d=trunc(dd/100) or2=d>5 ;reset out2 d=d-5*or2 vv3=(d==3) ;hybrid frm out2_mandel vv4=(d==4) ;hybrid frm out2_julia dd2=(d==2)+(d==4) ;julia out2 dd=dd-d*100 d=trunc(dd/10) inr1=d>5 ;reset in1 d=d-5*inr1 v1=(d==3) ;hybrid frm in1_mandel v2=(d==4) ;hybrid frm in1_julia d1=(d==2)+(d==4) ;julia in1 dd=dd-10*d d=trunc(dd) inr2=d>5 ;reset in2 d=d-5*inr2 v3=(d==3) ;hybrid frm in2_mandel v4=(d==4) ;hybrid frm in2_julia d2=(d==2)+(d==4) ;julia in2 d=trunc(da/10) da=da-10*d ab=d>=5 ;shape frm2 d=d-5*ab bb1=(d==1) ;frm2 out1 bb2=(d==2) ;frm2 out2 dd=da>=5 ;shape frm2_second digit da=da-5*dd ab=ab+dd ab1=(da==1) ;frm2 in1 ab2=(da==2) ;frm2 in2 ; d=imag(p5) dd=trunc(d) d=round((d-dd)*1000000) le=d>10000 ;lake effect on da=trunc(dd/10) so1=((da==1)+(da==3)==0) ;m_m multiplication off_in/out1 so2=((da==2)+(da==3)==0) ;m_m multiplication off_in/out2 dd=dd-10*da wo=dd>=5 ;shape warpeffect dd=dd-5*wo ir1=(dd==1)+(dd==3) ;iter reset in/out1 ir2=(dd==2)+(dd==3) ;iter reset in/out2 if (le) ;lake effect freq=round((trunc(d/10000))*10) ;frequency_lake effect by S.Gallet d=d-freq*1000 level=(trunc(d/100))/100 ;water level d=d-level*10000 ampl=d/100 ;amplitude of the wave u=real(rotskew*pi/180) t=exp(-flip(u)) bo=1/real(magxmag) q=bo/0.75*imag(magxmag) dd=tan(imag(rotskew*pi/180)) d3=2*q*t rs=2*bo*(dd+flip(1))*t z2=center+(-q-bo*dd-flip(bo))*t z=pixel-z2 d=imag(conj(d3)*z)/imag(conj(d3)*rs) if (d<=level) da=level-d z=z+2*da*(1+ampl*sin(freq*da^0.2))*rs endif z=z+z2 endif if (ismand) if (vb) ;many_mods c=0.4*log(sqr(pixel^mm)) z=z*le else c=z*le+pixel*(le==0) z=0 endif else ;julia c=p1 z=z*le+pixel*(le==0) endif t=0 d3=(ismand==0) u=d3 ;warpeffect initial value : if (vb) if (d3) ;julia z=(z*z-real(c))^(z*u+imag(c)) ;hybrid julia else z2=fn1(z)+c ;hybrid mandel L.Allison q=cos(z2) z=c*(1-q)/(1+q) endif elseif (ab) z=z*z+c+c*c-p7 ;basic frm2 Pusk.s Istv.n elseif (d3) z2=z*z z=z2*z2+(p6+u)*z2+c ;basic frm1 as julia else z2=z*z ;basic frm1 Pusk s Istv n z=z2*z2+(p6+u)*z2+c-p1 endif bo=|z| ;bailout value If (wo) ;shape warp effect t=t+1 if ((t<mi1)+(bo>b1)) u=2*(fn1(t/fac1)) ;warpeffect if (ismand) z=z*u if (vb) ;hybrid frm c=0.4*log(sqr(pixel^mm)) ;init m_m else c=z*le+pixel*(le==0) endif else z=z*le+pixel*(le==0) ;init julia c=p1*u endif wo=0 if (ir1) ;iter reset t=0 endif endif elseif (start) ;0_shape only t=t+1 if (start==2) ;in/out1 + in/out2 if (bo>b2) ;z > border2 ? u=2*(fn2(t/fac2)) rs=or1 ;reset ab=bb1 ;frm2 if (dd1) ;julia? if (rs) z=pixel endif c=p1*u vb=vv2 ;hybrid d3=vb ;julia else ;mandel d3=0 z=z*u c=z if (rs) ;reset z=0 endif vb=vv1 if (vb) if (so1) ;m_m multiplication mm=mm+mm endif c=0.4*log(sqr(pixel^mm)) ;m_m init endif start=1 endif elseif (t>mi2) ;counter > maxit2 u=2*(fn2(t/fac2)) ;warpeffect rs=inr1 ab=ab1 ;frm2 if (d1) if (rs) z=pixel endif c=p1*u vb=v2 d3=vb else d3=0 z=z*u c=z if (rs) ;reset z=0 endif vb=v1 if (vb) if (so1) ;m_m multiplication mm=mm+mm endif c=0.4*log(sqr(pixel^mm)) endif endif start=1 if (ir2) t=0 endif endif elseif (bo>b3) ;start=1 z>border3 u=2*(fn3(t/fac3)) ab=bb2 rs=or2 if (dd2) if (rs) z=pixel endif c=p1*u vb=vv4 d3=vb else d3=0 z=z*u c=z if (rs) z=0 endif vb=vv3 if (vb) if (so2) mm=mm+mm endif c=0.4*log(sqr(pixel^mm)) endif start=0 endif elseif (t>mi3) ;start=1 counter>maxiter3 u=2*(fn3(t/fac3)) ab=ab2 rs=inr2 if (d2) if (rs) z=pixel endif c=p1*u vb=v4 d3=vb else d3=0 z=z*u c=z if (rs) z=0 endif vb=v3 if (vb) if (so2) mm=mm+mm endif c=0.4*log(sqr(pixel^mm)) endif endif start=0 ;mainloop only endif endif bo<=ba ;z<=bailout } ----------------------------end-------------------------------------------