Welcome to Fractal Forums

Fractal Software => 3D Fractal Generation => Topic started by: DarkBeam on March 29, 2011, 08:38:29 PM




Title: 3D Koch cube (escape time) + formula
Post by: DarkBeam on March 29, 2011, 08:38:29 PM
Anyone knows if this formula is convertible to escape-time ifs for MB3d or something... :-\ I'm not good at this, plus I'm trying to do a formula by scratch without success. Please help me :sad1: :'(

http://bernhardhaeussner.de/blog/65_Processing%3A_3D-Koch-Kurve_mit_Sierpinski-Dreieck

Source code;

fraqTriang trs[]=new fraqTriang[4];

void setup(){
  size(640, 480, P3D);
  noStroke();
  fill(150,150,150,20);
  int bigrad=200;
  int req=6;
  
  PVector A=new PVector(-bigrad,0,0);
  PVector B=new PVector(bigrad/2,0,-173.21);
  PVector C=new PVector(bigrad/2,0,173.21);
  PVector D=new PVector(0,-bigrad*(sqrt(6)/3),0);
  
  trs[0]=new fraqTriang(A,B,C,req);
  trs[1]=new fraqTriang(A,D,B,req);
  trs[2]=new fraqTriang(A,C,D,req);
  trs[3]=new fraqTriang(B,D,C,req);
}


void draw(){
  background(255);
  lights();
  
  float winkel=(mouseX/float(width))*TWO_PI;
  float xpos=cos(winkel);
  float ypos=sin(winkel);
  float radius=300.000;
  camera(xpos*radius, mouseY, ypos*radius, // eyeX, eyeY, eyeZ
         0.0, -50.0, 0.0, // centerX, centerY, centerZ
         0.0, -1.0, 0.0); // upX, upY, upZ
      
  for (int i=0;i<trs.length;i++) {
    trs[i).display();
  }
  //saveFrame("frames/koch3d-####.png"); //uncomment to record
}

class fraqTriang{
  PVector PointA;
  PVector PointB;
  PVector PointC;
  fraqTriang recTris[]=new fraqTriang[6];
  int rec;
  float scaling;
  
  fraqTriang(PVector A,PVector B,PVector C, int recursion){
    scaling=0.7;
    PointA=A;
    PointB=B;
    PointC=C;
    rec=recursion;
    applyRecursion ();
  }
    
 void applyRecursion () {
    if (rec!=0) {
      PVector PointAB2=PVector.add(PointA,PointB);
      PointAB2.div(2);
      PVector PointAC2=PVector.add(PointA,PointC);
      PointAC2.div(2);
      PVector PointBC2=PVector.add(PointB,PointC);
      PointBC2.div(2);
      
      PVector PointZ=PVector.add(PointA,PointB);
      PointZ.add(PointC);
      PointZ.div(3);
      PVector PointAB=PVector.sub(PointA,PointB);
      PVector PointAC=PVector.sub(PointA,PointC);
      PVector PointH=PointAB.cross(PointAC);
      PointH.normalize();
      PVector PointAAB2=PVector.sub(PointA,PointAB2);
      float a=PointAAB2.mag();
      float pheight=a*(sqrt(6)/3)*scaling;
      PointH.mult(-pheight);
      PVector PointZH=PVector.add(PointZ,PointH);
      
      recTris[0]=new fraqTriang(PointA,PointAB2,PointAC2,rec-1);
      recTris[1]=new fraqTriang(PointB,PointBC2,PointAB2,rec-1);
      recTris[2]=new fraqTriang(PointC,PointAC2,PointBC2,rec-1);
      
      recTris[3]=new fraqTriang(PointZH,PointAC2,PointAB2,rec-1);
      recTris[4]=new fraqTriang(PointZH,PointAB2,PointBC2,rec-1);
      recTris[5]=new fraqTriang(PointZH,PointBC2,PointAC2,rec-1);
    }
  }  

  
  void display () {
    if (rec==0) {
      beginShape();
      vertex(PointA.x, PointA.y ,PointA.z);
      vertex(PointB.x, PointB.y ,PointB.z);
      vertex(PointC.x, PointC.y ,PointC.z);
      endShape(CLOSE);
    } else {
      for (int i=0; i<recTris.length;i++) {
        recTris.display();
      }
    }
  }
  
}

The interesting part is highlighted... :dink:


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: DarkBeam on March 29, 2011, 08:43:22 PM
Obviously, I don't ask for the MB formula, only a C-style clean source code will be enough... :dink:

IN = x,y,z (3d current point) + size
OUT = x,y,z

Like this

http://www.fractalforums.com/3d-fractal-generation/kaleidoscopic-(escape-time-ifs)/


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: msltoe on April 15, 2011, 02:31:48 PM
DarkBeam: I've been thinking recently about how to make arbitrary IFS fractals using escape time. It's a little tricky to do, but well worth it when we figure it out.
The problem is that escape time works by taking functions of functions of functions, etc. Each time a function is applied it skews the entire 3-D space. If the function isn't conformal then after a few iterations space gets drawn out into spikes.

Meanwhile, recursive IFS's don't transform the entire space over each iteration, just a few registration points (i.e., A, B, C). The child object has essentially a fresh new Euclidean (orthogonal) space to be generated in.

So, I've concluded that for escape time, if the function has non-uniform scaling, it must be re-scaled on the next few iterations to restore uniform space. E.g. , if a matrix specifies the function, then some variant of the matrix inverse must be used on the next step to restore the space to conformal.

-mike


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: DarkBeam on April 15, 2011, 06:04:10 PM
DarkBeam: I've been thinking recently about how to make arbitrary IFS fractals using escape time. It's a little tricky to do, but well worth it when we figure it out.
The problem is that escape time works by taking functions of functions of functions, etc. Each time a function is applied it skews the entire 3-D space. If the function isn't conformal then after a few iterations space gets drawn out into spikes.

Meanwhile, recursive IFS's don't transform the entire space over each iteration, just a few registration points (i.e., A, B, C). The child object has essentially a fresh new Euclidean (orthogonal) space to be generated in.

So, I've concluded that for escape time, if the function has non-uniform scaling, it must be re-scaled on the next few iterations to restore uniform space. E.g. , if a matrix specifies the function, then some variant of the matrix inverse must be used on the next step to restore the space to conformal.

-mike
:)

That is true! I use a particular trick for those IFS, I do all calculations in a single formula that must be executed once and finds which is the "index" of the point and then does the transform. The depth must be previously specified, unlike other transforms. :)

The problem here is that I can't find those "inclined axis" (and the formula has many bifurcations), so can you help me on the algorithm?


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: DarkBeam on April 15, 2011, 06:24:49 PM
This is a scheme of the transform, but it's hard to write it, I get lost... :sad1:

(http://img37.imagefra.me/i54f/kriptokapi/cigk_6d1_u6bci.png) (http://i.imagefra.me/278i6c4h)

At first we need to bring all 3D space to the "red area", with a 3D rotation (it's already hard!)

Then, we must do a translate+scaling for regions 1 and 3 and an additional rotation for 2 and 4.

What I miss is the exact values for all vectors and angles! :'(


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: msltoe on April 16, 2011, 12:24:26 AM
DarkBeam,

 Start with something simpler like an escape time IFS for the 2D snowflake.
 
 Also, remember that escape time algorithms always carve out density from the previous iteration. So you want something big in early iterations that gets smaller and smaller.

-mike

 


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: knighty on April 30, 2011, 09:31:17 PM
I'm afraid this is not possible with KIFS. It's not symmetric enought. I've tried the symetric 3D Koch based on a tetrahedra but the result is a simple cube... Maybe I'm wrong. In fact, I hope so.


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: DarkBeam on May 01, 2011, 09:52:07 AM
I'm afraid this is not possible with KIFS. It's not symmetric enought. I've tried the symetric 3D Koch based on a tetrahedra but the result is a simple cube... Maybe I'm wrong. In fact, I hope so.

No, it is actually exact! (too bad! :sad1: ) http://www.math.hmc.edu/funfacts/ffiles/30002.2.shtml

But this formula is different, so it works :)

Any idea for the squarry koch? http://en.wikipedia.org/wiki/File:Quadratic_Koch_3D_(type1_stage2).png

nicer picture http://www.flickr.com/photos/step26/3404694703/in/photostream ;D


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: knighty on May 01, 2011, 06:33:34 PM
But this formula is different, so it works :)
Well you can do it with regular IFS. It is possible to do IFS as escape time fractal but you would need a stack (see this paper. (http://www2.cs.uregina.ca/~hepting/research/dwnld/HePrSa1991ifs.pdf)). You could also do it with some sort of combination between IFS ans KIFS by using the symmetries of that object.
With KIFS it is possible to reproduce only a subset of regular IFS: Those whose Transformation set is symmetric, that is, there is a set of folding planes that transform (the order is important because of the non commutativity of linear operator algebra) any of the IFS transformation to any other. In fact this condition is not sufficient apparently: I coudn't obtain the squarry Koch but the squarry koch + something...Humm... I'm talking like a mathematician. O0 Hope that it makes sens :angel1:.

Any idea for the squarry koch? http://en.wikipedia.org/wiki/File:Quadratic_Koch_3D_(type1_stage2).png

nicer picture http://www.flickr.com/photos/step26/3404694703/in/photostream ;D
Kind of! Here is attached a fragmentarium shader. There are some interresting variations by changing offset, rotation, scale and the order of foldings...


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: DarkBeam on May 01, 2011, 07:24:05 PM
If it will work I will give you a millon dollars! O0


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: DarkBeam on May 01, 2011, 09:06:32 PM
Ok, I have translated to Mandelbulb, but it is discontinue in some points,  :-\ and discontinue figures have a kinda weird look, but it is nice.

Very similar to my Menger Koch. :) I will see if it's worth to add to my DB!


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: knighty on May 01, 2011, 09:19:19 PM
If it will work I will give you a millon dollars! O0
Hehe... deal? :evil1: :rotfl:


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: knighty on May 01, 2011, 09:20:42 PM
Ok, I have translated to Mandelbulb, but it is discontinue in some points,  :-\ and discontinue figures have a kinda weird look, but it is nice.

Very similar to my Menger Koch. :) I will see if it's worth to add to my DB!
A picture?


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: DarkBeam on May 02, 2011, 12:38:01 AM
Too bad they are all weird, due to a branch cut...
I will work on it, and sorry if I havent said THANK YOU! for your precious help friend!


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: msltoe on May 02, 2011, 03:59:50 AM
Something similar to the "squarey" Koch using escape time. It's in Tglad's table, too, I think.
The algorithm is you keep clipping off the corners of 3x3 cubes.


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: Tglad on May 02, 2011, 09:26:18 AM
Yes, it is discussed a bit here: http://www.fractalforums.com/new-theories-and-research/categorising-fractals/msg22585/#msg22585 (http://www.fractalforums.com/new-theories-and-research/categorising-fractals/msg22585/#msg22585)
It's an example of a class of fractal of which there are so few examples of that there was no obvious name, so I called them shells. I'd like to build one out of card, but it would be an arduous job!




Title: Re: 3D Koch snowflake: convert to escape time?
Post by: visual.bermarte on May 02, 2011, 11:29:06 AM
http://alt-fractals.blogspot.com/2011/04/impossible-snowflake.html


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: Tglad on May 02, 2011, 12:01:14 PM
And an alternative: http://www.fractalforums.com/ifs-iterated-function-systems/fun-with-koch-fractals/msg2630/#msg2630 (http://www.fractalforums.com/ifs-iterated-function-systems/fun-with-koch-fractals/msg2630/#msg2630)


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: David Makin on May 02, 2011, 01:31:39 PM
If you're desperate for a Koch (sorry couldn't resist) using the escape-time method and have Ultra Fractal (or ChaosPro I think) then you should be able to get one starting from one of the IFS parameter files here (2D or 3D):

http://ultrafractalwiki.fractalforums.com/Category:David_Makin (http://ultrafractalwiki.fractalforums.com/Category:David_Makin)

If doing 3D it might be best to reset the formula to defaults as a starting point - also the "Monument" is a good basic example of how to create Sierpinski architectures ;)

Of course if using ChaosPro then you should import all the mmf*.ufm and mmf*.ucl files from the UF database before loading any of the above UPRs.


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: DarkBeam on May 02, 2011, 06:37:23 PM
Desperate for a Koch??? :fiery: :rotfl:

Thanks for all the replies, I already knew that there is an huge number of possibilities, and I already have seen those you posted and others but I liked the most the Squarry Koch and the pyramid. :D

David can you share the exact 3D transform you used (edventually with a drawing)? It may come very handy ^-^ (but if it is made of more than 10 matrix don't care :D )


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: DarkBeam on May 02, 2011, 06:57:28 PM
Here is the render Knighty requested.

I know that is very good looking, but ... Not as good as it can look at a 1st sight

I used an HQ for the render, and it hides almost perfectly the noise (but there is a bit of it still...)

There are some unsatisfying strange flying things, but the "substance" is convincing

I modified a bit the original formula, adding an abs(z) in the end, and it seems to work better. ^-^

Too bad, z offsets are not well accepted.

And still rotations don't work, I will enable them when the non-rotated fractal will look perfect! :D


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: DarkBeam on May 04, 2011, 08:15:16 PM
I have ported this algorithm on MB, the result is cute but the noise is annoying. :fiery:

  if abs(x)>1 || abs(y)>1
  x = abs(x)
  y = abs(y)
  z = abs(z)
      x=abs(x);y=abs(y);z=abs(z);
      if(x-y<0)
      x1=y;y=x;x=x1;
      endif
      if(x-z<0)
      x1=z;z=x;x=x1;
      endif
      if(y-z<0)
      y1=z;z=y;y=y1;
      endif
  if (x-xlim)>y
   x = xsub1 - x
   y = yzsub1 -y
   z = yzsub1 -z
   x,y,z *= scale1
   else
   x = (xsub2 - x)*scale2
   y = (yzsub2 -y)*scale2
   z = (yzsub2 -z)*scale2
   endif
  endif

Scale1=Scale2 does not plot, so the only way is to set em differently

The cubes are not perfectly displaced, the formula is still approximated :-\

Params used

.Double Scale 1 = 4
.Double Scale 2 = 3
.Double x limit = .75
.Double dx1 = 1.25
.Double dyz1 = 0
.Double dx2 = 2
.Double dyz2 = 1.5

I am attaching the formula too, that gives nice results but is still noisy :sad1:


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: knighty on May 04, 2011, 11:26:37 PM
Nice indeed. But this is not squarry Koch   :tease: .


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: DarkBeam on May 04, 2011, 11:33:56 PM
Nice indeed. But this is not squarry Koch   :tease: .
The wrong part is when I do y z second folding unconditionally, plus wrong values, what looks good in 2d may be horrible in 3d. More time needed, sir :D


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: DarkBeam on May 05, 2011, 12:24:24 PM
In fact... :D

Now it is okay, but the DE is a trouble. The renders are done with min iters = 8... :-\

  if abs(x)>clim || abs(y)>clim || abs(z)>clim
  x = abs(x)
  y = abs(y)
  z = abs(z)
      x=abs(x);y=abs(y);z=abs(z);
      if(x-y<0)
      x1=y;y=x;x=x1;
      endif
      if(x-z<0)
      x1=z;z=x;x=x1;
      endif
      if(y-z<0)
      y1=z;z=y;y=y1;
      endif
  if (x-xlim)>y
   x = xsub1 - x
   y = yzsub1 -y
   z = yzsub1 -z
   x,y,z *= scale1
   else
   x = (xsub2 - x)*scale2
   if y>yzlim
   y = (yzsub2 -y)*scale2
   endif
   if y>yzlim
   z = (yzsub2 -z)*scale2
   endif
   endif
  endif

correct settings are;

.Double Scale 1 = 3
.Double Scale 2 = 3
.Double x limit = .6666666667
.Double dx1 = 1.33333333
.Double dyz1 = 0
.Double yz limit = .333333
.Double dx2 = .6666666667
.Double dyz2 = .6666666667
.Double Carving limit = 1


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: visual.bermarte on May 09, 2011, 11:08:18 AM
by chance i have found this amazing video showing a sqkoch
http://www.youtube.com/watch?v=SbSo7onX9qI


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: DarkBeam on May 09, 2011, 01:16:06 PM
FANTASTIC ;D ;D ;D

I have done it, now it is continuous, it looks just like in your video (just without the sparkles :evil1: ) anyway I didn't find the correct address for implementing the rotation :angry: :fiery: :fiery:

Now I will upload the code, this is the "pure formula" (escape time...) ideas on how to add more goodies? ;D

Cubic Koch
  ; basic cubic fold (from Menger3 formula)
  x = abs(x)*scale
  y = abs(y)*scale
  z = abs(z)*scale
  if y>x
  t=x
  x=y
  y=t
  endif
  if z>x
  t=x
  x=z
  z=t
  endif
  if z>y
  t=y
  y=z
  z=t
  endif
  ; basic vars
  a=scale-1, b=scale+1, c=x-a, d=x-b
  ; Now, draw the cube WITHOUT making discontinuites in the spatial vars
  ; bring what falls "out of the small cube zone" in the interval (-1;1) (next iter will take care)
  ; z must be folded to get a homogen look (use zfix=1 for a normal koch cube)
  z=zfix-abs(zfix-z)
  if (c<y)
   ; out of the cube ... normalize
   x=c
   y=a-y
  elseif (d>y)
   ; point falls just over the small cube
   x=d
  else
   ; vertical faces of small cube (swap)
   x=y
   y=d
  endif
----------------


Title: Re: 3D Koch snowflake: convert to escape time?
Post by: DarkBeam on May 09, 2011, 01:37:45 PM
Okay, the test parameter. I enabled very high quality (slow render), too bad the structure is hidden by some annoying artifacts in normal quality. :sad1:

Mandelbulb3Dv16{
O.....S....O/...w....2A..............1.......s1E................................
................................OaNaNaNadz1........0./..................y.2.....
................/MU0A....6kHN...i/....E2.....QzIXLua2PrD...........c./...w1.D8Qx
w.EnAnQD1E../2.swsc1au1xz0r2VJpErBuD..IpM1t49x9..................y1...sD...../..
.wHnAngD2Rw3Oc.cazXAWreAEZc2zSWyooeAVOyjTcFzUvMS3t97C1JzzzzvzUNehUisqclj.Zh4j8Hc
aznAWreAEZc2zconlUV0UOyD......o90.....................sD..kz0...................
..............................MRS4.4qtN.kObb/UoRS4.srtN.sVbb/.FSS4..............
.....................wzzz1.U..6.P....M4...EB....W....61....F....8/...I1....UJl22
...U.iVFwxDE./ozPM2Tzz7lz16.mc..zXCc.El18XGQeGyDjvIRhrVAkz1............28.kFrA0.
FWb96aAIVzvh1se7Umvxz0........../6U0.wzzz1................................E.0c..
zzzz.................................2U.8.kzzzD.................................
/6U0.wzzz1...................................2CcN/UvNP6.eeWCNq0.yRii.EJJUk1f..XR
S1.mx3CcN/UvNP6.QsLsUa3.ibhV..bTV1OK.sSq40.ly3CcN/UvNP6.MwLsUa3.ibhV.kqTV1OK.sSq
40.kz3CcN/UvNP6...EsUa3.eeWCNq0.IJ36wk8.wyLsUa3.................................
E.E..2....E.....I....6....kOjB4OTBKRWJ4.7NoI............................4MU/4MU/
4M.................0./........zD...................0./..........................
................................................................................
........................}


Title: Re: 3D Koch cube (escape time) + formula
Post by: Tglad on May 09, 2011, 02:22:10 PM
Excellent video, incidentally the sqkoch is a perfect example of a Tree-shell (https://3508742642023015005-a-1802744773732722657-s-sites.googlegroups.com/site/simplextable/what-is-the-simplex-table/classesOfFractals%282%29.jpg (https://3508742642023015005-a-1802744773732722657-s-sites.googlegroups.com/site/simplextable/what-is-the-simplex-table/classesOfFractals%282%29.jpg)).


Title: Re: 3D Koch cube (escape time) + formula
Post by: knighty on May 13, 2011, 09:32:06 PM
Ok! what about these two ones? ;D
It's a mix between KIFS and msltoes' approache. The DE is not perfect: there are still some discontinuities but it's good enougth. Unfortunately those discontinuities are more severe if one changes the scale, offset or apply rotation. That may mean that hybrids would give some sand effect.


Title: Re: 3D Koch cube (escape time) + formula
Post by: DarkBeam on May 14, 2011, 05:47:19 PM
Ok! what about these two ones? ;D
It's a mix between KIFS and msltoes' approache. The DE is not perfect: there are still some discontinuities but it's good enougth. Unfortunately those discontinuities are more severe if one changes the scale, offset or apply rotation. That may mean that hybrids would give some sand effect.

I won't implement, I put too much effort for mine already to eliminate discontinuities, so won't restart again sorry! ^-^


Title: Re: 3D Koch cube (escape time) + formula
Post by: knighty on May 14, 2011, 08:09:43 PM
There's no problem. :)


Title: Re: 3D Koch cube (escape time) + formula
Post by: DarkBeam on May 14, 2011, 08:50:23 PM
If you have ideas on sierp kock pyramid, anytime :D
Or, i can try to extend kochcube in 4d and with quadray see what happens :D


Title: Re: 3D Koch cube (escape time) + formula
Post by: knighty on May 21, 2011, 08:49:16 PM
If I got something good enought I will aknowledge you.  :)


Title: Re: 3D Koch cube (escape time) + formula
Post by: visual.bermarte on October 13, 2012, 08:05:31 PM
Sorry 4 Necroposting but I need to do it  ;D // this is fragmentarium/koch02's frag. modified this way: define a cube (using distance field technique)  and use its length instead of z.
Code:
float cube=sdToBox( z.xyz, par );
return (length(cube)-2.) * pow(Scale, float(-n));
One can use IQuilez's library to call the definition of sdToBox; par is vec3(-0,90568).
Number of iterations is 4.
(http://fc01.deviantart.net/fs70/i/2012/287/4/b/untitled_by_bermarte-d5hs1fj.png)
Number of iterations here is 11
(http://fc05.deviantart.net/fs71/i/2012/287/c/e/untitled_by_bermarte-d5hr8wb.png)


Title: Re: 3D Koch cube (escape time) + formula
Post by: DarkBeam on November 06, 2012, 11:44:33 AM
Looks excellent! Why oh why don't you post the full source! :dink:


Title: Re: 3D Koch cube (escape time) + formula
Post by: visual.bermarte on November 09, 2012, 01:32:24 PM
This is Knighty's modified script.


Title: Re: 3D Koch cube (escape time) + formula
Post by: visual.bermarte on November 09, 2012, 03:14:02 PM
Test with boxplorer
(http://fc05.deviantart.net/fs71/i/2012/314/0/6/frame_00598_by_bermarte-d5kji1f.png)


Title: Re: 3D Koch cube (escape time) + formula
Post by: DarkBeam on November 21, 2012, 11:53:16 AM
Great, thanks :cantor_dance:


Title: Re: 3D Koch cube (escape time) + formula
Post by: M Benesi on November 28, 2012, 01:15:21 AM
  Made a non DE .frag for it. Also- the non DE version combines VERY well with other formulas.  Actually, if you look at the way I implemented bailout in the Kochy Mag Mandy, I think we can redo other formula types with this dual bailout method and get really awesome results.    Duhh..

  I decided to attach them, but they aren't "finished", in other words, I might have an idea or 2 to implement and some organization to do, such as rename various variables so they are easier to understand.  A couple of cool presets for the Koch Mag Mandy.  Should rename it the Kochy...  Will post a few images later.  Pretty awesome.

  This image is a blown up "Metal" preset.  Set the colorspeed and orbitspeed high for "Metal" coloring.

(https://lh3.googleusercontent.com/-KODYBdsQkYw/ULV4EEwFI6I/AAAAAAAAB3A/zcHNDPFMTm0/s400/Metal%2520Preset.jpg) (https://lh3.googleusercontent.com/-KODYBdsQkYw/ULV4EEwFI6I/AAAAAAAAB3A/zcHNDPFMTm0/s0/Metal%2520Preset.jpg)(https://lh5.googleusercontent.com/-e3uNo4oI1KA/ULWAceuGiqI/AAAAAAAAB34/HehfKQmjIAo/s400/Metal%2520Preset-2.jpg) (https://lh5.googleusercontent.com/-e3uNo4oI1KA/ULWAceuGiqI/AAAAAAAAB34/HehfKQmjIAo/s0/Metal%2520Preset-2.jpg)