Logo by fractalwizz - Contribute your own Logo!

END OF AN ERA, FRACTALFORUMS.COM IS CONTINUED ON FRACTALFORUMS.ORG

it was a great time but no longer maintainable by c.Kleinhuis contact him for any data retrieval,
thanks and see you perhaps in 10 years again

this forum will stay online for reference
News: Check out the originating "3d Mandelbulb" thread here
 
*
Welcome, Guest. Please login or register. December 07, 2022, 04:54:12 PM


Login with username, password and session length


The All New FractalForums is now in Public Beta Testing! Visit FractalForums.org and check it out!


Pages: 1 2 [3] 4   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: Quasi-Fuchsian fractal goodness  (Read 12779 times)
Description: Yes that old chestnut
0 Members and 1 Guest are viewing this topic.
Aexion
Conqueror
*******
Posts: 116


The Fractal Hermit


WWW
« Reply #30 on: March 02, 2011, 06:03:31 PM »

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

No 3D..no?? grin
They can be 3D but no idea about the formula..
Logged

Fractals all the way..
Incendia for 3D Fractals
Aural for Musical Fractals
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #31 on: March 02, 2011, 06:41:09 PM »

A reminder, but I am sure you already know, Quasi-Fuchsian fractals from a Kleinian group, and the transforms are Mobius transforms, not affine transforms. There is a lot of information in the book Indra's Pearls by Mumford, Series and Wright. I have several UF formulas that deal with Kleinian groups based upon the Indra's Pearls book. None of them are really 3D - thats one of my many projects on the back burner. Here is a an example generated in UF:

Thanks for the reply. smiley

What we all lookin for is one simple (escape time?) formula that generate those shapes, in 3D, but without the massive use of matrices/matrix inversions and all the stuff that you use in your UF formulas, that are really beautiful but slow. Impossible, I fear? undecided But Aexion has obtained a great image without using matrices...  wink
Logged

No sweat, guardian of wisdom!
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #32 on: March 02, 2011, 07:00:59 PM »

http://www.fractalforums.com/theory/triplex-algebra/

It will be nice to assemble the Mobius formula using Triplex algebra. The formula has already been written (needs only to be transposed in a working code and with all the needed parameters; for 3D transform -> 3 dimensions x 2 kinds x 2 transforms = 12 total. a1,a2,a3, b1,... d2, d3.). The last problem is; what transform we must do? How many (important, because MB can take only 6 transforms in total)? In which order? And after the transforms, we must do some other passages? Azn

(Moreover. Are they all with FIXED parameters (a1,a2... d4) are always the same or change in between? The Aexion code uses some magnifications with non fixed factors).

Another question is; the code would be much (I mean really much) more simple if the transformations are INVERSIONS, SCALINGS, SHIFTS, ROTATIONS and no transform is composite (with both constants non zero, or at least if a and b are nonzero c must be, and if c&d!=0 a must be zero if the transform is of simple type) - the Aexion code uses only simple transformations.

inversion -> I can use Sphere Inversion's code. That covers all kinds of inversion with scaling - but with no rotations.
scaling -> simply multiply everything by a number.
shift -> simply add/sub a set of numbers.
rotate -> more complicated and the slowest transform (if expressed in angular terms), but the code is already written and works good.
Otherwise I can write a rot code using triplex polynomial product formula, faster.

A Mobius transform of composite type can always be simplified as;

(a z + b)/(c z + d) = (z + b1)/(c1 z + d1) where b1=b/a, c1=c/a, d1=d/a

Not true if the transform is "simple". I mean that simple transforms can be coded with much simpler and faster codes.
Any simple transform can be expressed in terms of composition of more "fast" transforms. Those transforms can be done without allocating stack memory if fp stack is free.
« Last Edit: March 02, 2011, 08:00:14 PM by DarkBeam » Logged

No sweat, guardian of wisdom!
fractalrebel
Fractal Lover
**
Posts: 211



WWW
« Reply #33 on: March 02, 2011, 09:13:58 PM »

What we all lookin for is one simple (escape time?) formula that generate those shapes, in 3D, but without the massive use of matrices/matrix inversions and all the stuff that you use in your UF formulas, that are really beautiful but slow. Impossible, I fear? undecided But Aexion has obtained a great image without using matrices...  wink

QuasiFuchsianSingleDegenerate renders in 2.95 sec on my system, while EarthMap takes 35.84 sec.  grin
Logged

DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #34 on: March 02, 2011, 09:21:13 PM »

I am studying some combination of IFS logic and Mobius. (Just like "IFS Mobius" methos but very simplified). This function is fantastic looking... A sort of Mobius equivalent to Sierpinski.

tester01 {
; ----------------

init:
  z = #pixel
  ;c = @seed
loop:

  ; here is the main fmla
  ; -------------------
  z = (2*@seed1)/(z-flip(@seed2)) + @edge
  z = (2*@seed2)/(z-flip(@seed1)) + @edge
  if real(z)>@edge
  z = flip(@edge-z)
  endif
  if imag(z)>@edge
  z = 1i*@edge-z
  endif
  ;ends here
bailout:
  true
default:
  title = "Test function"
  center = (0,0)
  param seed1
    caption = "Seed 1"
    default = (1,0)
  endparam
  param seed2
    caption = "Seed 2"
    default = (0,1)
  endparam
  float param edge
    caption = "Edge"
    default = 1
  endparam
  int param itercnt
    caption = "Iter count"
    default = 30
  endparam
  float param bailout
    caption = "Bailout"
    hint = "-disabled-"
    default = 1024
  endparam
}

That renders in a fraction of seconds, is autosimilar and fractal. Too bad, in 2D. But it should be easy to convert in 3D.
Look at the picture to be convinced of the power of this method smiley

The only defect of these solutions is the discontinuity. undecided


* mobius.jpg (182.23 KB, 630x474 - viewed 402 times.)
Logged

No sweat, guardian of wisdom!
fractalrebel
Fractal Lover
**
Posts: 211



WWW
« Reply #35 on: March 02, 2011, 10:13:24 PM »

Looks promising! grin
Logged

DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #36 on: March 02, 2011, 10:37:39 PM »

Looks promising! grin
Definitely my friend cheesy
Too bad needs a radical simplification but I'm afraid I'll not be able...
How can I transform the two consecutive inversion in a single one? smiley And the same have to be generalized in 3d. I think that it can be done with 3 flipped sphere inversions, but what is the correct seq and final formula? cheesy
The two distinct factors must remain unitary (100 010 001) to vary the effect I will use a single rotation after the fixed inversion sum of flipped inversions... shocked

Definitely simpler than it seems but I don't have a symbolic evaluator!
Logged

No sweat, guardian of wisdom!
Aexion
Conqueror
*******
Posts: 116


The Fractal Hermit


WWW
« Reply #37 on: March 02, 2011, 11:58:02 PM »

I am studying some combination of IFS logic and Mobius. (Just like "IFS Mobius" methos but very simplified). This function is fantastic looking... A sort of Mobius equivalent to Sierpinski.

That renders in a fraction of seconds, is autosimilar and fractal. Too bad, in 2D. But it should be easy to convert in 3D.
Look at the picture to be convinced of the power of this method smiley

The only defect of these solutions is the discontinuity. undecided

This is a little formula written in old Fractint style..(sorry, I'm from the elder fractal times)
But if you can translate it to Ultrafractal, you will see an inverted Tree made of mobius transformations (the original attractor is an ifs that looks like a tree..in order to made this, I just inverted the mobius transformations)

P1 is complex and has the real and imag values: (13.37,-6)


ifs4j{
a0 = 0.8475 + flip(0.1812), b0 = 0.4308 + flip(0.2933),
c0 = 0.4665 + flip(0.4267), d0 = -0.7446 +flip( -0.2949),
a1 = -0.0167 + flip(0.4265), b1 = -0.1233 + flip(0.2518),
c1 = 0.1645 + flip(0.1547), d1 = -0.0128 + flip(0.0204),
z=pixel:
o0=(d0*z-b0)/(-c0*z+a0)
op0=|o0-p1|
o1=(d1*z-b1)/(-c1*z+a1)
op1=|o1-p1|
IF (op0<=op1)
z=o0
ELSE
z=o1
ENDIF
|z|<=1000
}

What it does is very simple, calculates both transformations but select the closest one to the p1 point (ala Julia C)
I suspect that for 3d mobius transformation the procedure is the same, but as I told before, the method isn't good, its just a brute force method..

Logged

Fractals all the way..
Incendia for 3D Fractals
Aural for Musical Fractals
David Makin
Global Moderator
Fractal Senior
******
Posts: 2286



Makin' Magic Fractals
WWW
« Reply #38 on: March 03, 2011, 01:40:11 AM »

The problem with the "brute-force' method that Aexion mentions is that in a system using multiple transforms then to get the "complete" attractor using the escape-time method you have to make sure you choose the "correct' transform on each iteration.

In some cases then having a point associated with each transform and choosing the transform to use on a given iteration based on which of these is closest to the current "z" is suffcient.
This is because the correct transform to apply next is based on the current location of the z value - the problem is that these areas/volumes are generally not easy to define, especially when using non-affine transforms, and in some cases the relevant areas/volumes actually overlap and in such cases there are some values of z where more than one possible transform on that iteration must be considered for "correct" "complete" rendering resulting in a more complex and considerably slower branched iteration loop.

If trying to render a Sierpinski Triangle using the escape-time method for example and only applying one transform per iteration and you sometimes choose the wrong transform then parts of the S T will be missing.

In fact the Mandelbox and KIFS are examples of "incorrect" rendering of full IFS systems where the conditional execution of transforms does not necessarily match the areas belonging to those transforms and in fact this failure to render the "true" full IFS is part of what contributes to the final shape.

If the transformations involved are completely affine then there is an alternative method to ray-casting using DE for which my older basic algorithm for escape-time 3D IFS in UF uses (method from Hart et al), this method essentially finds intersection of the viewing ray with the attractor (or not) without any stepping but involves a branching iteration loop - since the Mandelbox and KIFS etc. I've realised that it can be vastly optimised by applying the same location rules regarding transforms to use on each iteration as in the non-branched method in order to reduce the total branching necessary.

In fact a location based method that also allows for branching could be used both for the ray intersection method (if everything is affine) and for the DE method where we have non-affine elements.

Obviously both could also have all the other potential RIFS methods added such as transform x cannot follow (or precede) transform y, transform a cannot be used on the nth iteration or z location based controls (per iteration depth?) to choose the next transform that don't necessarily match the correct location control and these could even vary from one iteration to the next, plus anything else we can dream up smiley

A system such as this would give a lot more control over the results (if wanted) or could just be used to produce competely unpredictable results.

For example, can you guess what you get if you correctly apply the Sierpinski tetrahedron IFS for just one iteration and then continue from then on with a Mandelbrot or Julia (where the constant or zstart are taken from the result of the single IFS iteration) ?
What if you apply the IFS twice first ? Or three times ? etc.
Logged

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

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #39 on: March 03, 2011, 09:19:23 AM »

Another image made with my new Mobius-Sierpinski formula; angles are equal but opposite shocked


* indra.jpg (105.01 KB, 622x514 - viewed 413 times.)
Logged

No sweat, guardian of wisdom!
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #40 on: March 03, 2011, 10:35:08 AM »

I am studying some combination of IFS logic and Mobius. (Just like "IFS Mobius" methos but very simplified). This function is fantastic looking... A sort of Mobius equivalent to Sierpinski.

That renders in a fraction of seconds, is autosimilar and fractal. Too bad, in 2D. But it should be easy to convert in 3D.
Look at the picture to be convinced of the power of this method smiley

The only defect of these solutions is the discontinuity. undecided

This is a little formula written in old Fractint style..(sorry, I'm from the elder fractal times)
But if you can translate it to Ultrafractal, you will see an inverted Tree made of mobius transformations (the original attractor is an ifs that looks like a tree..in order to made this, I just inverted the mobius transformations)

P1 is complex and has the real and imag values: (13.37,-6)


ifs4j{
a0 = 0.8475 + flip(0.1812), b0 = 0.4308 + flip(0.2933),
c0 = 0.4665 + flip(0.4267), d0 = -0.7446 +flip( -0.2949),
a1 = -0.0167 + flip(0.4265), b1 = -0.1233 + flip(0.2518),
c1 = 0.1645 + flip(0.1547), d1 = -0.0128 + flip(0.0204),
z=pixel:
o0=(d0*z-b0)/(-c0*z+a0)
op0=|o0-p1|
o1=(d1*z-b1)/(-c1*z+a1)
op1=|o1-p1|
IF (op0<=op1)
z=o0
ELSE
z=o1
ENDIF
|z|<=1000
}

What it does is very simple, calculates both transformations but select the closest one to the p1 point (ala Julia C)
I suspect that for 3d mobius transformation the procedure is the same, but as I told before, the method isn't good, its just a brute force method..

Fractint formulas are supported by UF for backwards compatibility. wink
I see no trees, but a fascinating spiral! smiley


* spiral.jpg (76.1 KB, 500x757 - viewed 382 times.)
Logged

No sweat, guardian of wisdom!
Aexion
Conqueror
*******
Posts: 116


The Fractal Hermit


WWW
« Reply #41 on: March 03, 2011, 11:48:42 AM »


Fractint formulas are supported by UF for backwards compatibility. wink
I see no trees, but a fascinating spiral! smiley

Thats because you're close to it..unzoom.. cheesy



* Tree.jpg (94.63 KB, 512x512 - viewed 387 times.)
Logged

Fractals all the way..
Incendia for 3D Fractals
Aural for Musical Fractals
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #42 on: March 03, 2011, 12:20:29 PM »


Fractint formulas are supported by UF for backwards compatibility. wink
I see no trees, but a fascinating spiral! smiley

Thats because you're close to it..unzoom.. cheesy



Yes, but it again looks like a spiral rather than a tree... The irresistible force of the Mobius swirliness wink
Logged

No sweat, guardian of wisdom!
Jesse
Download Section
Fractal Schemer
*
Posts: 1013


« Reply #43 on: March 03, 2011, 09:25:10 PM »

1) I can't use any additional global variable. Only x,y,z,w and Cx,Cy,,Cz,Cw

dfree1+2, deriv2+3

Quote
3) MB formulas I can write have only a loop section. Moreover, they must return only 8. Instead I can make something like;

In assembler, return 8 means that 8 bytes are popped from the stack register, this not a return value.
The reason for it is that 2 pointers are pushed, the pointers for w and the Ieration3d struct.
Logged
Aexion
Conqueror
*******
Posts: 116


The Fractal Hermit


WWW
« Reply #44 on: March 04, 2011, 12:17:29 AM »


Fractint formulas are supported by UF for backwards compatibility. wink
I see no trees, but a fascinating spiral! smiley

Thats because you're close to it..unzoom.. cheesy



Yes, but it again looks like a spiral rather than a tree... The irresistible force of the Mobius swirliness wink

Oh, rotate the fractal counterclockwise 45 degrees (at least on my image), you will see the tree (ok.. add a lot of imagination)..
But not always the Mobius gives swirliness..  grin



* Gears.jpg (196.07 KB, 620x620 - viewed 397 times.)
Logged

Fractals all the way..
Incendia for 3D Fractals
Aural for Musical Fractals
Pages: 1 2 [3] 4   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
Distributed computing for fractal goodness Let's collaborate on something! twinbee 13 3259 Last post January 15, 2010, 06:08:49 PM
by cKleinhuis
Quasi-Quasi Mandelbulb3D Gallery bib 1 606 Last post December 20, 2011, 02:58:26 PM
by bib
quasi fuchsian group in the quaternion algebra Mandelbulb3D Gallery ericr 0 378 Last post December 20, 2012, 09:52:07 AM
by ericr
Mysterious site with encrypted messages and quasi-quasi-fuchsian fractal (?) Fractal News across the World KRAFTWERK 3 1055 Last post December 30, 2015, 08:47:54 PM
by KRAFTWERK
Global Hazard ( Quasi-Quasi-Fuchsian ) Mandelbulb3D Gallery KRAFTWERK 0 471 Last post April 21, 2016, 08:29:44 PM
by KRAFTWERK

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines

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