David Makin


« Reply #270 on: October 13, 2009, 04:41:41 AM » 

Hi, I think I found a new contender for the "true 3D" Mandelbrot. In this case I was contemplating (not for the first time) what would actually constitute a truly second level of "imaginary" for the j axis. Introduction of the i axis to the real number world depends on a new concept  the angle and rotation. Most methods of 3D+ visualisation depend on this and distance alone but we need something "other" that can only exist when a third dimension exists. I thought that maybe if we invent a function such that under multiplication by our third unit vector then both r and i are transformed to j we have something new and whole  since the production of itself depends on multiplication by itself and cannot be explained using existing 2D concepts (distance/angle)  also extending the same idea to 4D+ I came up with this multiplication table: r i j k r r i j k i i r *j *k j j *j *r *k k k *k *k *r Where * in the above is + or  (potentially different in each case). Obviously this idea can be extended to any number of dimensions. Anyway after playing with the options for the 3D version I settled on this: r i j r r i j i i r j j j j r And here's the result for z^2+c: Note that if we have zri (complex) and zj (real) then z^2+c is for example just: r = zj zj = 2.0*(real(zri)*zj  imag(zri)*zj) + cj zri = zri*zri  r*r + cri OK  I know, it's not exactly fully symmetrical but at least the 2 slices are the 2D Mandelbrot  and who said it should be symmetrical ?


« Last Edit: October 13, 2009, 03:13:47 PM by David Makin »

Logged




xenodreambuie


« Reply #271 on: October 13, 2009, 06:21:46 AM » 

As to your other idea, it's certainly produces an interesting Mandelbrot:
Thanks Dave! That helps a lot. I suspected the phi=acos(z/r) version would have an asymmetric Mandelbrot in Z, as the Z constant has asymmetric behaviour in the Julias. It's now obvious that phi=asin(z/r) was chosen to get symmetry in the Z axis. Both are valid choices with different goals. Paul, I reimplemented your quadratic inverse formula and it's working correctly, so I take back any mention of glitches. (This time I just zeroed any negative arguments that appeared in sqrt functions, whereas previously I switched roots when that happened. That's what was giving me wrong results when the z constant was nonzero.) With phi=acos(z/r), the trig version has N independent roots in theta and phi for N*N total. For phi=asin(z/r), theta and phi don't have independent roots and I've given up trying to work out a solution. Anyone have any ideas? The quadratic Julia sets for each are quite different, and I'm rendering samples of each to post.



Logged




xenodreambuie


« Reply #272 on: October 13, 2009, 10:07:04 AM » 

Here are six examples of quadratic Julia sets with a MIIM version of the Nylander/White formula for the triplex (z=rsin(phi) version.) They had 1015 minutes rendering each at twice the size.



Logged




David Makin


« Reply #273 on: October 13, 2009, 12:11:34 PM » 

Here are six examples of quadratic Julia sets with a MIIM version of the Nylander/White formula for the triplex (z=rsin(phi) version.) They had 1015 minutes rendering each at twice the size.
Nice !!



Logged




bugman


« Reply #274 on: October 13, 2009, 07:45:42 PM » 

Thanks, Paul! No, I coded it into a transform in XenoDream, to use the existing rendering (using a zbuffer as a surface for lighting.) It was mostly done in an hour at twice that size, but I left it overnight for only marginal improvement. If you check the recent thread about the Glynn Set, Dave posted some code from Peter Liepa for doing MIIM. (His website http://www.brainjam.ca/fractals.html has plenty of pics.) It uses contractivity to vary tree depth, which works incredibly well, although still not perfectly even distribution. However, I believe there is some mistake in the formula we used for the quadratic. I decided to try the trigonometric version instead, in order to use arbitrary powers. At first attempt only the theta was right (reducing to standard Julia set in XY). When I changed the formula to phi=acos(z/r), with x= rsin(theta)sin(phi), y=rcos(theta)sin(phi), z= rcos(phi), the correct roots appear for phi and the whole shape works as it should. That pic I did and the similar one of yours appear to be glitches and not reproducible with the correct formula. On the bright side, the quadratic produces a much nicer range of shapes and renders faster, and any power >1 or <1 should work. All I found was this but it says nothing about MIIM: http://www.fractalforums.com/programming/mathematicalformulaforfractaltree/



Logged




bugman


« Reply #275 on: October 13, 2009, 07:52:58 PM » 

Anyway after playing with the options for the 3D version I settled on this:
r i j r r i j i i r j j j j r
What is this table called and how do I find the squaring function from this table?



Logged




David Makin


« Reply #276 on: October 13, 2009, 09:20:14 PM » 

Anyway after playing with the options for the 3D version I settled on this:
r i j r r i j i i r j j j j r
What is this table called and how do I find the squaring function from this table? It's just one possible 3D unit vector multiplication table i.e. in this case the multiplications are commutative and: real*real > real, real*imag > imag, imag*imag > real, real*jmag > jmag, imag*jmag > jmag and jmag*jmag > real. For the squaring function we want: (x + i*y + j*z)^2 = x^2 + i*x*y + j*x*z + i*x*y + i*i*y*y + i*j*y*z + j*x*z + i*j*y*z + j*j*z*z = x^2  y^2  z^2 + i*2*x*y + j*2*(x*z  y*z) (because i*i=j*j=r, r*j=j and i*j=j)


« Last Edit: October 13, 2009, 09:26:08 PM by David Makin »

Logged




David Makin


« Reply #277 on: October 13, 2009, 09:25:41 PM » 




Logged




David Makin


« Reply #278 on: October 14, 2009, 01:03:35 AM » 

Here's an animation of the minibrot from my "new contender" centred at approx. 1.76 real (for the degree 2). You'll have to wait a little for it to download as it doesn't stream: http://www.fractalgallery.co.uk/NewContenderMinibrotAnim.movI have to admit IMHO I think this is the closest so far  especially after I started investigating doing a render of the same minibrot for the degree 2 White/Nylander  I gave up on that for now, you'll see why when I upload a detailed still of it later.... Edit: Here's the stillshot, it's a very slow one to render hence I gave up on doing even a small anim !


« Last Edit: October 14, 2009, 02:29:57 AM by David Makin »

Logged




xenodreambuie


« Reply #279 on: October 14, 2009, 12:14:37 PM » 

Here are eight examples of quadratic Julia sets with a MIIM version of the variation for the triplex with z=r*cos(phi). They don't have the 2D Julia structure at the equator that the other formula has. I really like some of these structures.



Logged




cKleinhuis


« Reply #280 on: October 14, 2009, 02:34:42 PM » 

hey xenodream, the lower left looks like a brain, and the upper ones are just cool !



Logged


divide and conquer  iterate and rule  chaos is No random!



Buddhi
Fractal Molossus
Posts: 655


« Reply #281 on: October 14, 2009, 07:17:27 PM » 

I have just rendered animation with flying around 3D Nebulabrot fractal (Twinbee formula). For faster rendering I cached all iteration data on HD. It takes about 20GB space :) and I used 4 threads for rendering and 1 for loading data from HD in background. The bottleneck was drive speed (90MB/s) however it was much more faster than rendering without cached data. Rendering statistics:  frames resolution: 1280x720  3D mesh resolution: 800x800x800  max number of iterations: 500  number of points per frame: 5 356 802 016  avg. rendering speed: 22,3 mln points per second (1 frame per 4 minutes) Please watch in HD



Logged




bugman


« Reply #282 on: October 14, 2009, 07:58:17 PM » 

Anyway after playing with the options for the 3D version I settled on this:
r i j r r i j i i r j j j j r
What is this table called and how do I find the squaring function from this table? It's just one possible 3D unit vector multiplication table i.e. in this case the multiplications are commutative and: real*real > real, real*imag > imag, imag*imag > real, real*jmag > jmag, imag*jmag > jmag and jmag*jmag > real. For the squaring function we want: (x + i*y + j*z)^2 = x^2 + i*x*y + j*x*z + i*x*y + i*i*y*y + i*j*y*z + j*x*z + i*j*y*z + j*j*z*z = x^2  y^2  z^2 + i*2*x*y + j*2*(x*z  y*z) (because i*i=j*j=r, r*j=j and i*j=j) Thanks Dave. Here's some Mathematica code to find the squaring formula for any multiplication table that uses your notation: ToFormula[A0_] := Module[{A = A0 /. {r > 1, i > 2, j > 3}, p0 = {x, y, z}, p = {0, 0, 0}}, Do[k = A[[i, j]]; p[[Abs[k]]] += Sign[k]p0 [[ i ]] p0[[j]], {i, 1, 3}, {j, 1, 3}]; p]; For example: ToFormula[{{r, i, j}, {i, r, j}, {j, j, r}}] returns {x^2  y^2  z^2, 2 x y, 2 x z  2 y z}


« Last Edit: October 14, 2009, 08:24:07 PM by bugman »

Logged




David Makin


« Reply #283 on: October 14, 2009, 08:54:24 PM » 

Thanks Dave. Here's some Mathematica code to find the squaring formula for any multiplication table that uses your notation: ToFormula[A0_] := Module[{A = A0 /. {r > 1, i > 2, j > 3}, p0 = {x, y, z}, p = {0, 0, 0}}, Do[k = A[[i, j]]; p[[Abs[k]]] += Sign[k]p0 [[ i ]] p0[[j]], {i, 1, 3}, {j, 1, 3}]; p];
For example: ToFormula[{{r, i, j}, {i, r, j}, {j, j, r}}]
returns {x^2  y^2  z^2, 2 x y, 2 x z  2 y z}
The only way I could get my hands on Mathematica is if I decide to take a course i.e. become a bonafide student



Logged




twinbee


« Reply #284 on: October 15, 2009, 01:04:49 AM » 

Hi Garth, you are absolutely correct about the use of asin(z/r) instead of atan2(sqrt(x^2+y^2)+flip(z))  it is identical and shaves just over 10% off the time on this P4HT by removing a square root from the iteration loop. Interestingly, compared to the asin, the MSVC compiler seems to have a really fast implementation of atan2 (relative to the mingw compiler at least), so especially if you're using C/C++, it may be worth checking out both according to setup. Some really neat stuff above! I'm getting an article together to further explore the object, but I can't resist sharing one of my own zooms now. I've cut the 3D mandelbrot in half, and then I zoom into one the thin valley sections. Youtube decreases the quality, so the video can also be found here at a superfluid 60 frames per second (6 meg).


« Last Edit: October 15, 2009, 01:13:43 AM by twinbee »

Logged




