Logo by Timeroot - 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. February 21, 2020, 04:06:53 AM


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 5 6   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: 2d/3d conformal formulas for a tetrahedral projection Mandelbrot  (Read 8725 times)
0 Members and 1 Guest are viewing this topic.
KRAFTWERK
Global Moderator
Fractal Senior
******
Posts: 1439


Virtual Surreality


WWW
« Reply #30 on: February 17, 2015, 07:55:18 PM »

Yes! Look in my archive! smiley Luca

Luca is back Louis!  afro
Logged

laser blaster
Iterator
*
Posts: 178


« Reply #31 on: February 17, 2015, 09:46:20 PM »

Wow, beautiful pirctures! Nice work, all. I might like the non-conformal version slightly better, with it's angular IFS shapes, but this one is interesting too.
DarkBeam, is your seahorse picture from the variant you created? Your variant uses the same conformal map as Tglad's transform, it just uses a different projection onto the sphere, is that correct?
Logged
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #32 on: February 17, 2015, 11:34:05 PM »

Hello laser smiley

Glad you liked and yes, it is almost the same i just changed at some point x with y and a sign, but it looks definitely different smiley
Logged

No sweat, guardian of wisdom!
Tglad
Fractal Molossus
**
Posts: 703


WWW
« Reply #33 on: February 18, 2015, 12:15:27 AM »

Knighty:
Quote
Here is the stereographic projection variant. More "whipped cream" but the julias are interesting
I haven't checked the code, but the stereographic projection should not affect the formula or the shape, it should just be a more economical way to go from the complex plane to the sphere, and back again.

Quote
In your formula(s) there are always points where the derivative vanishes (=0).(there are 6 here). those have 180░ rotation. Is it possible to modify the formula in order to transform those points from parabolic (dervative=0) to conical (derivative!=0)? I think that would reduce a lot the stretching.

You are right, that is what I was doing in the two links at the start of this topic. I didn't have an analytic formula so I was doing it using a lookup table. It would make the formula 'quasi-conformal' in that the stretch would be bounded (maximum eccentricity of 2 I think), however it would make the formula non-smooth at those 6 points.
(I'm fairly sure an analytic formula could be be made using a weighted average of conical transforms at those 6 points, and 3 poles and 4 points that go to zero but scale by about 2. The weighting being something like 1/distance to feature, on the sphere).

Quote
It seems quite difficult to get a nearly conformal transform In 3D. It is like there is not enought space/room. Maybe in hyperbolic space...?
Exactly conformal is impossible due to Liouville's theorem, since the only conformal 3d transforms are translations, rotations, dilation (scale) and sphere inversions, and combinations of these. The same is true in hyperbolic space and in dimensions more than 3d. But *nearly* conformal (quasiconformal) is an interesting question, I got an average eccentricity of about 1.5 in this post- http://www.fractalforums.com/the-3d-mandelbulb/a-new-3d-mandelbrot-like-fractal/msg12013/#msg12013

My previous 2d mandelbrots were wrong (I was adding c in the numerator). I have also written a more correct bailout condition and the results are very cool:

(the full shape is a rough triangle)


and for the dihedral fold version:




Try it out, I saved it here: http://hirnsohle.de/test/fractalLab/ under 'Tetrahedral fold' in the library. You can change the fractal type to Dihedral in the constants tab.
« Last Edit: February 18, 2015, 12:00:22 PM by Tglad » Logged
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #34 on: February 18, 2015, 01:13:35 PM »

I need to work out the full details. However this should help to untrig the expressions! cheesy

cos(0.5 arccos(x) ) = ( 0.5 (1+x) ) ^ 0.5
sin(0.5 arccos(x) ) = ( 0.5 (1-x) ) ^ 0.5
so tan (0.5 arccos(x) ) = ((1-x)/(1+x))^0.5 cheesy -> this untrigs "angle"

while sin( atan(x) ) = x/sqrt(1+x*x) and cos( atan(x) ) = 1/sqrt(1+x*x)

to untrig omega. police Whew, it should be easier now? Azn
Logged

No sweat, guardian of wisdom!
knighty
Fractal Iambus
***
Posts: 819


« Reply #35 on: February 18, 2015, 02:52:04 PM »

Tglad & DarkBeam:
Ah! yes, the stereographic projection gives the same result. It's only rotated 180░. to get exactly the same result just set:
vec2 z = - p.xy / (1. - p.z);
Instead of:
vec2 z = p.xy / (1. - p.z);
in the beginning of  tetra() function.
So no need for trigonometric functions. wink

I didn't know (and couldn't find docs about it) that liouville's theorem holds also in 3D+ hyperbolic spaces. Any references?

The existence of points where the derivative of tetra() vanishes may explain why the julia of this fractal contains (a little bit deformed) 2D classic julias.


* Asteroidd.jpg (125.63 KB, 800x600 - viewed 179 times.)
Logged
kram1032
Fractal Senior
******
Posts: 1863


« Reply #36 on: February 18, 2015, 03:33:24 PM »

that's a pretty Julia rock  cheesy
Logged
Tglad
Fractal Molossus
**
Posts: 703


WWW
« Reply #37 on: February 19, 2015, 01:46:33 AM »

Nice Julia stone!
Quote
I didn't know (and couldn't find docs about it) that liouville's theorem holds also in 3D+ hyperbolic spaces. Any references?
from here: http://en.wikipedia.org/wiki/Liouville%27s_theorem_(conformal_mappings)
I think it is basically expressed in this sentence:
"Similar rigidity results (in the smooth case) hold on any conformal manifold. The group of conformal isometries of an n-dimensional conformal Riemannian manifold always has dimension that cannot exceed that of the full conformal group SO(n+1,1)."    (Hyperbolic space being one such conformal Riemannian manifold).
In other words, if the manifold is 3d, then the conformal symmetries are just SO(4,1) (4d rotations) which is 6 dimensional which I'm fairly sure is seen as the combinations of translation, rotation, inversion, dilation in 3d.
Some more info here: http://en.wikipedia.org/wiki/Conformal_geometry#Higher_dimensions. All in horribly obscure language of course. I think this also suggests the same is true in Minkowski space.

I have attached the fractalLab code so you can use it (apparently saving to the library is only local).
The negative versions of both formula are equally awesome, if not more so-




* fractalLabTetrafoldFragmentCode.txt (16.4 KB - downloaded 97 times.)
* tetrafoldParameters.txt (0.82 KB - downloaded 70 times.)
« Last Edit: February 19, 2015, 09:31:22 AM by Tglad » Logged
laser blaster
Iterator
*
Posts: 178


« Reply #38 on: February 19, 2015, 10:07:57 AM »

Woah... the negative version looks incredible! Have you tried putting it into 3d yet? I love how these fractals look like a fusion of IFS and Mandelbrot features, even though they're based on conformal maps. By the way, I found some nice elephant-like spirals in a 3D Julia. This is probably just scratching the surface of what shapes are possible with this.


* Elephants 3D.jpg (225.08 KB, 1058x650 - viewed 181 times.)
Logged
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #39 on: February 19, 2015, 12:54:19 PM »

 snore I was finally able to drop all trigonometric funx to Tglad's brot:

Code:
void tetra(inout vec3 p, float r) {
     float x=p.x; float y = p.y; vec2 z;
     //float angle = acos( p.z/r );
     //float omega1 = atan( p.x, p.y );
     //float zMag = tan(angle*0.5);
     //z.x = sin(omega1)*zMag;
     //z.y = cos(omega1)*zMag;
     // UNTRIG VERSION:
     float angle = ( p.z/r );
     float omega;
     float omega2 = (sqrt(x*x+y*y)-y)/x;
     float omega3 = omega2*omega2;
     float zMag =  sqrt((1.-angle)/(1.+angle));
     float zMag2;

     float sno = 2.*omega2  /(1.+omega3);
     float cso = (1.-omega3)/(1.+omega3);

     x=sno*zMag; y = cso*zMag;
     // PLAIN VERSION:
     float h = sqrt(8.); float k = 1./h;
     float S = x*x*x - 3.* x*y*y;
     float T = y*y*y - 3.* y*x*x;
     float B = (h + k) * T;
     T = T*T;
     float A = (S + k) * ( h - S) - T;
     float C = -k / (T + (S + k)* (S + k));
     z.x = (A* x - B* y)*C;
     z.y = (A* y + B* x)*C;
     x=z.x; y = z.y;

     zMag2 = x*x + y*y;
     zMag = sqrt(zMag2);
     //omega = atan(z.x,z.y);
     //angle = 2.0*atan(zMag);
     omega2 = (zMag -y)/x; omega3 = omega2*omega2;

     cso = (1.-omega3)/(1.+omega3);
     sno = 2.*omega2  /(1.+omega3);

     float csa = 2.  /(1.+zMag2);
     float sna = csa*zMag;
     csa = csa - 1.;

     p  = (r*r)*vec3( sno*sna, cso*sna, csa );
}
« Last Edit: February 19, 2015, 12:56:25 PM by DarkBeam » Logged

No sweat, guardian of wisdom!
knighty
Fractal Iambus
***
Posts: 819


« Reply #40 on: February 19, 2015, 01:50:54 PM »

snore I was finally able to drop all trigonometric funx to Tglad's brot:
grin

Nice Julia stone!
I think it is basically expressed in this sentence:
"Similar rigidity results (in the smooth case) hold on any conformal manifold. The group of conformal isometries of an n-dimensional conformal Riemannian manifold always has dimension that cannot exceed that of the full conformal group SO(n+1,1)."
Thank you. Couldn't they say it in more understandable words? just joking. Thanks again.
Logged
kram1032
Fractal Senior
******
Posts: 1863


« Reply #41 on: February 19, 2015, 02:19:06 PM »

Math has its own technical language. There are tons and tons of words which mean very simple things but if you had to explain them each time again in full sentences (i.e. you'd not already have a word for that), you'd end up talking for hour where a minute would have sufficed.
Really, any specialized field has these same issues. I wish there was a way around that but I fear there isn't really any.

In fact that's probably a big part of learning new stuff: Find new ways to express it. Learning something deeply means being able to talk about it fluently.
« Last Edit: February 19, 2015, 02:22:22 PM by kram1032 » Logged
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #42 on: February 20, 2015, 12:01:03 AM »

 smiley

Cross sections of the dihedral variant show the so called "perpendicular Mandelbrot" set, so it maybe an idea to postmultiply x by its sign. (not tried yet.)
In every case folks can download the fast MB3D version of both variants smiley

If anyone has a formula for those ... post here...
1. Nth power (at least 3... and 4?) of tetrahedral smiley (also power 1.5 or 0.5 can be interesting at least for inverse iteration implements)
2. Dodeca (or icosa) hedral variant grin

Please? Azn
« Last Edit: February 20, 2015, 12:06:16 AM by DarkBeam » Logged

No sweat, guardian of wisdom!
KRAFTWERK
Global Moderator
Fractal Senior
******
Posts: 1439


Virtual Surreality


WWW
« Reply #43 on: February 20, 2015, 10:58:52 AM »

In every case folks can download the fast MB3D version of both variants smiley

This is going to be another busy weekend...  afro
Logged

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


Fragments of the fractal -like the tip of it


« Reply #44 on: February 20, 2015, 12:39:43 PM »

Lol Johan wink

And I was kind of able to do powers like 4, 8 with a cheap trick. Not sure if it's ok. (And how I get z^3 still?) wink Waiting for a confirmation  grin

Code:
int log2pow = 1; // gives mandelbrot ^ 4 use 2, 3 higher power
void tetra(inout vec3 p, float r) {
     float x=p.x; float y = p.y; vec2 z;
     // UNTRIG VERSION
     float angle = ( p.z/r );
     float omega;
     float omega2 = (sqrt(x*x+y*y)-y)/x;
     float omega3 = omega2*omega2;
     float zMag =  sqrt((1.-angle)/(1.+angle));
     float zMag2;

     float sno = 2.*omega2  /(1.+omega3);
     float cso = (1.-omega3)/(1.+omega3);

     x=sno*zMag; y = cso*zMag;
     // PLAIN VERSION:
     for (int i=0; i <= log2pow; i++) { //
         float h = sqrt(8.); float k = 1./h;
         float S = x*x*x - 3.* x*y*y;
         float T = y*y*y - 3.* y*x*x;
         float B = (h + k) * T;
         T = T*T;
         float A = (S + k) * ( h - S) - T;
         float C = -k / (T + (S + k)* (S + k));
         z.x = (A* x - B* y)*C;
         z.y = (A* y + B* x)*C;
         x=z.x; y = z.y; r = r*r;
     }
     zMag2 = x*x + y*y;
     zMag = sqrt(zMag2);
     omega2 = (zMag -y)/x; omega3 = omega2*omega2;

     cso = (1.-omega3)/(1.+omega3);
     sno = 2.*omega2  /(1.+omega3);

     float csa = 2.  /(1.+zMag2);
     float sna = csa*zMag;
     csa = csa - 1.;
     p  = r*vec3( sno*sna, cso*sna, csa );
}
Logged

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

Related Topics
Subject Started by Replies Views Last post
Special Conformal Transformations of Conformal Geometry General Discussion rloldershaw 7 2041 Last post April 22, 2015, 08:26:04 PM
by DarkBeam
Summary of 3D Mandelbrot Set Formulas Theory « 1 2 3 » bugman 35 30091 Last post February 09, 2013, 07:53:03 PM
by willclark218
Double projection for 3d-mandelbrot (new) Theories & Research Krumel 0 394 Last post June 29, 2010, 06:35:26 PM
by Krumel
Tetrahedral island Images Showcase (Rate My Fractal) Chaos_Ink 1 643 Last post October 19, 2014, 05:24:43 PM
by Dinkydau
Semi-Conformal tetrahedral pow 3? The 3D Mandelbulb DarkBeam 7 797 Last post January 03, 2017, 03:25:14 AM
by M Benesi

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.016s, 2q)