Jim Muth wrote:
Today's image shows a very fine example of what I call a dry lake. It is a place where a midget almost appears, but doesn't quite make it to the surface.
I've often wondered about such outside regions-- it's nice to use anomalies in the outside coloration to filaments, ie. the path that the archipelago of midgets takes in the classic M-set (well, paths I guess since it appears to be a tree that branches continuously, a curve with Hausdorff dimension >1), but when we see such in these Mandeloids with more exotic definitions I always wonder whether the anomalies really are the auras of midgets or whether such regions are just mirages caused by the higher order derivatives of the iteration process. I don't think we can assume that observations on the classic set hold on the extended ones.
It would seem to be easy to track down the midget by varying initial Z until the midget appears, but this plan will not work. To begin, I am not sure that there actually is a midget lying nearby.
I don't think there is, for a perhaps unexpected reason (beautiful rendering, BTW). Obviously, for midgets or the main body of a mandeloid to be visible you have to have a contiguos area area of inside points bordering outside points surrounding it. The perturbed sets of the classic M-set starting a a fixed z_init != critical point 0 usually show a mixture of bud-like borders and "eroded" borders where regions that were inside points in the maximal set no longer converge. Now I've noticed that if you render more complicated mandeloids which have a few critical points with z_init at only one cp value, the resultant inside set looks pretty much like a perturbed classic M-set, with the partially eroded borders. But, if the same set is rendered to take a union of _all_ the inside sets generated from every critical point, the main body and midgets appear in whole, uneroded form. Different parts of the set will be covered by different critical points, and many points will be covered by several cps, but the union of all of them has smooth boundaries with the usual (sometimes stretched) buds. There will never be any midgets in an area that is inside the maximal (unioned) set but generally outside a set generated from a single critical point, for the simple reason that the whole area is on the _inside_ of the actual uneroded mandeloid. Your set today has apparently 302 critical points, so choosing any single one like your formula does to start the iteration on is likely just to show a highly eroded thing for the inside. Much of what appears to be outside points will just be erosion area, and there cannot be any midgets in there, since its all inside the true mandeloid. The beauty in your image today comes from your expert use of the outside=tdis option and the nice palette, channeled by the shape of the erosion. I ran the scene starting at all 302 critical points and found something surprising: the reason there were no midgets is that the _whole_ scene area appears to be on the INSIDE of the set when all cps are used. I changed the rendering somewhat and set outside=0 (which was a highly recognizable color, red) so outside areas would show up. No red areas appeared.. Anyway, I rendered it so that each successive critical point showed up as a successive color in the palette; this completly obliterates the smoothly ordered gradation with its intrinsicly beautiful layering of your fractal-- there are no outside points for the outside=tdis option to work its effect on. In fact, the view of the very same region transforms into something totally different, changing from smoothly ordered layering into a scene of pure unadulterated chaos. The maximal inside sets I've generated before with just a few critical points have looked fairly mundane, like a geographic map with a few areas comprising a recognizable mandeloid whole, but this one, with 302 different sources is just all over the place: spirals of dust, smooth compact blobs, blobs with torn-looking edges only part of the circumference, double spirals, etc. Instead of your smooth whorls of layered variation there is in its place a jumbled melange of dissonant chaos. In case you want to see a glimpse of the dysfunctionally unified surreality that underlies your selectively pretty alternate one, try rendering this (caveat: it takes a long time because of the large number of critical points of the generator; I'd like to just attach the .gif if it were not forbidden on this forum): ==================BEGIN PAR============================== AlternateAbstract { ; Jim M's "Alternate Reality" redone as the union of all ; sets with different critical points, colored by assoc ; cp starting with cp=0 (chartreuse). Notice no outside ; points evident (red). ; Fractint Version 2003 Patchlevel 1 reset=2003 type=formula formulafile=fatouthm.frm formulaname=frctnlexpmandelo2 function=recip passes=1 center-mag=-3.95955163900000000/-0.15869233282000000/509.596/1/-22.49999\ 99999949054/-1.022827655905445e-011 params=1.5/-1.24/0.19/-7.26/0/0/302/0/0/0 float=y maxiter=1200 inside=zmag outside=0 periodicity=10; colors=@altreal2.map colors=z00cz0nz0zz0<3>cSKYJPSAU<3>SBBSB6SC1<3>SXHSaLSfP<2>Twa<17>OaVO`UN\ ZUNYTNXTMVS<11>baMcbLebL<11>sjDtjDukC<3>zn9<9>aV4ZT4XR3<3>MJ1<10>QDKQDMQ\ CORCQRBSSAU<26>SVXSVXSWX<2>SZYSZYSYX<21>SGDSFCSFB<2>SC8SB7SB8<26>UVZUW_U\ X`<2>UZcV_eVZe<38>Z5jZ4jZ4j<3>_0k000kkk } ===================END PAR=============================== =====================BEGIN FRM=========================== FrctnlExpMandelO2{ ; like RatnlExpMandelO2, but make params more compatible ; with Jim M's MandelbrotMix2; generator z -> k1*(k2*z^A + k3*z^B) + fn1(C); ; all coefs real,p1=(k2,A),p2=(k3,B),p3=(k1-1,bailout-100),p4=(#cp,cpoi), ; p5=(max inside color,0). Use inside=zmag,periodicity=0 IF(isinit==0) ;default inits: bailout = imag(p3) + 100 k1 = real(p3) + 1 IF(real(p4)<=0) isguesscps = 1 ; if #crit pts not specified try to guess ELSE isguesscps = 0 ENDIF IF(real(p5)<=0) maxinscol = 253 ELSE maxinscol = real(p5) ENDIF ;end default inits A = imag(p1), B = imag(p2) k2 = real(p1)*k1 , k3 = real(p2)*k1 ; k1 not needed after this cpoi = imag(p4) maxit = maxit diff = abs(A - B) IF(isguesscps) ; estimate cps by shifting decimal pt til integer try = diff IF(try == trunc(try)) ; diff is an integer, no shifting nd = 0 ; number of decimals shifted ELSEIF(try*10 == trunc(try*10)) ; one past decimal try = try * 10, nd = 1 ELSEIF(try*100 == trunc(try*100)) ; two past decimal try = try * 100, nd = 2 ELSEIF(try*1000 == trunc(try*1000)) try = try * 1000, nd = 3 ELSE ; 4 decimals is arbitrary limit for guessing try = try * 10000, nd = 4 ENDIF IF(nd == 4) ; up to 4 occurences of factors 2 or 5 can be elim IF(try == trunc(try/5)*5), try = try/5, ENDIF IF(try == trunc(try/2)*2), try = try/2, ENDIF ENDIF IF(nd >= 3) IF(try == trunc(try/5)*5), try = try/5, ENDIF IF(try == trunc(try/2)*2), try = try/2, ENDIF ENDIF IF(nd >= 2) IF(try == trunc(try/5)*5), try = try/5, ENDIF IF(try == trunc(try/2)*2), try = try/2, ENDIF ENDIF IF(nd >= 1) IF(try == trunc(try/5)*5), try = try/5, ENDIF IF(try == trunc(try/2)*2), try = try/2, ENDIF ENDIF cps = try + 1 ELSE cps = trunc(real(p4)) ENDIF angle = 2 * pi / diff ; angle to rotate critical points rfactor = cos(angle) + flip(sin(angle)) ; rotate by complex mult cpmod = ( -k3*B / A / k2 ) ^ ( 1/diff ) ; principal value isnotdiff = 0, execseq = 0 ; flags IF(cpoi<0 || cpoi>=cps) isnotdiff = 1 ; flag to not do difference map execseq = 1 ; flag cp sequence 0 -> cpmod -> cpmod multiples cpfirst = 0 ELSEIF(cpoi == 0) isnotdiff = 0 execseq = 1 cpfirst = 0 ELSE ; ordinary cp sequence cpoi -> 0 -> cpoi multiples isnotdiff = 0 IF(cpoi == 1) cpfirst = cpmod ELSE angle1 = angle * (cpoi - 1) cpfirst = cpmod * ( cos(angle1) + flip(sin(angle1)) ) ENDIF ENDIF isinit = 1 ENDIF zp = cpcurr = cpfirst ; z proxy--inside z is used for rendering cpctr = 0, C = pixel, diverged = 0, iter = 1, colctr = 1 : iter = iter + 1 IF(diverged) ; then go to next critical point cpctr = cpctr + 1, colctr = colctr + 1 ; increment counters IF(colctr > maxinscol) ; if more cps than colors, cycle modulo colctr = colctr - maxinscol ENDIF IF( (execseq==1 && cpctr>1) || (execseq==0 && cpctr>2) ) zp = cpcurr = cpcurr * rfactor ELSEIF(execseq==1) zp = cpcurr = cpmod ELSEIF(cpctr==1) zp = cpcurr = 0 ELSE zp = cpcurr = cpfirst * rfactor ENDIF ENDIF IF(cpctr<cps) zp = k2*zp^A + k3*zp^B + fn1(C) ; the actual iteration formula diverged = ( |zp| > bailout ) ENDIF z = zp ; for outside rendering IF(diverged==0 && iter==maxit) ; inside point: set z for zmag rendering IF(isnotdiff) ins_col = 1 ELSE ins_col = colctr ENDIF z = sqrt( (ins_col*2-1) / maxit ) ENDIF cpctr<cps || diverged==false } ====================END FRM======================= Regards, Hiram