News: Check out the originating "3d Mandelbulb" thread here
 
*
Welcome, Guest. Please login or register. November 21, 2014, 06:36:14 PM


Login with username, password and session length



Pages: 1 ... 3 4 [5] 6 7 ... 10   Go Down
  Print  
Share this topic on DiggShare this topic on FacebookShare this topic on GoogleShare this topic on RedditShare this topic on StumbleUponShare this topic on Twitter
Author Topic: Kaleidoscopic (escape time) IFS  (Read 35318 times)
Description: An interresing class of fractals
0 Members and 1 Guest are viewing this topic.
JosLeys
Iterator
*
Posts: 199


WWW
« Reply #60 on: May 12, 2010, 07:36:55 PM »

I managed to also create the dodecahedron and icosahedron version.
For the dodeca, I scale from the point <1,1,1> (scale=phi^2) and reflect on the planes with normals :
<-1,phi-1,1/phi-1>
<phi-1,1/phi-1,-1>
1/phi-1,-1, phi-1 >

For the icosa, it's the point <phi,1,0> (scale=2.35) and the planes with normals :
<1-phi,-1,phi>
<-phi,phi-1,1>
<-phi,phi-1,-1>
<1-phi,-1,-phi>
<0,-1,0>


* KaleidoIFS_021.jpg (132.38 KB, 960x960 - viewed 149 times.)

* KaleidoIFS_020.jpg (157.99 KB, 960x960 - viewed 115 times.)
Logged
knighty
Fractal Bachius
*
Posts: 570


« Reply #61 on: May 12, 2010, 10:11:06 PM »

I think my rotation matrix could probably be replaced with a Quaternion implementation, which should be a little quicker - although the matrices are only calculated once at the start so will have negligible overhead compared with the rest of the script.
IMHO it will not be faster on GPU. A matrix-vector multiplication is equivalent to 3 dot products. I suspect modern GPU do them in parallel. in the case of quaternion you have to do two quaternion-multiplactions. Each one needs a dot product, a cross product and some additions and multiplications. Ok, I have to try both before giving my opinion. grin

I managed to also create the dodecahedron and icosahedron version.
For the dodeca, I scale from the point <1,1,1> (scale=phi^2) and reflect on the planes with normals :
<-1,phi-1,1/phi-1>
<phi-1,1/phi-1,-1>
1/phi-1,-1, phi-1 >

For the icosa, it's the point <phi,1,0> (scale=2.35) and the planes with normals :
<1-phi,-1,phi>
<-phi,phi-1,1>
<-phi,phi-1,-1>
<1-phi,-1,-phi>
<0,-1,0>
Haven't you applied reflections about xy,xz and yz planes(using x=abs(x); y=abs(y) and z=abs(z))?
Logged
JosLeys
Iterator
*
Posts: 199


WWW
« Reply #62 on: May 12, 2010, 11:08:30 PM »

Quote
Haven't you applied reflections about xy,xz and yz planes(using x=abs(x); y=abs(y) and z=abs(z))?

No, what I do is take a vertex of the polyhedron, and the planes through the origin perpendicular to the edges that meet at that vertex. So for the dodeca, this is three planes, and five planes for the icosa.
Logged
knighty
Fractal Bachius
*
Posts: 570


« Reply #63 on: May 12, 2010, 11:18:00 PM »

Thanks! I was wondering what is the minimal set of reflexion planes necessary to get a given (regular)polyhedra-sierpinski. It seems to be 3. That should make things faster smiley.
Logged
Softology
Safarist
******
Posts: 84


« Reply #64 on: May 13, 2010, 02:11:45 AM »

@Softology: Are you doing rotation around [Cx,Cy,Cz] instead of [0,0,0]? This will give you different results.

Yes I was doing the rotations around CX,CY,CZ.  Thanks for the code.  Changing the rotations around the origin gets the tree structures.



Jason.
Logged
Softology
Safarist
******
Posts: 84


« Reply #65 on: May 14, 2010, 06:18:05 AM »

These new Kaleidoscopic IFS Frcatals are really great.  A lot of potential to play with.
Here is a quick sample movie of the full octohedral folding going from 0 to 6.3 degrees on the Y axis (only on the first rotation before the folding, the second rotation is 0,0,0).

<a href="http://www.youtube.com/v/DNoXnu8UwXM&rel=1&fs=1&hd=1" target="_blank">http://www.youtube.com/v/DNoXnu8UwXM&rel=1&fs=1&hd=1</a>

Jason.
« Last Edit: May 14, 2010, 06:20:07 AM by Softology » Logged
KRAFTWERK
Fractal Supremo
*****
Posts: 1172


Virtual Surreality


WWW
« Reply #66 on: May 14, 2010, 10:54:24 AM »

Oh.. That folding can be this beautiful...

This rendering beats any origami I ever have seen...  afro

4D origami  cheesy

Thank you for that movie Softology!

I hav not seen many animations of transitions like this of the mandelbox...
Logged

Fractalis Surrealis: http://mandelwerk.deviantart.com/gallery/28152444
And my 3.3 GIGA PIXEL zoomable mandelbulb: http://mandelwerk.com/
kram1032
Fractal Senior
******
Posts: 1605


« Reply #67 on: May 14, 2010, 12:17:12 PM »

That's one of the best IFS animations I've seen so far!
It seems like slowly the borders between different kinds of fractals vanish...
Maybe, a formula can be found, that basically can create any fractal, done so far, without being too complex?
Logged
JosLeys
Iterator
*
Posts: 199


WWW
« Reply #68 on: May 14, 2010, 07:12:27 PM »

Take three reflection planes in a dodecahedron, one through an edge, one through a diagonal of one of the pentagonal sides and one perpendicular to the said edge. These form a triangle. Changing the scaling point inside that triangle gives, amongst others, the following shapes.
One of them is a soccer ball..the first ever fractal one!


* dodeca.jpg (60.94 KB, 719x720 - viewed 112 times.)
Logged
kram1032
Fractal Senior
******
Posts: 1605


« Reply #69 on: May 14, 2010, 07:42:54 PM »

yay, a soccer ball cheesy

give those darn soccer players that ball. It's so pretty, they'll stop spamming TV  grin
Logged
Tglad
Fractal Bachius
*
Posts: 591


WWW
« Reply #70 on: May 14, 2010, 09:35:57 PM »

This topic is really awesome and I personally think these fractals are the most significant 3d ones that have been discovered here on fractal forums... and I suspect they will become common place examples of 3d fractals, not least because they generalise known ones (menger sponge, sierpinski tetrahedron) without loosing their properties such as being simple, continuous mapping, connected (in most cases) and most importantly, conformal.

You could say that these are julia sets of the type of fractal described here http://www.fractalforums.com/3d-fractal-generation/continuous-conformal-mandelbrots/.
However, after making that thread I discovered that it is impossible to do the +C part to these fractals and keep the result conformal. So adding +C to the above fractals may add more variety, but will add some stretch too. For this reason it seems to me better to view these Julias directly, as this thread is doing, since the Mandelbrot version (with the +C) is in some sense invalid in 3d so long as the fractal involves any rotation.

The folding operation has to be done sequentially, so I am surprised that the resulting fractals (eg the icosahedron) still keep the same symmetries, does the order of folding make a difference to the resulting shape?

The ball-fold (that the mandelbox performs) could be added into the mix as it is the final mobius transform to be added to the set used in this thread (which is reflection, rotation, translation and scale) while keeping the mapping continuous. The unique thing about adding this operation is that it gives spherical geometries, compared to planar ones from the other operations.

Wonderful fractals, am I correct in saying that what makes these different from normal IFS fractals is that they are linear time (you aren't doubling the tests each iteration) so the fractal is tractable and deep zooms are achievable.
« Last Edit: May 15, 2010, 01:52:26 AM by Tglad » Logged

knighty
Fractal Bachius
*
Posts: 570


« Reply #71 on: May 14, 2010, 11:24:13 PM »

Take three reflection planes in a dodecahedron, one through an edge, one through a diagonal of one of the pentagonal sides and one perpendicular to the said edge. These form a triangle. Changing the scaling point inside that triangle gives, amongst others, the following shapes.
One of them is a soccer ball..the first ever fractal one!
grin
Looks definetly that 3 planes are sufficient to obtain platonic and regular-polyhedron-sierpinski smiley. The triangle you described is called the fundamental triangle and the symmetries defined by the planes defined by the edges of that triangle and the origin are in fact the generator set of the group of symmetries of dodecahedron (see Coxeter groups and Wythoff caleidoscopic construction). It should be the same for tetrahedra and octahedra.
When you apply rotations, the resulting fractals will be different depending on the set of symmetry planes used even if they belong to the same symmetry group.

yay, a soccer ball cheesy

give those darn soccer players that ball. It's so pretty, they'll stop spamming TV  grin
grin

Here is a quick sample movie of the full octohedral folding going from 0 to 6.3 degrees on the Y axis (only on the first rotation before the folding, the second rotation is 0,0,0).
Your videos are awesome just like the trees picture. Thank you (because I'm not able patient enought to do that myself grin)

You could say that these are julia sets of the type of fractal described here http://www.fractalforums.com/3d-fractal-generation/continuous-conformal-mandelbrots/.
Yes thay are! They are just a subset of the whole class of fractals based on your ideas. Could we call it "continuous conformal Piecewise transformations fractals"? Azn

However, after making that thread I discovered that it is impossible to do the +C part to these fractals and keep the result conformal. So adding +C to the above fractals may add more variety, but will add some stretch too. For this reason it seems to me better to view these Julias directly, as this thread is doing, since the Mandelbrot version (with the +C) is in some sense invalid in 3d so long as the fractal involves any rotation.
It's true that the "mandelbrot" versions of the "Kaleidocopic IFS" are featureless and not interresting at all.

The folding operation has to be done sequentially, so I am surprised that the resulting fractals (eg the icosahedron) still keep the same symmetries, does the order of folding make a difference to the resulting shape?
I'll try to do some tests but it seems that the answer is "no" in that particular case. You can obtain for example the same dodeca-sierpinski fractal by using different sets of symmetry planes. What surprises me most is that only 3 symmetries are sufficient according to Jos Leys results.

The ball-fold (that the mandelbox performs) could be added into the mix as it is the final mobius transform to be added to the set used in this thread (which is reflection, rotation, translation and scale) while keeping the mapping continuous. The unique thing about adding this operation is that it gives spherical geometries, compared to planar ones from the other operations.
I've tried ball-folds (which center is not necessarily [0,0,0]) in 2d and tested Buddhi's DE technique. everything works as a charm (well, sometimes it's necessary to scale down the estimated distance). No 3D for now though.

Wonderful fractals, am I correct in saying that what makes these different from normal IFS fractals is that they are linear time (you aren't doubling the tests each iteration) so the fractal is tractable and deep zooms are achievable.
Yes! that's what make them so interresting, but they are not really IFS fractals (in general). There are DE technique For IFS that are not exponential in time (see this article). David Makin have also developped a technique similar to one that is described in that article.
« Last Edit: May 14, 2010, 11:28:03 PM by knighty » Logged
Tglad
Fractal Bachius
*
Posts: 591


WWW
« Reply #72 on: May 15, 2010, 02:59:11 AM »

One difference with the ball-fold is that it will make a multi-fractal rather than a simple fractal. So it would be clearer to put Kaleidoscopic+ball-fold into its own category.
I must say I like Kaleidoscopic as a name, and looking at Softology's videos it really does resemble a Kaleidoscope in how it changes form. Maybe 'Kaleido' for short, I just discovered it is Latin for beautiful shape! Which is accurate smiley

I think this might be the most general formula:
Code:
for each I
 float length = dot(point, Direction[I])
 if (length > Distance[I])
   point -= 2*Direction[I]*(length-Distance[I])  // fold
end
point.rotate(AngleVector)
point += Offset
point *= Scale

for any set of Directions, Distances and for any AngleVector, Offset and Scale>1. I don't think it can be made simpler and any rearrangement can be put into the above form I think.

I wonder whether it is possible to generate the (smooth) platonic solids with this method... so a sierpinski tetrahedron can from from a regular tetrahedron just like a Koch curve can form from a straight line.
« Last Edit: May 15, 2010, 03:01:25 AM by Tglad » Logged

knighty
Fractal Bachius
*
Posts: 570


« Reply #73 on: May 15, 2010, 04:39:02 PM »

For the Kaleidoscopic IFS, the transforms are linear or piecewise linear; and conformal or anti-conformal. The fixed point of those transforms, beside the stretching, is [0,0,0]. The fixed point of the stretching transform is defined by [Cx,Cy,Cz]. According to this definition, the menger sponge family is not, strictly speaking, a keleidoscopic IFS.
The most general formula would be:
Code:
point.rotate(AngleVector[k1])
for each I
  point.rotate(AngleVector[i1])
  float length = dot(point, Direction[I])
  if (length > Distance[I])
    point -= 2*Direction[I]*(length-Distance[I])  // fold
  point.rotate(AngleVector[i2])
end
point.rotate(AngleVector[k2])
point += Offset
point *= Scale
if rotatei1 is the inverse of rotatei2, the rotation can be embeded into Directioni instead. i.e. if fold(direction,x) is the folding transform we have:
rotation-1(fold(direction,rotation(x)))==fold(rotation-1(direction),x). In the general case, it can't be simplifyed this way. (or maybe i'm wrong)

By composing the rotations, the above algorithm could be simplifyed to:
Code:
point.rotate(AngleVector0)
for each I
  float length = dot(point, Direction[I])
  if (length > Distance[I])
    point -= 2*Direction[I]*(length-Distance[I])  // fold
  point.rotate(AngleVector[i])
end
point += Offset
point *= Scale

In the "origami IFS", the origin [0,0,0] desn't need to be a fixed point of the foldings and the rotations. It's equivalent to introducing translations in the algorithm.

There are also different types of foldings that can't be obtained by composing simple foldings. one example is the box folding.
Adding sphere foldings, gives the most general set of this kind of fractals. The sphere folding center may be arbitrary. Moreover, it could have 3 centers instead of one if I'm not getting it wrong.

I don't know exactly what multi-fractal means, but if it imply that the fractal dimension depends on position and scale, I think that the Kaleidoscopic IFS are in general multifractal.

It's possible to generate the platonic solids (+ regular and semi-regular solids) with this metod. For example the tetrahedra, octa and dodeca-sierpinski becomes smooth for 1<scale<=1.5.
Logged
Tglad
Fractal Bachius
*
Posts: 591


WWW
« Reply #74 on: May 15, 2010, 11:11:08 PM »

I think you can simplify the folding down to the code I wrote, rotating the point for after each fold should be equivalent to having each subsequent direction vector rotated, and a total rotation at the end. The rotations should also compose down into just 1 rotation.

Good point about the box fold, I suppose unusual folding could fall into a larger category which would need to be individually coded as there are probably loads of types of combined folds.

Multi-fractal means it doesn't have a single fractal dimension, this happens if the scale factor varies with location. ball-fold scales the space more near the minRadius than at the fixed radius, so such fractals can't be given an exact fractal dimension.
Logged

Pages: 1 ... 3 4 [5] 6 7 ... 10   Go Down
  Print  
 
Jump to:  



Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2013, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
Page created in 0.28 seconds with 30 queries. (Pretty URLs adds 0.025s, 2q)