News:
 <- Like it? why not donate for continuity of this forum!

 Pages: 1 [2] 3 4 ... 10   Go Down
 Author Topic: Kaleidoscopic (escape time) IFS  (Read 37666 times) Description: An interresing class of fractals 0 Members and 1 Guest are viewing this topic.
David Makin
Global Moderator
Fractal Senior

Posts: 2276

 « Reply #15 on: May 03, 2010, 09:45:19 PM »

Thanks.
 Logged

The meaning and purpose of life is to give life purpose and meaning.

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
JosLeys
Fractal Lover

Posts: 200

 « Reply #16 on: May 03, 2010, 10:47:15 PM »

Quote
The -2 is in reality the radius of a bounding sphere of the fractal..

I'm not sure I understand.
These things do not turn to dust as far as I can see.
I'm now doing something where I've zoomed to a magnification of about 1.5 million, using just DE=sqrt(R)/scale^i. I simply stop if DE<A, and my A is now about 1E-11. Must say I have max iters set at 100 and bailout at 1000.

Here it is (without anti aliasing) :
 KaleidoIFS_010.jpg (176.08 KB, 640x640 - viewed 306 times.) Logged
Buddhi
Fractal Molossus

Posts: 678

 « Reply #17 on: May 03, 2010, 10:49:08 PM »

These Kaleidoscopic fractal are amazing!!! I have to try with this.
 Logged

subblue
Conqueror

Posts: 114

 « Reply #18 on: May 03, 2010, 11:26:12 PM »

I'm loving this new algorithm. Lots to explore

Lots of windows:

And the inside:

 Logged

www.subblue.com - a blog exploring mathematical and generative graphics
knighty
Fractal Molossus

Posts: 650

 « Reply #19 on: May 04, 2010, 02:08:56 PM »

Quote
The -2 is in reality the radius of a bounding sphere of the fractal..

I'm not sure I understand.
These things do not turn to dust as far as I can see.
I'm now doing something where I've zoomed to a magnification of about 1.5 million, using just DE=sqrt(R)/scale^i. I simply stop if DE<A, and my A is now about 1E-11. Must say I have max iters set at 100 and bailout at 1000.

Here it is (without anti aliasing) :
With a max iterations of 100 you don't need the -2. If scale=3, A=1E-11 corresponds roughly to 21 iteration. So with max iters set 100 you can (in principle) zoom much deeper before getting dust.

Here is a sequence for the last picture of the original post. this is done with rotate1()=rotate2(). the rotation is about the z axis.

Here is the algorithms I use for simple tetra-sierpinski and menger sponge. A nice feature of these is that you can control the recursion depth just like the classic "geometric" method:
Code:
sierpinski(x,y,z){
scale=2;
r=0;
for(i=0;i<MI && r<1;i++){
x1=rot[0][0]*x+rot[1][0]*y;
y1=rot[0][1]*x+rot[1][1]*y;
z1=z;
x=x1;y=y1;z=z1;

if(x-y<0){x1=y;y=x;x=x1;}
if(x+y<0){x1=-y;y=-x;x=x1;}
if(x-z<0){x1=z;z=x;x=x1;}
if(x+z<0){x1=-z;z=-x;x=x1;}
if(y-z<0){y1=z;z=y;y=y1;}
if(y+z<0){y1=-z;z=-y;y=y1;}

r=(x+y-z-1)*1/sqrt(3);

x=scale*x-(scale-1);
y=scale*y-(scale-1);
z=scale*z-(scale-1);
}
return r*scale^(1-i);
}

menger(x,y,z){
scale=3;
r=0;
for(i=0;i<MI && r<1;i++){
x=abs(x);y=abs(y);z=abs(z);
if(x-y<0){x1=y;y=x;x=x1;}
if(x-z<0){x1=z;z=x;x=x1;}
if(y-z<0){y1=z;z=y;y=y1;}

x1=x-1;y1=y-1;z1=z-1;
r=max(x1,max(y1,z1));
/*nice alternative that gives rounded (external) edges.
It's not necessary to calc the sqrt() at eache iteration
if(x1<0 && y1<0 && z1<0) r=max(x1,max(y1,z1));
else r=sqrt(max(0,x1)^2+max(0,y1)^2+max(0,z1)^2);
*/

x=scale*x-(scale-1);
y=scale*y-(scale-1);
z=scale*z;
if(z>0.5*(scale-1)) z-=(scale-1);
}
r*scale^(1-i)
}
 Logged
bib
Global Moderator
Fractal Senior

Posts: 2047

At the borders...

 « Reply #20 on: May 04, 2010, 03:08:18 PM »

I like a lot the "mechanical" aspect of this cubes.

Next challenge : can anyone do a fractal that will look like the Eiffel tower ?

 Logged

Between order and disorder reigns a delicious moment. (Paul Valéry)
knighty
Fractal Molossus

Posts: 650

 « Reply #21 on: May 04, 2010, 09:39:36 PM »

That should be possible. We already have one that looks a little like "l'arche de la Défense".

I'm loving this new algorithm. Lots to explore

Lots of windows:
<Quoted Image Removed>

And the inside:
<Quoted Image Removed>

The inside looks promising. It would be useful to have a cutting plane at hand for those that have more interresting features inside.

You can add colouring as in this post http://www.fractalforums.com/index.php?topic=2526.msg12794#msg12794. I use this one for the menger sponge family:
Code:
Mengercolor(x,y,z){
r=x*x+y*y+z*z;
c=0;
for(i=0;i<MI;i++){//It is better to use a fixed iterations number to avoid shift when zooming.

rotate1();

c1=0;
c1+=0.5*(1-sgn(x));c1+=0.5*(1-sgn(y));c1+=0.5*(1-sgn(z));
x=abs(x);y=abs(y);z=abs(z);
if(x-y<0){x1=y;y=x;x=x1;c1+=1;}
if(x-z<0){x1=z;z=x;x=x1;c1+=1;}
if(y-z<0){y1=z;z=y;y=y1;c1+=1;}

rotate2();

x=scale*x-stc[0]*(scale-1);
y=scale*y-stc[1]*(scale-1);
z=scale*z;
if(z>0.5*stc[2]*(scale-1)) {z-=stc[2]*(scale-1);c1+=1;}
c+=c1*0.5;
r=x*x+y*y+z*z;
}
return c;//this will be used as an index into a palette
}
 Logged
Hamilton
Alien

Posts: 22

 « Reply #22 on: May 05, 2010, 12:14:14 AM »

That's great shapes you got there, Knighty.
It sounds like a very interesting algorithm, indeed.
Did you use your own renderer to get thoses images?
 Logged
knighty
Fractal Molossus

Posts: 650

 « Reply #23 on: May 05, 2010, 02:17:21 PM »

It is a little, badly written, full of bugs script that runs with evaldraw (a nice program by ken silverman that includes a just in time c-like language compiler).
 Logged
Nahee_Enterprises
World Renowned
Fractal Senior

Posts: 2250

use email to contact

 « Reply #24 on: May 05, 2010, 02:43:49 PM »

I'm loving this new algorithm.  Lots to explore
..........
And the inside:

I like this cut-away view!!
Reminds me of a four barrel carburetor that gave me problems once while I was trying to give it a new kit.

 Logged

Jesse
Fractal Schemer

Posts: 1013

 « Reply #25 on: May 05, 2010, 05:24:14 PM »

Have only done some basics without rotation yet, but it gives also funny alternating hybrids:

Yes, it is a hybrid of vegetables and mint bonbons...
 Logged
knighty
Fractal Molossus

Posts: 650

 « Reply #26 on: May 05, 2010, 10:09:17 PM »

Nice rendering! (as usual  ) Is it a mix of juliabulb and tetra-sierpinski?
 Logged
JosLeys
Fractal Lover

Posts: 200

 « Reply #27 on: May 05, 2010, 10:22:26 PM »

Knighty, do you have some background information on how you constructed the generator code?
I mean, how does does
if(x-y<0){x1=y;y=x;x=x1;}
if(x+y<0){x1=-y;y=-x;x=x1;}
if(x-z<0){x1=z;z=x;x=x1;}  etc etc

generate the Sierpinsky ? ..and the code for the Menger sponge is also a bit of magic in my eyes..

I was trying to generate an octahedral Sierpinsky, but so far all my efforts have failed..
 Logged
knighty
Fractal Molossus

Posts: 650

 « Reply #28 on: May 05, 2010, 11:22:45 PM »

These are the symmetry planes of the tetrahedra...etc. I have to go now. I'll try to give more info tomorrow.
 Logged
msltoe
Iterator

Posts: 161

 « Reply #29 on: May 06, 2010, 12:46:09 AM »

Good stuff here...

If you remember some of my escape-time Sierpinskis, what you can do in general is define a set of vertices (e.g., those for an octahedron). Then for a given "z", find the nearest vertex. Reflect off the vertex, etc. using 2*(vertex)-point or something like that.

http://www.fractalforums.com/3d-fractal-generation/sierpinski-like-fractals-using-an-iterative-function/

-mike
 Logged
 Pages: 1 [2] 3 4 ... 10   Go Down