## 3D Mandelbrot supposedly found

For the discussion of math. Duh.

Moderators: gmalivuk, Moderators General, Prelates

taby
Posts: 154
Joined: Thu Nov 01, 2007 8:39 pm UTC

### 3D Mandelbrot supposedly found

For what it's worth, there's claims that the 3D Mandelbrot set has finally been found.

http://science.slashdot.org/story/09/11 ... Discovered
http://www.skytopia.com/project/fractal/mandelbulb.html

PM 2Ring
Posts: 3713
Joined: Mon Jan 26, 2009 3:19 pm UTC
Location: Sydney, Australia

### Re: 3D Mandelbrot supposedly found

I started playing with this yesterday, using Python, but I'll probably go to C for speed. My first program just calculates z-plane slices through the Mandelbulb, which I then combine into a GIF anim. My second program calculates the voxels data in a form that I can feed into POV-Ray for rendering. My old machine is probably not adequate for this task - even a 100x100x100 voxel render is extremely low res.

antonfire
Posts: 1772
Joined: Thu Apr 05, 2007 7:31 pm UTC

### Re: 3D Mandelbrot supposedly found

Meh, "the" is the wrong word.
Jerry Bona wrote:The Axiom of Choice is obviously true; the Well Ordering Principle is obviously false; and who can tell about Zorn's Lemma?

PM 2Ring
Posts: 3713
Joined: Mon Jan 26, 2009 3:19 pm UTC
Location: Sydney, Australia

### Re: 3D Mandelbrot supposedly found

antonfire wrote:Meh, "the" is the wrong word.

Agreed. I was playing with 3d slices of the standard Mandelbrot / Julia sets in 4D form years ago on the Amiga. But this set does look rather pretty. And it doesn't take a lot of iterations to converge to something interesting.

Phoenix112358
Posts: 133
Joined: Wed Dec 03, 2008 12:39 pm UTC
Location: New Zealand

### Re: 3D Mandelbrot supposedly found

For those not savvy with these sets, is this like groundbreaking stuff or not so much?

I've heard of Mandelbrot and Julia sets in passing from my teacher when he showed us some 2D fractals and kept zooming in and in and it kept repeating itself, but nothing else apart from that.

antonfire
Posts: 1772
Joined: Thu Apr 05, 2007 7:31 pm UTC

### Re: 3D Mandelbrot supposedly found

Phoenix112358 wrote:For those not savvy with these sets, is this like groundbreaking stuff or not so much?
Not so much. They fiddled with some parameters to make a pretty picture.
Jerry Bona wrote:The Axiom of Choice is obviously true; the Well Ordering Principle is obviously false; and who can tell about Zorn's Lemma?

mr-mitch
Posts: 477
Joined: Sun Jul 05, 2009 6:56 pm UTC

### Re: 3D Mandelbrot supposedly found

A very pretty picture , but are there any real applications of a 3D Mandelbrot set?

PM 2Ring
Posts: 3713
Joined: Mon Jan 26, 2009 3:19 pm UTC
Location: Sydney, Australia

### Re: 3D Mandelbrot supposedly found

PM 2Ring wrote: I was playing with 3d slices of the standard Mandelbrot / Julia sets in 4D form years ago on the Amiga.
Just to clarify, I'm not talking about fractals generated using quaternions or hypercomplex numbers. From Explaining a Mandelbrot set to n00bs
I like to think of the set of Julia sets as a 4D object: simply replace each point in the Mandelbrot set with the whole plane of the corresponding Julia set. Various slices through this object can be interesting to look at.
Also see this picture linked by Talith in the following post, for a 2D version of this concept.

But back to the Mandelbulb. The images below are of the degree-8 Mandelbulb, the one used for almost all of the images on the site linked in the OP.

Here's a rough version using spheres with a radial pigment in a 100x100x100 grid, rendered using POV-Ray.

This animation shows z-plane slices through a 121x121x121 grid.

This is my Python code that determines if a point is in the set or not, with some notes taken from the site in the OP.

Code: Select all

`""" Similar to the original 2D Mandelbrot , the 3D formula is defined by:z -> z^n + c...but where 'z' and 'c' are hypercomplex ('triplex') numbers, representing Cartesian x, y, and z coordinates. The exponentiation term is defined by:{x,y,z}^n = r^n { sin(theta*n) * cos(phi*n) , sin(theta*n) * sin(phi*n) , cos(theta*n) }...where:r = sqrt(x^2 + y^2 + z^2)theta = atan2( sqrt(x^2+y^2), z )phi = atan2(y,x)And the addition term in z -> z^n + c is similar to standard complex addition, and is simply defined by:{x,y,z}+{a,b,c} = {x+a, y+b, z+c}The rest of the algorithm is similar to the 2D Mandelbrot!Use n=8 to find the exact object in this article."""ITERS = 7#Compute sin(8t) & cos(8t) given r*sin(t), r*cos(t) & rdef trig8(s, c, r):    if r > 0:        s /= r        c /= r        for i in xrange(3):            s, c = 2.0*s*c, c*c - s*s    return s, c#Determine if voxel (cx, cy, cz) is in the Mandelbulb        def Mandel3D(cx, cy, cz):     x, y, z = cx, cy, cz    for i in xrange(ITERS):            w2 = x*x + y*y        w = w2 ** 0.5        r2 = w2 + z*z        r = r2 ** 0.5        if r >= 2.0:            return False                sth8, cth8 = trig8(w, z, r)        sph8, cph8 = trig8(y, x, w)        r8 = r2 * r2 * r2 * r2        x = cx + r8 * sth8 * cph8        y = cy + r8 * sth8 * sph8        z = cz + r8 * cth8        return True    `

taby
Posts: 154
Joined: Thu Nov 01, 2007 8:39 pm UTC

### Re: 3D Mandelbrot supposedly found

antonfire wrote:Meh, "the" is the wrong word.

Fair enough. The formula providing the 3D Mandelbrot sets has supposedly been found.

That is, I assume the incorrect word was not "the", but "set". However, if you're referring to the lack of a 3D equivalent to the complex and quaternion numbers, then yeah, "the" is the wrong word.

If you're going to lecture someone, please be useful about it. They might actually take you to task for it.
Last edited by taby on Tue Nov 17, 2009 7:21 pm UTC, edited 1 time in total.

taby
Posts: 154
Joined: Thu Nov 01, 2007 8:39 pm UTC

### Re: 3D Mandelbrot supposedly found

antonfire wrote:
Phoenix112358 wrote:For those not savvy with these sets, is this like groundbreaking stuff or not so much?
Not so much. They fiddled with some parameters to make a pretty picture.

There was intent in their methods. You make it sound like it was random typing that caused this to occur. That's obviously bullshit to anyone who read the formula.

Now, you do seem to know your stuff, but you don't have to be a dick about it. In fact, both of your posts in this thread give the impression that you're simply a dick in general. I hope that's not true, but I don't really plan on sticking around to find out.

antonfire
Posts: 1772
Joined: Thu Apr 05, 2007 7:31 pm UTC

### Re: 3D Mandelbrot supposedly found

Yes, the intent was to make a pretty picture. They fiddled with some formulas with the intent to get one, and get one they did.

It's only reasonable to call it "the 3D Mandlebrot", though, if your criterion for what makes a Mandelbrot set is how pretty the picture is. (Or how much "variety you get by zooming in".) The page itself doesn't try to pass the thing of as "the right" mathematical generalization of the Mandlebrot to three dimensions, or even suggest that it is mathematically significant.

It is certainly not groundbreaking, except possibly in the area of "using math to make pretty pictures", and even there I think "groundbreaking" is far too strong a word.

As far as I can tell, your objections are to tone rather than substance. Fair enough. I don't like yours either.
Jerry Bona wrote:The Axiom of Choice is obviously true; the Well Ordering Principle is obviously false; and who can tell about Zorn's Lemma?

stephentyrone
Posts: 778
Joined: Mon Aug 11, 2008 10:58 pm UTC
Location: Palo Alto, CA

### Re: 3D Mandelbrot supposedly found

taby wrote:Now, you do seem to know your stuff, but you don't have to be a dick about it. In fact, both of your posts in this thread give the impression that you're simply a dick in general. I hope that's not true, but I don't really plan on sticking around to find out.

This is probably not the best way to go about changing people's behavior.
GENERATION -16 + 31i: The first time you see this, copy it into your sig on any forum. Square it, and then add i to the generation.

PM 2Ring
Posts: 3713
Joined: Mon Jan 26, 2009 3:19 pm UTC
Location: Sydney, Australia

### Re: 3D Mandelbrot supposedly found

This one is in a 300x300x300 grid, rendered using POV-Ray's isosurface shape, reading the voxel data from a density file, which loads *much* faster than a file of sphere coördinates. This seems to be the best voxel rendering technique in POV-Ray. I've also tried using blobs; the results look interesting, but take too long to render. The pigment is derived from the surface normal vector direction.

Karmin
Posts: 1
Joined: Fri Nov 20, 2009 7:41 am UTC

### Re: 3D Mandelbrot supposedly found

Nice renders PM!

I've been trying to render some other 3d fractals myself in POV-ray, and I know how to do spheres, but how do you turn a set of points into an actual shape like that?

PM 2Ring
Posts: 3713
Joined: Mon Jan 26, 2009 3:19 pm UTC
Location: Sydney, Australia

### Re: 3D Mandelbrot supposedly found

Karmin wrote:Nice renders PM!

I've been trying to render some other 3d fractals myself in POV-ray, and I know how to do spheres, but how do you turn a set of points into an actual shape like that?

Thanks, Karmin. The way I briefly mentioned above involves storing the set of points as a density file, then creating a pattern function from that density pattern, and then using the pattern function in an isosurface object. I'll be posting some relevant POV code soon on the POV-Ray newsgroups. See this thread for discussion of the Mandelbulb & images by various people, and my C source code that generates a POV-Ray density_file for the Mandelbulb.

Here's my latest render of the Mandelbulb. I've also done a couple of GIF animations of the Mandelbulb rotating on its Y axis, but even though they are of a lower resolution & size than the static images, the file sizes are fairly large (I might try & upload them from a faster connection).

Edit

Here's a short section from my POV SDL code, showing how to render a density file as an isosurface:

Code: Select all

`#declare f = function{pattern{density_file df3 FName interpolate 1}}isosurface {    function{f(x, y, z)}    contained_by{box{0, 1}}    threshold 0.5    max_gradient Max_gradient    accuracy 0.01    open    translate -0.5}`