Welcome to Fractal Forums

Fractal Math, Chaos Theory & Research => Videos => Topic started by: twinbee on December 10, 2009, 09:34:44 PM




Title: Into the Heart of the Mandelbulb
Post by: twinbee on December 10, 2009, 09:34:44 PM
Uggh... finally :D A nice time eater this has been (it has a backing soundtrack, so make sure your speakers are on). Enjoy:

http://www.youtube.com/watch?v=cDd8R0xlkNA

Here's a full resolution (800*600), and full frame rate (60fps for super smoothingness no less!) version. Beware though - it's almost 400 megabyte, despite using Xvid encoding!

http://www.skytopia.com/project/fractal/new/into-the-heart-of-the-mandelbulb-60fps.avi

For those who have slower computers which can't handle 60 frames per second, or simply for those who want a shorter download time, here's the 30fps version (133 meg):

http://www.skytopia.com/project/fractal/new/into-the-heart-of-the-mandelbulb-30fps.avi


Title: Re: Into the Heart of the Mandelbulb
Post by: bib on December 10, 2009, 09:38:41 PM
Excellent! The inside part looks so mysterious


Title: Re: Into the Heart of the Mandelbulb
Post by: kram1032 on December 10, 2009, 11:55:51 PM
this is amazing :D
the synching of music and video works very well :)

though, there wasn't really a lot to see inside the mandelbrot... the investigation you did was too short in my opinion...

anyway, due to the used sfx, it's just great :)


Title: Re: Into the Heart of the Mandelbulb
Post by: cKleinhuis on December 11, 2009, 12:48:10 AM
lol, superb, love the relatively deep zooms and the sound !
 :thumbsup1:


Title: Re: Into the Heart of the Mandelbulb
Post by: gussetCrimp on December 11, 2009, 01:46:19 AM
This is fantastic, and well worth the wait. You have a flair for the dramatic. I think what could make it truly awe-inspiring, especially when you're inside (great lighting btw), is for the camera to look around while we're floating forwards, as you would if you were really aboard this voyage of exploration, and take in all the sights from around you, not just through the front viewport...


Title: Re: Into the Heart of the Mandelbulb
Post by: subblue on December 11, 2009, 08:16:10 AM
Very cool. The audio track has a great effect on it. How did you determine the points to keyframe, trial and error?



Title: Re: Into the Heart of the Mandelbulb
Post by: raphuu on December 11, 2009, 01:17:54 PM
Hi,
I'm new to posting to this forum after following with excitement all the activity since the article on slashdot and mandelbulb.

Twinbee: you're video is really nice, as already mentioned by others, the coloring and sounds are beautiful.

I have a question though, isn't the zooming in the mandelbulb supposed to be infinite, i.e. when zooming toward the surface of the bulb, aren't we supposed to zoom indefinitely without being able to "touch" the surface? Like for the 2d mandelbrot: the more you zoom, the more details it shows?

Thank you all for the mind blowing images and animations.



Title: Re: Into the Heart of the Mandelbulb
Post by: David Makin on December 11, 2009, 01:50:04 PM
Hi,
I'm new to posting to this forum after following with excitement all the activity since the article on slashdot and mandelbulb.

Twinbee: you're video is really nice, as already mentioned by others, the coloring and sounds are beautiful.

I have a question though, isn't the zooming in the mandelbulb supposed to be infinite, i.e. when zooming toward the surface of the bulb, aren't we supposed to zoom indefinitely without being able to "touch" the surface? Like for the 2d mandelbrot: the more you zoom, the more details it shows?

Thank you all for the mind blowing images and animations.



Welcome !

It is possible to keep zooming into a Mandelbulb in the same way as a complex Mandelbrot, it's just a lot more time consuming to render such a zoom.
For instance even zooming into the "whipped cream" areas will eventually produce detail - in the same way that certain areas of the boundary of the complex Mandy require deep zooms to reveal detail.


Title: Re: Into the Heart of the Mandelbulb
Post by: Snakehand on December 11, 2009, 02:05:57 PM
Hi,
I'm new to posting to this forum after following with excitement all the activity since the article on slashdot and mandelbulb.

Twinbee: you're video is really nice, as already mentioned by others, the coloring and sounds are beautiful.

I have a question though, isn't the zooming in the mandelbulb supposed to be infinite, i.e. when zooming toward the surface of the bulb, aren't we supposed to zoom indefinitely without being able to "touch" the surface? Like for the 2d mandelbrot: the more you zoom, the more details it shows?

Thank you all for the mind blowing images and animations.



Welcome !

It is possible to keep zooming into a Mandelbulb in the same way as a complex Mandelbrot, it's just a lot more time consuming to render such a zoom.
For instance even zooming into the "whipped cream" areas will eventually produce detail - in the same way that certain areas of the boundary of the complex Mandy require deep zooms to reveal detail.


First of all: Great Video.

As to the amount of detail on the Mandelbulb, the 3D renderings disguise the fact that the detail is often a swirl of ultra fine threads. When rendering a 2D mandelbrot one tries to keep the iteration count at a high enough level to produce tiny mandelbrot solids. Doing this on the mandelbulb would in many places just produce streaks of dust like particles. Instead a surface some distance away from these filaments are rendered, kind of like a regular mandebrot with the iteartion count set a bit to low gives a much smoother boundary.



Title: Re: Into the Heart of the Mandelbulb
Post by: twinbee on December 11, 2009, 04:52:52 PM
Thanks all for the comments!

Quote
Instead a surface some distance away from these filaments are rendered, kind of like a regular mandebrot with the iteartion count set a bit to low gives a much smoother boundary.

Yeah, half way through my video, I had to change the iteration count to around half, because things were becoming too 'bitty' and also much harder to render without any flickery errors, and 'chunks' disappearing.

Quote
I have a question though, isn't the zooming in the mandelbulb supposed to be infinite, i.e. when zooming toward the surface of the bulb, aren't we supposed to zoom indefinitely without being able to "touch" the surface? Like for the 2d mandelbrot: the more you zoom, the more details it shows?

This is where it can get a bit confusing. Remember there are (kind of) two different types of zoom, one is where the 'giant 3d photo' is being enlarged forever. This is essentially the same as resizing an image, and cropping a smaller central part of it. The 2D mandelbrot works by this principle, and so does my older 3D Mandelbulb video (see bottom of this post). As David said, it's easier to render this type.

However, the type of zoom from this new video above is basically that the camera itself is *moving in* to the fractal. This brings its own difficulties, including the possibility of crashing, or of nothing much happening for ages. To get the effect of zooming in for a long time, I had to make the camera slow down towards the end. It looks just as 'fast' as the beginning, but really the camera is going dead slow, and it's only the fact that we're so close to the tiny, tiny fractal detail that things still look as though we're going really fast. Finally, going really really close (more so than I've done here) can be very painful to render (up to an hour per frame, at least until I optimize further).

Anyway, because the camera is going in, just like with a real object, it's possible to crash into the Mandelbulb (and go inside, where it appears pitch black in the video).

Hope that helps clear things up a bit!

Quote
Very cool. The audio track has a great effect on it. How did you determine the points to keyframe, trial and error?

For the backing 'music' track which had 'pseudo' sound fx and note crescendos/decrescendos, yes, pretty much. However, my other 'normal' sound effects (like the crash) were easier to do, as I simply go to the frame I want in the video editor, and align the sound to it there and then.

Here's the older video I did with the 'photo enlargement' type zoom:
http://www.youtube.com/watch?v=vqkPjpU6bsA


Title: Re: Into the Heart of the Mandelbulb
Post by: bib on December 11, 2009, 05:46:56 PM
How come the switch between outside and inside is so long? Isn't the border supposed to be infinitely thin? Is its apparent thickness due to low iteration count?


Title: Re: Into the Heart of the Mandelbulb
Post by: twinbee on December 11, 2009, 05:53:06 PM
Quote
How come the switch between outside and inside is so long? Isn't the border supposed to be infinitely thin? Is its apparent thickness due to low iteration count?

Okay, first of all, for effect, I artificially delayed the time spent in the 'crash section' - in reality, it only lasts around 0.1 - 0.2 seconds (say around 5 frames worth).

Like you say, the relatively low iteration count could account for this 'volume' of solidness anyway.

However, even with infinity iterations, I have my suspicions that some sections on the perimeter (including maybe this one) would still be somewhat thick. I can't say for sure though.


Title: Re: Into the Heart of the Mandelbulb
Post by: gussetCrimp on December 11, 2009, 08:28:37 PM
could you post a description of your working method to find the particular path you chose? Does the path have to be straight, and does the camera have to remain pointing in the direction of travel? Can you automate the slowdown you describe so you always travel at a speed logarithmically related to the distance from the closest surface, or do you do it manually? Can you start rendering along a particular path, and as you move closer to the fractal detail, decide to change direction based on what looks interesting closer up, or do you have to set the path in advance and let it run? Is there some aliasing going on in the shimmering parts of the video? Can you transport a light source with you so it casts moving shadows--it almost seems like this is happening with some of the complex chambers on the crust just before we burst through.

I saw the updates to your skytopia page... maybe you could add iq's big video, if he gives you permission, to the section on fly-bys. His one ("f8p6.avi") is stunning too.


Title: Re: Into the Heart of the Mandelbulb
Post by: gussetCrimp on December 11, 2009, 10:02:55 PM
p.s. the inside totally looks like the inside of a Cylon basestar from BSG, kind of disturbingly organic. How did you light it? Once you've found some good locations in the interior for back-lighting, you could drop some light sources at strategic points the way they do to get fantastic photos of the inside of caves. And again, I would really love to see the path arc once we're inside so we get to see a bit more--you could make it skim close to the inside surface for a while if it's not too hard to search out an interesting path before you start the high-quality render.


Title: Re: Into the Heart of the Mandelbulb
Post by: twinbee on December 13, 2009, 12:51:20 AM
Quote
could you post a description of your working method to find the particular path you chose?

I think trial and error comes closest :) I started from the outside and went in. Whenever I hit scenery, I change the x/y of the camera slightly, and rinse/repeat. Once I'm in, I experiment with what initial speed would be best to fly at, but also one has to experiment with the rate of acceleration too.

Quote
Does the path have to be straight, and does the camera have to remain pointing in the direction of travel?

Not really, but it's probably simpler if the path is straight. Besides I haven't got a NURBS routine ready yet.

Speaking of which, maybe there's an open source NURBs function on the internet which takes a set of x,y,z points and a few of other variables, including the position along the curve, and generates the new x,y,z...

Quote
Can you automate the slowdown you describe so you always travel at a speed logarithmically related to the distance from the closest surface, or do you do it manually?

Hmmm... you've got to be careful, because surfaces which are 'close', you may want to fly by quickly, and vice versa. Also, there may be a few 'nearby surfaces' you could take into account. As said before, there's also the chance of long drawn out sections where the flyby takes ages to get to the interesting part of a new surface. It's all a bit messy.

Quote
Can you start rendering along a particular path, and as you move closer to the fractal detail, decide to change direction based on what looks interesting closer up, or do you have to set the path in advance and let it run?

It's easier to do the latter, but in theory I would be able to choose specific points along the way and change course.

Quote
Is there some aliasing going on in the shimmering parts of the video?

I think you're referring to the chunks which appear and disappear. That's an artifact of the rendering (i.e. something I need to improve ;) ). It happens especially when the iteration count is high, because ultrathin surface are being 'undetected' as if they didn't exist sometimes.

Quote
Can you transport a light source with you so it casts moving shadows--it almost seems like this is happening with some of the complex chambers on the crust just before we burst through.

Yes, the whole of the outside of the picture is counted as a light source in my rendering routines, hence the constant lit tunnel effect. But I would able to add 'other' light sources too if need be. But rendering time would suffer.

Quote
I saw the updates to your skytopia page... maybe you could add iq's big video
.

Thanks, I added a link to the Youtube vid for now.

Quote
And again, I would really love to see the path arc once we're inside so we get to see a bit more--you could make it skim close to the inside surface for a while if it's not too hard to search out an interesting path before you start the high-quality render.

I'll probably want NURBs first before I explore this kind of thing. But yes, it would be stunning.


Title: Re: Into the Heart of the Mandelbulb
Post by: kram1032 on December 13, 2009, 05:34:09 PM
when the logarithmic zoom was mentioned, something different came into my mind:

what about letting the camera follow 3D lines of magnetic flux, ie let it kinda be a particle with direction that is affected by magnetism...

Afaik, the simplest way to colour the Mandelbrot actually shows how the magnetic field around it would look like...


Title: Re: Into the Heart of the Mandelbulb
Post by: David Makin on December 13, 2009, 05:38:12 PM
when the logarithmic zoom was mentioned, something different came into my mind:

what about letting the camera follow 3D lines of magnetic flux, ie let it kinda be a particle with direction that is affected by magnetism...

Afaik, the simplest way to colour the Mandelbrot actually shows how the magnetic field around it would look like...

Good idea, but getting the field lines analytically is tricky - even on a standard complex 2D fractal :)

One way to do it would be have the camera simply follow the path of greatest iteration density.


Title: Re: Into the Heart of the Mandelbulb
Post by: iq on December 16, 2009, 03:53:14 AM
twinbee, you can probably use this code for spline camera interpolation: http://iquilezles.org/www/articles/minispline/minispline.htm (http://iquilezles.org/www/articles/minispline/minispline.htm)  Well, for camera, light position, shading parameters, anything you want to animate over time. It's pretty easy tu use, much more than Bezier curves, and is probably enough to build simple animations. I copy the code here anyway, as it's very short:

Code:
static signed char coefs[16] = {
    -1, 2,-1, 0,
     3,-5, 0, 2,
    -3, 4, 1, 0,
     1,-1, 0, 0 };

void spline( const float *key, int num, int dim, float t, float *v )
{
    const int size = dim + 1;

    // find key
    int k = 0; while( key[k*size] < t ) k++;

    // interpolant
    const float h = (t-key[(k-1)*size])/(key[k*size]-key[(k-1)*size]);

    // init result
    for( int i=0; i < dim; i++ ) v[i] = 0.0f;

    // add basis functions
    for( int i=0; i<4; i++ )
    {
        int kn = k+i-2; if( kn<0 ) kn=0; else if( kn>(num-1) ) kn=num-1;

        const signed short *co = coefs + 4*i;

        const float b  = 0.5f*(((co[0]*h + co[1])*h + co[2])*h + co[3]);

        for( int j=0; j < dim; j++ ) v[j] += b * key[kn*size+j+1];
    }
}

"key" contains the time-data keyframes. Data can be 1D, 2D, 3D, 4D or any D you want. For cameras you probably want 6D, something like positionX, positionY, positionZ, lookAtPointX, lookAtPointY, lookAtPointZ, or a couple of 3D splines, dunno. Your global illumination algorithms seems pretty robust regarding different scale factors, but if you with to modify any parameter as you move deep into the fractal (like, more light bounces, or more contrast) you can bake that info in a spline too.


Title: Re: Into the Heart of the Mandelbulb
Post by: twinbee on December 16, 2009, 04:21:47 PM
Thanks for that code iq. It looks as though the Catmull-Rom spline has some useful properties including:

a: local control; only nearest part of curve (within 2 control points either side) is affected.
b: curves pass through points exactly.

Both are great for precise camera control. I suppose one thing it may be lacking is controlling the 'sharpness' of the curve (which I think NURBs allow), but one can always add more control points.

It always confuses me why traditional 2D paint programs such as Photoshop still use only Bezier curves, when there are probably better options available.


Title: Re: Into the Heart of the Mandelbulb
Post by: Snakehand on December 18, 2009, 12:20:22 AM
twinbee, you can probably use this code for spline camera interpolation.....
 For cameras you probably want 6D, something like positionX, positionY, positionZ, lookAtPointX, lookAtPointY, lookAtPointZ, or a couple of 3D splines, dunno...

For camera interpolation, I would suggest using quaternion, and SLERP interpolation. http://en.wikipedia.org/wiki/Slerp (http://en.wikipedia.org/wiki/Slerp) This should give you the necessary control of the camera, and steers clear of numerous common problems. At any rate this is what I will use when I get around to writing camera control. Those splines look neat though, I might try them out on a problem I have encountered at work  :D (thanks)



Title: Re: Into the Heart of the Mandelbulb
Post by: kram1032 on December 18, 2009, 12:51:56 AM
afaik, there is some kind of extension of cardinal-splines where you can affect the roundness, bias and tension of the curves. It's kinda based on manipulating the gradient of the spline...

formulae aren't too complex but I don't remember the exact name so I can't find them :(