News: Visit the official fractalforums.com Youtube Channel

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

 Pages: 1 2 3 [4] 5 6 ... 37   Go Down
 Author Topic: True 3D mandelbrot type fractal  (Read 609424 times) Description: 0 Members and 1 Guest are viewing this topic.
twinbee
Fractal Fertilizer

Posts: 383

 « Reply #45 on: March 17, 2009, 07:11:44 PM »

Hey there, welcome to the forum!

Great to see someone else interested in the search too. It's almost like hunting for the yeti, loch ness, or UFOs, except at least this has a chance of existing Kinda weird to see this kind of thing in abstract maths, rather than on a material level too. And yeah, the reward is definitely enticing.

There was a thread recently at povray.org that you may find interesting. Goes into a little bit more detail about whether it exists, and how one would render such a beast (in terms of lighting, iteration level etc.):

I'd be happy to try out your suggestion and post the results here, but I can't quite follow your description so a diagram would be nice. Feel free to to use my 'sphere' as a template:
http://www.skytopia.com/project/fractal/sphere.png

Actually, even better, if you know a little programming, you could alter the function below. I've kept it as the 'slow' long way for clarity:

Code:
// A triplex number is a '3D' number
triplex multiply(triplex a, triplex b) {
triplex n;
double pi=3.14159265;
double r    = pow(a.x*b.x + a.y*b.y + a.z*b.z , 0.5);
double yang = atan2( pow(a.x*b.x + a.y*b.y, 0.5) ,      a.z  )  ;
double zang = atan2(a.y , b.x);
n.x = (r*r) * sin( yang*2 + 0.5*pi ) * cos(zang*2 +pi);
n.y = (r*r) * sin( yang*2 + 0.5*pi ) * sin(zang*2 +pi);
n.z = (r*r) * cos( yang*2 + 0.5*pi );
return n;
}
 « Last Edit: March 17, 2009, 07:15:58 PM by twinbee » Logged
lycium
Fractal Supremo

Posts: 1158

 « Reply #46 on: March 18, 2009, 12:21:31 PM »

fixed the links, they now point to imageshack instead of fractographer.com (RIP)
 Logged

monguin61
Forums Newbie

Posts: 2

 « Reply #47 on: March 19, 2009, 01:41:47 AM »

What you're doing, as I understand it, moves point z1 to point z3. You can see both the vertical angle phi and the lateral angle theta changing. I'm wondering if, in order to come up with the right 3D multiplication operation, you need to capture the qualitative behavior of the complex numbers, and make the 3D multiplication resemble the 2D multiplication as closely as possible. That said, I think it might make more sense to change only the vertical angle phi, which would move point z1 to point z2. My reasoning is that, with complex numbers, squaring z doubles the angle between z and unity. To make that happen with 3D numbers, assuming unity=(0,0,1), only phi needs to change.

After my last post, though, I thought of another issue: with complex numbers (but NOT quaternions), there is a finite set of points that, when squared, get you to negative one (for complex numbers, z = +-i; for quaternions, any z with |z|=1 and Re{z}=0). I wonder if that is another important 'feature' of the multiplication operation? If so, then neither your definition, nor my suggestion will work: any point with phi = 90 will yield -1 after squaring. So, maybe the multiplication needs to depend on theta in some more complicated way? I guess the question here is whether it should behave more like the complex numbers, or more like the quaternions. If we say complex numbers, then the obvious answer is to say that (1,0,0), (-1,0,0), (0,1,0), (0,-1,0) need to yield -1, while no other points do. I'm not yet sure how best to realize that concept through formulas. Or... maybe this has no effect at all on the result.

I hope that all sort of makes sense. I've been thinking about this stuff a lot in the last few days, because I'm afraid if I stop pursuing it, I'll lose track of all these ideas in my head. Maybe none of it will go anywhere, but I at least want to check it out.

lycium, what method were you using to render those surfaces? How long did it take to generate a surface that showed some basic detail? I'm wondering if I can put something together to try out different approaches on my own.
 « Last Edit: March 19, 2009, 01:49:05 AM by monguin61, Reason: corrected stupid mistake » Logged
twinbee
Fractal Fertilizer

Posts: 383

 « Reply #48 on: March 19, 2009, 11:59:57 AM »

Oh right, just doubling the phi angle, instead of both the phi and theta? You bet I tried that
AFAICR, I got the 2nd b/w pic on that article:
http://www.skytopia.com/project/fractal/mandel3d6.png

Also, tried doubling theta only, and with most combinations of offsets (the +0.5pi bits in the function) etc.

Can't say I tried everything though. Good thinking with trying to emulate complex numbers more closely. The chances of finding it may be slim, but that's offset against how cool it would look

Yay, 100 posts!

 « Last Edit: March 19, 2009, 12:01:28 PM by twinbee » Logged
David Makin
Global Moderator
Fractal Senior

Posts: 2286

 « Reply #49 on: May 24, 2009, 09:01:30 PM »

Hi all, was just having another play with the quaternionic Mandy - some results:

q^2+c where q is (x,y,z,w) but with x and z swapped on each iteration prior to squaring:

As you can see this produce "projections", though not really "bulbs", but it is reminiscent of the complex Tricorn (Mandelbar) which can be created by either z=conj(z) or z=flip(z) prior to squaring.
Anyway I wondered what Julias from this would be like, so here's one, I think they look promising (I mean as interesting and slightly different Julia sets)...

I also wondered what happens if you do something closer to how the complex Tricorn is created, so I thought I'd try a version of "flip" like this (corrected for "zero" issues):

d = sign(y)/sqrt(y*y+z*z+w*w)
y = x*y*d
z = x*z*d
w = x*w*d
x = 1/d

Note I tried "flip" because the equivalent of "conj" just produces the plain 3D rotation of the complex tricorn.
The Mandelbrot is probably the most boring "fractal" I've ever seen, but again the Julias look promising:

Edit:
I confess and offer my apologies - I should have been more careful when testing this. The Julia that produced this image was such that the above line:

x = 1/d

was actually executed as

x = sign(x)/d

in other words it wasn't a correct quaternionic analogue to complex flip.
Doing it correctly also turns the Mandy version into the correct slightly more interesting 3D rotation of the complex "flip" Tricorn.

Edit:
Of course the main problem with this sort of manipulation (and the others used earlier in this thread) is that it makes it more difficult to get efficient rendering - because the formulas end up effectively treating what are normal 4D numbers in standard quaternionic form as numbers in a more generalised 4D form so normally "brute force" ray-tracing is required since you can't use the simple quaternionic derivative to get the distance estimation.
I suppose one could write the mathematical algorithm to get the derivative treating the iterated formula as a general 4D one but I guess that would require the differentiation of a full general 4D system using the Jacobians ..... anyone care to have a go, or would that end up making the distance estimator method as slow as the "brute-force" method ?
 « Last Edit: May 25, 2009, 02:36:39 AM by David Makin » Logged

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

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
twinbee
Fractal Fertilizer

Posts: 383

 « Reply #50 on: May 25, 2009, 04:22:36 AM »

Nice renders - always good to see these things animated!

Look forward to more results as always...
 Logged
David Makin
Global Moderator
Fractal Senior

Posts: 2286

 « Reply #51 on: May 25, 2009, 09:23:13 PM »

Hi all, take a look at this IFS:

http://makinmagic.deviantart.com/art/Pure-Julia-IFS-123685891

As the comment says it was entirely created from 4 complex Julia Set transforms.

The reason I post this here is that using the same method with quaternionic Julia Sets for 3D/4D IFS could be used to produce the same thing but made up of many spheres (essentially q^2+0) or other Julia Set shapes - essentially giving the "3D bulb" effect.
Actually the results would probably be similar to the images produced using Indra's Pearls except that the "spheres" could be any shape of quaternionic Julia and it would of course be simple to mix in affine transforms too.
The only problem is that writing an efficient rendering method for such 3D objects isn't trivial, though I think getting distance estimation would be possible.
 Logged

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

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
cKleinhuis
Fractal Senior

Posts: 7044

formerly known as 'Trifox'

 « Reply #52 on: May 25, 2009, 11:53:19 PM »

i am thinkin a lot about realtime fractals now adays, i am searching for nice methods to display on
todays gfx hardware, rendering quaternions is like displaying a iso-surface of a function ...
this is a bit expensive .... but i like the method of iterated function systems ( with extended functions introduced with the flames algorithm.. )
and symmetry ... i will simply plot millions of dots somehow ...

cheers
ck
 Logged

---

divide and conquer - iterate and rule - chaos is No random!
David Makin
Global Moderator
Fractal Senior

Posts: 2286

 « Reply #53 on: May 29, 2009, 04:20:19 AM »

Hi all,

Another one - this time swapping y and z in (x,y,z,w) on every iteration prior to squaring (not exactly a "True 3D Mandelbrot Set" but I'm rather pleased with it).

 « Last Edit: May 29, 2009, 04:44:53 AM by David Makin » Logged

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

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
twinbee
Fractal Fertilizer

Posts: 383

 « Reply #54 on: June 02, 2009, 02:25:12 AM »

Hey that's neat - so near yet so far...
 Logged
David Makin
Global Moderator
Fractal Senior

Posts: 2286

 « Reply #55 on: June 06, 2009, 09:49:23 PM »

Hi all,

I decided to try Kerry's suggestion of using a truly 3D based number system i.e.

*|  r   i   j
_________
r | r   i   j
i | i  -r   ?
j | j   ?  ?

The best result was from this:

*|  r   i   j
_________
r | r   i   j
i | i  -r   i
j | j   i  -r

e.g.  (for z^2+c)

xi = mx
mx = mx*mx - my*my - mz*mz + x
my = 2.0*(xi*my + my*mz) + y
mz = 2.0*xi*mz + z

Edit:

Result is this:

 « Last Edit: June 07, 2009, 12:57:13 AM by David Makin » Logged

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

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
David Makin
Global Moderator
Fractal Senior

Posts: 2286

 « Reply #56 on: June 07, 2009, 04:33:25 AM »

Hi all,

Here's my best effort so far:

http://makinmagic.deviantart.com/art/4D-Mandy-125047448

This is using 4D numbers as follows:

* | r   i   j   k
-------------
r | r   i    j   k
i | i  -r   k   j
j | j   k  -r  i
k | k  j   i  -r

Which gives z^2+c:

xi = mx
yyy = my
zzz = mz
mx = mx*mx - my*my - mz*mz - mw*mw + x
my = 2.0*my*xi + 2.0*mz*mw + y
mz = 2.0*mz*xi + 2.0*yyy*mw + zz
mw = 2.0*(mw*xi + yyy*zzz) + w
 « Last Edit: June 07, 2009, 05:12:15 AM by David Makin » Logged

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

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
bib
Global Moderator
Fractal Senior

Posts: 2070

At the borders...

 « Reply #57 on: June 07, 2009, 03:24:03 PM »

The last one is very impressive and quite similar to what one would expect to see: same global shape, nice symmetries. However, there are still smooth surfaces when the 2D M-set border is never smooth. Is it because of a low number of iterations?
 Logged

Between order and disorder reigns a delicious moment. (Paul Valéry)
David Makin
Global Moderator
Fractal Senior

Posts: 2286

 « Reply #58 on: June 07, 2009, 03:44:51 PM »

The last one is very impressive and quite similar to what one would expect to see: same global shape, nice symmetries. However, there are still smooth surfaces when the 2D M-set border is never smooth. Is it because of a low number of iterations?

Yes - bailout is only x^2+y^2+z^2+w^2>4 and it's solid at just 11 iterations (using solid at a given iteration with an optimised "brute force" method for finding the intersections). I added the formula to my version of mmf.ufm:Sold-3D Quaternions, I'll probably upload the new version to the UF database later today.
Ideally it should use a distance estimator method but that requires the derivative and as far as I know the only way of getting that for the number system used is the full derivation of the derivative of 4 functions of 4 reals, which I was too lazy to calculate
Using the dstance estimator one could get a lot more detail in the smooth areas without losing it in the complicated areas (also rendering would actually probably be more efficient).
 Logged

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

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
David Makin
Global Moderator
Fractal Senior

Posts: 2286

 « Reply #59 on: June 08, 2009, 10:41:09 AM »

Hmmm - doesn't look quite so good when in more detail, here it is solid at 20 iterations instead of 11:

This image really shows up the necessity of rendering it using solid based on distance estimation (or iteration density) rather than using plain iteration.
 « Last Edit: June 08, 2009, 10:45:51 AM by David Makin, Reason: update » Logged

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

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
 Pages: 1 2 3 [4] 5 6 ... 37   Go Down