Logo by reallybigname - 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: Did you know ? you can use LaTex inside Postings on fractalforums.com!
 
*
Welcome, Guest. Please login or register. April 19, 2024, 10:01:17 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   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: Mobius triplex transformation  (Read 8557 times)
0 Members and 1 Guest are viewing this topic.
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« on: March 04, 2011, 06:39:32 PM »

Since nobody ever tried to write a Mobius transform in triplex coordinate system, and this transform can open a new field of exploration (including the legendary "Mobius IFS" and the Quasi-fuchsians), I thought it was worth to open a new thread. Certainly, the effects that pop out are mind-blowing....
For now I don't know exactly how to obtain the Quasifuchsian fractals because they need many Mobius at once (probably conditional - but for now only normal transform is made), so these examples show only "freak"  effects grin

First example (very basic)


Mandelbulb3Dv16{
M.....S....O/...w....2....kn5sZ9LHy5.bt.QmNK402EXJ.8VXsNl.AGn66hcrruzq5h0QdyM/zD
................................eWsjyKOSQz1........Y./..................y.2.....
................/ME//....6Ut/...n0....E2.....o2AkIM3sFsD/..........c./...w1....U
z.....kD..../..........wz.............................................sD...../..
.w1...sD1BgdG1bddufOIXSS0yZSzMrTYR9fDxrjFlavmMhaZunkaHUigyoTzgBSmSbUTdrDTt7S1K/S
2yn0Q/zAhRYAwWTi9OIf21fj......YA......................sD..kz0...................
.............................UJRR4.wppN.6OLb/.mRR4.irpN.EVLb/UCSR4..............
...........................U..6.P....M4...EB....W....61....F....8/...I1....UJl12
...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....6....E.....I....k....kLBxaMdJrQI/5S........................................
...................wz......................................................zd4jo
B74UzcjTel9RHWrjuvbOwGrYsx1........wz...........................................
.....................U...../....1....2IPVdLOiR460x4S.65.........................
.Qk0.................MaNaNaNatzD........Uz1........wz...........................
................................................................................
................................}


* mobiustriplex.jpg (169.05 KB, 724x1308 - viewed 567 times.)
Logged

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


Fragments of the fractal -like the tip of it


« Reply #1 on: March 04, 2011, 06:46:47 PM »

Mandelbulb3Dv16{
M.....S....O/...w....2....EudzCvp6MpzWrM918k912Egs1.4Z.xL.Q9wf6YctSmzmcK5tA/RvwD
................................9TJ6oo2jP.2........Y./..................y.2.....
................/ME//....6Ur2...s/....E2.....ocKwneo1IoD/..........c./...w1....U
z.....kD..../..........wz.............................................sD...../..
.w1...sDQRde7nMJetPkfd.sBClCzw5LkomhG.ojjEIr3FZ9atHJ5ac9r8/EzMQx2rRXHgnDyyECf8x.
3xHxxK6qqEgwvWa8wHe7r2bj......oL......................sD..kz0...................
.............................UJRR4.wppN.6OLb/.mRR4.irpN.EVLb/UCSR4..............
...........................U..6.P....M4...EB....W....61....F....8/...I1....UJl12
...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....6....E.....I....k....kLBxaMdJrQI/5S........................................
...................................................wz...........................
...wz...........................................................................
.....................E4....3....8....oINiRKNmB1.0x4S.65.........................
.....MU/4MU/4................U.E........kz1........wz.........zD................
................................................................................
................................}


* mobiustriplex.jpg (84.58 KB, 724x653 - viewed 348 times.)
Logged

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


Fragments of the fractal -like the tip of it


« Reply #2 on: March 04, 2011, 06:54:03 PM »

Mandelbulb3Dv16{
M.....S....O/...w....2....EudzCvp6MpzWrM918k912Egs1.4Z.xL.Q9wf6YctSmzmcK5tA/RvwD
................................9TJ6oo2jP.2........Y./..................y.2.....
................/ME//....6kt....s/....E2.....ocKwneo1IoD/..........c./...w1....U
z.....kD..../..........wz.............................................sD...../..
.w1...sDQRde7nMJetPkfd.sBClCzw5LkomhG.ojjEIr3FZ9atHJ5ac9r8/EzMQx2rRXHgnDyyECf8x.
3xHxxK6qqEgwvWa8wHe7r2bj......22......................sD..kz0...................
.............................UJRR4.wppN.6OLb/.mRR4.irpN.EVLb/UCSR4..............
...........................U..6.P....M4...EB....W....61....F....8/...I1....UJl12
...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....6....E.....I....k....kLBxaMdJrQI/5S........................................
...................wz...........................................................
.....................................AnAnAnAnAyDOaNaNaNaNz1.....................
.....................E4....3....8....oINiRKNmB1.0x4S.65.........................
.....MU/4MU/4................U.E........kz1........wz.........zD................
................................................................................
................................}


* mobiustriplex.jpg (94.22 KB, 724x653 - viewed 383 times.)
Logged

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


Fragments of the fractal -like the tip of it


« Reply #3 on: March 04, 2011, 06:59:54 PM »

Last raccomandation.

If used mindlessly the Mobius transform gives garbage. For example, every transform where a=c and b=d returns 1 at every pixel (nothing)

And also, never set both coeffs to zero at the same time (every transform where a=b=0 or c=d=0 are pure "nonsense")...
Logged

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


Fragments of the fractal -like the tip of it


« Reply #4 on: March 04, 2011, 07:26:13 PM »

The quasifuchsian groups? Hard to understand how to get them. I tried with one transform and I see some circles, but it's not enough  grin

Mandelbulb3Dv16{
M.....S....O/...w....2.....z6wqBmVLxzmDgsyUUgV1E.fyFbgl6JwXVOrE8PAG3zsYu/EeKBbyD
.................................LJUZ.jnxz1........A./..................y.2.....
................/ME//....6U2....9.....E2.....QH.y4HiBCqD/..........c./...w1/...U
z.....kD..../..........wz.............................................sD...../..
.w1...sDLUV4kYPXXx1........Yue7cFY2g2.djIadYq3dDuqv3Mc/AtqsMzwbdtS2g2.dj0cOi5/9/
EuX4Y4FGkG.Yy.k9qtGiBCqD......I6......................sD..kz0...................
.............................UJRR4.wppN.6OLb/.mRR4.irpN.EVLb/UCSR4..............
...........................U..6.P....M4...EB....W....61....F....8/...I1....UJl12
...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....E.....I....k....kLBxaMdJrQI/5S.IaQ....................................
...................wz...........................................................
...../.............................wz...........................................
...........................3....A....wJHj7KOpB5JkV5.b/..........................
..............................zD................................................
...............E..............................yD........Uz1.....................
.....................................wzzzzD.....................................
........................................U.2.....................................
................................................................................
..........................................E.....I....M....kL1xaPYZ2RXxKRiFbI....
.....................YE006U.0......................wz........E/E........kz1.....
...wz...........................................................................
........................................................}


More interesting


Mandelbulb3Dv16{
M.....S....O/...w....2....U556qGmTM3.vaRaiwqt23ENTF2TqZApw1FpUBcR7HBzYnotQoyTb.E
................................6UvWMeLiRz1........A./..................y.2.....
................/ME//....6U2....R5....E2.....w30F0kpPCsD/..........c./...w1/...U
z.....kD..../..........wz.............................................sD...../..
.w1...sDW.zuyPxa1yHV6cEBfrwwuqP/2S9EE.fjOgfUJDMIOrf6kjizKjtUzMK2fM9EE.fjWkk8q022
kunK5Esh.//gyIyp4pjpPCsD......I9......................sD..kz0...................
.............................UJRR4.wppN.6OLb/.mRR4.irpN.EVLb/UCSR4..............
...........................U..6.P....M4...EB....W....61....F....8/...I1....UJl12
...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....E.....I....M....kL1xaPYZ2RXxKRiFbI.........................YE006U.0...
...................0./.......x7E..........2...................zD........kz1.....
................................................................................
.....................2.....3....A....wJHj7KOpB5JkV5.............................
...............................................................E................
..............zD.....................oAnAnAnAnyjOaNaNaNaty1.....................
................................/....E/...U/....TBoPiFKGoBqPpt4RG/..............
..........E076U.06......................6.2.......ob./......../E........kz1.....
................................................................................
..........................................E.....I....k....kLBxaMdJrQI/5S........
................................................................................
...../.............................wz0....................EnAnAnAnAvzcNaNaNaNavj
........................................................}
« Last Edit: March 04, 2011, 08:00:36 PM by DarkBeam » Logged

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


« Reply #5 on: March 04, 2011, 09:38:58 PM »

Seems that there is still a problem with the formula, nothing to see here with the parameters.  undecided

On first check i saw that you still subtract from esp before pushing,
not sure if that causes the problem or if there are others...
Logged
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #6 on: March 04, 2011, 10:44:29 PM »

Seems that there is still a problem with the formula, nothing to see here with the parameters.  undecided

On first check i saw that you still subtract from esp before pushing,
not sure if that causes the problem or if there are others...
Impossible! shocked
I will try to submit the file again...
Logged

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


« Reply #7 on: March 05, 2011, 03:07:51 PM »

Wow, that is strange:
It works on the current version, but not on the new beta that i was using!
Good to know before releasing it, i must have done a bug once again.
Logged
Jesse
Download Section
Fractal Schemer
*
Posts: 1013


« Reply #8 on: March 05, 2011, 03:31:27 PM »

I guess i found the issue, you are using an absolute address:

00459741 DD45E4               fld qword ptr [ebp-$1c]
00459744 DC1D04804000     fcomp qword ptr [$00408004]  // this must be changed!!!
0045974A DFE0                  fstsw ax
0045974C 9E                     sahf

Else it would not work in upcoming versions.  What should be compared in the code up there?
Logged
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #9 on: March 05, 2011, 03:35:12 PM »

I guess i found the issue, you are using an absolute address:

00459741 DD45E4               fld qword ptr [ebp-$1c]
00459744 DC1D04804000     fcomp qword ptr [$00408004]  // this must be changed!!!
0045974A DFE0                  fstsw ax
0045974C 9E                     sahf

Else it would not work in upcoming versions.  What should be compared in the code up there?

Here I paste the source code, it can be useful for future users too. smiley

int main (void){
    // --- PIXEL DATA --- //
    /*
    double x=243847928;
    double y=4252352;
    double z=453452;
    */
    double x=243847928;
    double y=4252352;
    double z=453452;
    // double w=100;
    // --- USER INPUT A --- //
    double a1=1;
    double a2=0;
    double a3=0;
    // --- USER INPUT B --- //
    double b1=0;
    double b2=0;
    double b3=0;
    // --- USER INPUT C --- //
    double c1=0;
    double c2=0;
    double c3=0;
    // --- USER INPUT D --- //
    double d1=1;
    double d2=0;
    double d3=0;
    // --- TEMPORARY --- //
    double xt0=-9999999;
    double yt0=-9999999;
    double zt0=-9999999;
    double xt1=-9999999;
    double yt1=-9999999;
    double zt1=-9999999;
    double r=-9999999;
    double rho1=-9999999;
    double rho2=-9999999; // they are many ( 8 ) - I need all of them to calculate final division

    // --- objective; do (SxA+B)/(SxB+C) as faster as possible, without errors. --- //
    // --- we use triplex theory to do a Mobius 3D transform or something similar cool --- //

    // --- so at first try to compute the divisor. if it's zero or near, we can go out!!! cool --- //
    // --- DO S x C store in t1 --- //
    rho1=sqrt(x*x+y*y);
    rho2=sqrt(c1*c1+c2*c2);
    if (rho1*rho2==0){
    // I fear we can't divide by zero. We are on the origin - or in a point in z axis
    // very very approx, hopin it's ok!!! +- z*k/(0.xx*0.xx) >> 1 but +-0.xx*0.xx*z*k/(0.xx*0.xx) should again be +-z*k ?
    xt1 = -z*c3;
    yt1 = z*c3;
    } else {
    xt1 = (x*c1-y*c2)*(1-z*c3/(rho1*rho2));
    yt1 = (c1*y+x*c2)*(1-z*c3/(rho1*rho2)); 
    }
    zt1 = rho1*c3+rho2*z;   
    // --- now do S x C + D (easy!) --- //
    xt1 = xt1 + d1;
    yt1 = yt1 + d2;
    zt1 = zt1 + d3;
    // --- okay but the radius? --- //
    r = xt1*xt1+yt1*yt1+zt1*zt1;
    if (r<=1e-90){
    // ouch singular point, or singular transform, or point very very near to this trouble
    // Return something very big. It should be okay.
    x = 1e90;
    y = 1e90;
    z = 1e90;
    return (1); // go out of here
    } else {
    // --- DO S x A store in t0 --- //
    // rho1=x*x+y*y; already done
    rho2=sqrt(a1*a1+a2*a2); // new transform, new rho2
    if (rho1*rho2==0){
    // I fear we can't divide by zero.
    // very very approx, hoping it's ok!!!
    xt0 = -z*a3;
    yt0 = z*a3;
    } else {
    xt0 = (x*a1-y*a2)*(1-z*a3/(rho1*rho2));
    yt0 = (a1*y+x*a2)*(1-z*a3/(rho1*rho2)); 
    }
    zt0 = rho1*a3+rho2*z;   
    // --- now do S x A + B (easy!) --- //
    xt0 = xt0 + b1;
    yt0 = yt0 + b2;
    zt0 = zt0 + b3;
    // --- we are almost done, now only do t0 / t1 --- //
    // --- surely, it is NOT a singular point since r is not zero. --- //
    // --- We stay away from singularity because r > epsilon. We should be in a safe zone --- //
    r = 1/r; // to compute faster cool
    rho1=sqrt(xt0*xt0+yt0*yt0);
    rho2=sqrt(xt1*xt1+yt1*yt1);
   
    if (rho1*rho2==0){
    // I fear we can't divide by zero.
    // very very approx, hoping it's ok!!!
    x = zt0*zt1;
    y = -zt0*zt1;
    } else {
    x = r*(xt0*xt1+yt0*yt1)*(1+zt0*zt1/(rho1*rho2));
    y = r*(xt1*yt0-xt0*yt1)*(1+zt0*zt1/(rho1*rho2));
    }
    z = r*(rho2*zt0-rho1*zt1);
    // done!
    }
   return (1);
}

May it be;

    if (r<=1e-90){
    // ouch singular point, or singular transform, or point very very near to this trouble
    // Return something very big. It should be okay.
    x = 1e90;
    y = 1e90;
    z = 1e90;
    return (1); // go out of here
    } else {
Logged

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


« Reply #10 on: March 05, 2011, 08:41:54 PM »


   if (r<=1e-90){
    // ouch singular point, or singular transform, or point very very near to this trouble
    // Return something very big. It should be okay.
    x = 1e90;
    y = 1e90;
    z = 1e90;
    return (1); // go out of here
    } else {

Just add between the [OPTIONS] and {CODE]* sections in the m3f file this:

[CONSTANTS]
Double = 1e-90

And then you can compare with   qword [edi]   ,if edi is the Pvar pointer to the user vars&constants.

Next Double constant would be in [edi + 8] and so on, you could also use this for the plenty initialisations to get a smaller code.


*had to change this because of scripting language issue  Azn
« Last Edit: March 05, 2011, 10:34:46 PM by Jesse » Logged
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #11 on: March 05, 2011, 10:32:47 PM »

The assignment x=1E90 is okay? smiley
Logged

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


« Reply #12 on: March 05, 2011, 10:58:40 PM »

The assignment x=1E90 is okay? smiley

Yep, but because there are not many different values, you could also use constants instead of direct assignments:

0045974F C78544FFFFFFC759 mov [ebp-$000000bc],$092959c7
00459759 C78548FFFFFF0F6B mov [ebp-$000000b8],$529f6b0f
00459763 C7854CFFFFFFC759 mov [ebp-$000000b4],$092959c7
0045976D C78550FFFFFF0F6B mov [ebp-$000000b0],$529f6b0f
00459777 C78554FFFFFFC759 mov [ebp-$000000ac],$092959c7
00459781 C78558FFFFFF0F6B mov [ebp-$000000a8],$529f6b0f

what is:
    x = 1e90;
    y = 1e90;
    z = 1e90;
(these x,y,z are not the ones of the Iteration3D struct)

would become with additional constant:
[OPTIONS]
Double = 1e-90
Double = 1e90

fld  qword[edi + 8]
fst  qword [ebp-$000000b8]
fst  qword [ebp-$000000b0]
fstp qword [ebp-$000000a8]

Hint: offsets between -$80 and $7F uses only 1 byte for the offset, if possible you can use a second pointer with offset -$80 or -$100.
Logged
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #13 on: March 06, 2011, 07:08:17 PM »

Check it accurately, so I can add it to the list. angel

* _MobiusTpx.m3f (3.47 KB - downloaded 196 times.)
Logged

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


Fragments of the fractal -like the tip of it


« Reply #14 on: March 06, 2011, 07:40:43 PM »

you could also use this for the plenty initialisations to get a smaller code.

I know... But they take almost zero time but as it is I can reuse the entire block for future stack-using formulas

Please can you tell me the integer power formula optimized? (without any sin() cos() but with radiuses instead) I can't find them... sad I'm writing an Ikenagabulb, but without the power code I have to write a "while" cycle too time consuming Azn
Logged

No sweat, guardian of wisdom!
Pages: [1] 2 3   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
Mobius Transformation Mandelbulb3D Gallery Lee Oliver 0 2228 Last post March 05, 2011, 03:40:41 PM
by Lee Oliver
Metals Transformation x3 Fractal Science Kit Gallery wmauzey 0 734 Last post March 31, 2012, 01:07:44 PM
by wmauzey
Why there isn't 3D 1:2 conformal transformation? (new) Theories & Research « 1 2 » Alef 16 1157 Last post September 25, 2013, 03:45:11 PM
by Alef
Solidifying transformation (new) Theories & Research Alef 2 298 Last post November 11, 2014, 05:05:01 PM
by Alef
Transformation of a sphere to make 3D julia? Possible to do? The 3D Mandelbulb KRAFTWERK 5 14026 Last post April 11, 2015, 02:54:22 AM
by 1990winfractal

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.164 seconds with 28 queries. (Pretty URLs adds 0.01s, 2q)