Welcome to Fractal Forums

Fractal Art => Images Showcase (Rate My Fractal) => Topic started by: aluminumstudios on March 12, 2010, 05:11:32 PM




Title: Orbits inside
Post by: aluminumstudios on March 12, 2010, 05:11:32 PM
I recently posted my first video in the video forum:  http://www.fractalforums.com/movies-showcase-%28rate-my-movie%29/orbit-density-map-%28aka-anti-buddhabrot%29-rotation/ (http://www.fractalforums.com/movies-showcase-%28rate-my-movie%29/orbit-density-map-%28aka-anti-buddhabrot%29-rotation/)

Here are some stills from the video that I rendered at a higher resolution.  The anti-buddhabrot is more interesting than one would expect.

This one is in the process of Zr, Zi axis rotating towards the Ci, Cr axis (which is the traditional 2D view of the mandelbrot set.)  The many "paddles" hanging off of this image align to form the bulbs of the m-set when viewed from the CrCi plane.  You can see this alignment in the video.  You can also see that they are connected to the main cardioid or bigger bulbs.

(http://farm5.static.flickr.com/4049/4427749895_a13f16a3c5_o.jpg)

This next one is simple, but I think it is very elegant in a way.  It is a rotation from Zr, Zi (the normal "buddhabrot" image) to the Zr, Cr plane:

(http://farm5.static.flickr.com/4031/4428516360_80476119d0_o.jpg)



Title: Re: Orbits inside
Post by: aluminumstudios on March 13, 2010, 02:51:06 AM
I have a problem with my web host and images don't load without hitting "reload" sometimes.  I moved the images, so if they didn't show up for you before they should now.  If you didn't see anything before I hope you take another look now :)


Title: Re: Orbits inside
Post by: kram1032 on March 13, 2010, 10:25:17 AM
wow, they look great :D

I didn't figure it out yet: Could you give some pseudocode how to rotate them?


Title: Re: Orbits inside
Post by: aluminumstudios on March 13, 2010, 12:31:33 PM
It took me some trial and error.  I read how to rotate in 3D on this page http://www.siggraph.org/education/materials/HyperGraph/modeling/mod_tran/3drota.htm (http://www.siggraph.org/education/materials/HyperGraph/modeling/mod_tran/3drota.htm)

And then I eventually figured out that you apply to rotation transformations to the C-real, C-imaginary, Z-real, and Z-imaginary values before you map them into your image buffer.

For example, to rotate the Zr axis towards the Ci axis (one of the rotations of the first image below):
1)Z' + Z^2+C
Then take Z and ...
2)Zr' = Zr*cos(angle) - Ci*sin(angle)
3)Ci' = Zr*sin(angle) + Ci*cos(angle) <-- this isn't necessary, since you are just plotting Z, I just wrote it for consistency with the example below
4)map (Zr', Zi) to your image buffer as usual

You can see the above example is essentially the same as the 3D transforms on the page I liked to...
x' = x*cos q - y*sin q
y' = x*sin q + y*cos q
z' = z
...I just replaced X and Y with Zr, Ci, etc. depending on what axis I want to rotate towards which other axis.

I hope this helps.


Title: Re: Orbits inside
Post by: quaternion on March 13, 2010, 01:06:05 PM
Aluminumstudios, you video have very low video quality but here images are awesome. Can you make video with ffmpeg with command "ffmpeg -s svga -i %03d-.png -vcodec ffv1 test1800.avi" and upload to youtube?


Title: Re: Orbits inside
Post by: aluminumstudios on March 13, 2010, 02:36:00 PM
Aluminumstudios, you video have very low video quality but here images are awesome. Can you make video with ffmpeg with command "ffmpeg -s svga -i %03d-.png -vcodec ffv1 test1800.avi" and upload to youtube?

Just for your information I did upload a lossless TIFF compressed .mov file which Youtube turned around and promptly compressed the heck out of :-\.  That's why on my post I also link to an MP4 that I made which doesn't have as bad of compression artifacts:  http://www.aluminumstudios.com/media/wmilberry-mandelbrot4d.mp4 (http://www.aluminumstudios.com/media/wmilberry-mandelbrot4d.mp4)

This video was originally just an exploration for me that I only rendered at 640x480, so I'm afraid that there is no HD version to be seen.  I did the individual frames here separately at high resolution (and at a render time that would have been impractical to do the whole video at.)  

I plan on doing future videos at higher resolutions however ... reasonable CPU time permitting of course!



Title: Re: Orbits inside
Post by: kram1032 on March 13, 2010, 02:39:38 PM
Aww...
I'm not sure but I think with my current way of coding it, this wont be possible  :-\
(Or I just have to find the correct line)


Title: Re: Orbits inside
Post by: Timeroot on March 13, 2010, 07:51:13 PM
Erm, when you say "rotate", are you just taking a different slice of the Julibrot's orbits? And is this a 2D or 3D slice? Either way, I would think that has to be very computationally intensive, since you must calculate the entire 2D slice's buddhabrot for many different slices.

Anyway, I think it's pretty to look at the startling similarities between the first and second image... especially the middle of the period-3 zone, where it mimics the Logistic map - and the second image - even more closely. It gives a different kind of insight into the orbits, and reminds us that all quadratics are created equal.

 :)


Title: Re: Orbits inside
Post by: kram1032 on March 13, 2010, 08:43:54 PM
it's a 2Dslice as it's projected to a 2Dplane...

And nope it works by directly changing the plane, as far as I know, so it's not much more expensive than usual.

(However I can't really say as my code doesn't allow for that right now^^)

Just look at this for a very nice demonstration :D
(check out the axes :))

However, the anti buddhabrot version looks even more interesting in my opinion :D


Title: Re: Orbits inside
Post by: aluminumstudios on March 13, 2010, 11:18:02 PM
Erm, when you say "rotate", are you just taking a different slice of the Julibrot's orbits?

It's not a "slice", it's not calculated like a Julia. 

Buddhabrots are map of orbit density.  Each Z' of Z'=Z^C adds only 1 to the image and what you see is the accumulated exposures.  It's like looking through a cloud of smoke, dense areas (areas where many orbits pass through) are thicker (or in this case lighter).  The rotation transformation is applied to Z' after the equation is iterated.

Because it has 4 dimensions (4 axis consisting of Z-real, Z-imaginary, C-real, C-imaginary), rotating it is similar to rotating a tesseract (hypercube).

I hope my attempt at explaining it makes sense.


Title: Re: Orbits inside
Post by: kram1032 on March 13, 2010, 11:25:08 PM
glowing 4D fog at night :)


Title: Re: Orbits inside
Post by: aluminumstudios on March 13, 2010, 11:53:27 PM
Here is information on rotation from Melinda Green (the person who first described the method for rendering buddhabrots):  http://www.superliminal.com/fractals/bgram/anim/index.html (http://www.superliminal.com/fractals/bgram/anim/index.html)

Here is a nice animation on youtube that shows it's rotation and has the axis labeled to help understand it: 
http://www.youtube.com/watch?v=5ej3dj4x64k
(please note this animation is escaping orbits outside of the set, my animation was orbits inside the set.)


Title: Re: Orbits inside
Post by: Timeroot on March 14, 2010, 10:33:05 AM
Erm, when you say "rotate", are you just taking a different slice of the Julibrot's orbits?

It's not a "slice", it's not calculated like a Julia.  

Buddhabrots are map of orbit density.  Each Z' of Z'=Z^C adds only 1 to the image and what you see is the accumulated exposures.  It's like looking through a cloud of smoke, dense areas (areas where many orbits pass through) are thicker (or in this case lighter).  The rotation transformation is applied to Z' after the equation is iterated.

Because it has 4 dimensions (4 axis consisting of Z-real, Z-imaginary, C-real, C-imaginary), rotating it is similar to rotating a tesseract (hypercube).

I hope my attempt at explaining it makes sense.
I understand now. It's not a slice, it's a projection from 4D->3D->2D. This is sampling random 4D points from the Julibrot set, plotting them in a 4D Julibrotgram, and projecting. It is "calculated like a Julia", just as the Mandelbrot set is calculated in the same fashion. They are both, despite their extreme morphological differences, slices of the whole Julibrot.

I would be interested to compare these 4D->3D projection->2D projections with a 4D->3D slice->2D projection video. It would probably require a considerably higher sample density, though, while not reducing the number of dimensions that need to be filled... but it would still be interesting to compare the two.  ;D

P.S. - Congrats, Kram, on your 500th post! A gold star!


Title: Re: Orbits inside
Post by: kram1032 on March 14, 2010, 11:02:38 AM
whoops, thanks for including this aluminumstudios, lol.
I actually wanted to post that in my post, where I said "just look at this..."
Kinda forgot to include the link afterwards xD

I would love to see it with an overlay of both buddhagram and antibuddhagram in a zoom and rotation animation :)

I played around with gimp a bit and came to the conclusion that the "screen" overlay method for buddhabrot and antibuddhabrot works quite nicely :)


Title: Re: Orbits inside
Post by: aluminumstudios on March 14, 2010, 01:25:25 PM
I would love to see it with an overlay of both buddhagram and antibuddhagram in a zoom and rotation animation :)

When I became interested in rendering an anti-buddhabrot I worked that feature into my program:D   It takes a LOT of rendering time though, so I've been putting other renderings that I want to do higher on my priority list.

This was just a test.  I don't like the colors though and need to change them :happy:

I think it's interesting how escaping pixels are kind of "puffed up" away from the set which is smooth and spherical looking.
(http://farm5.static.flickr.com/4067/4431987352_69dd535c3f_o.jpg)


Title: Re: Orbits inside
Post by: kram1032 on March 14, 2010, 02:20:26 PM
whoa! What are you doing to mix it?
inside red and outside blue and green with different bail?


Title: Re: Orbits inside
Post by: aluminumstudios on March 15, 2010, 02:19:50 AM
I don't remember, I did this test image a little while ago and moved on to rendering other things.

The options are really limitless however with how you calculate the color and then mix it when added to the image.