Welcome to Fractal Forums

Fractal Math, Chaos Theory & Research => Mandelbrot & Julia Set => Topic started by: ker2x on December 30, 2009, 04:27:52 AM




Title: WingedBrot
Post by: ker2x on December 30, 2009, 04:27:52 AM
This is, again, some kind of buddhabrot. (plotting trajectory of point escaping the m-set)

But but but... is a modified formula.
The original iteration process is :
xnew = x * x  - y * y  + x0;
ynew = 2 * x * y + y0;

the modified is :
xnew = x * x  - y * y  + x0;
ynew = 1 * x * y + y0;

(http://ker.endofinternet.net/img/wingedbrot.jpg)


Title: Re: WingedBrot
Post by: ker2x on December 30, 2009, 04:52:20 AM
humanbrot ?

Bleh... i have too much imagination :)
(http://ker.endofinternet.net/img/humanbrot.jpg)


Title: Re: WingedBrot
Post by: ker2x on December 30, 2009, 05:04:15 AM
It's hard to notice in this picture, but with some tweeking we find that the large bright vertical "line" are part of a logistic map.
something that was already found here : http://www.superliminal.com/fractals/bbrot/l-map/ (http://www.superliminal.com/fractals/bbrot/l-map/)

edit : mmm... maybe not :)


Title: Re: WingedBrot
Post by: ker2x on December 30, 2009, 06:50:03 AM
Same rendering technique :

a "burningship" :
http://ker.endofinternet.net/img/burnship.jpg (http://ker.endofinternet.net/img/burnship.jpg)

And much more obvious, a "mandelbar/tricorn" :
http://ker.endofinternet.net/img/mandelbar.jpg (http://ker.endofinternet.net/img/mandelbar.jpg)


Title: Re: WingedBrot
Post by: kram1032 on December 30, 2009, 08:43:24 PM
very nice stuff :)

Did you already see my tries on buddhabrot variations?

http://kram1032.deviantart.com/gallery/#Fractals

besides the very oldest two (the last two, currently on page 3), they're all done with the buddhabrot rendering technique and some kind of colour gradient. :)


Title: Re: WingedBrot
Post by: Nahee_Enterprises on December 30, 2009, 09:32:16 PM
I liked the way that both "WingedBrot" and "WingedBrot-II" came out.  Very interesting images.


Title: Re: WingedBrot
Post by: ker2x on December 31, 2009, 03:14:16 PM
Thx.
I added the sourcecode and more pic : http://ker.endofinternet.net/img/ (http://ker.endofinternet.net/img/)

@kram : very nice. and thx for posting the formula in some of them, i will try them :)


Title: Re: WingedBrot
Post by: ker2x on December 31, 2009, 03:20:46 PM
I'm wondering if the rendering could be faster with an opencl/gpgpu version.
It's not sure at all ... as every iteration need an access to the shared orbit map.

each point is not independant like a good old mandelbrot rendering ...
And shared memory access on a gpu is really slow (800 cycle latency)


Title: Re: WingedBrot
Post by: twinbee on December 31, 2009, 05:59:10 PM
Nice and scary! Reminds me of the "bat coming towards the camera" scene in (the latest?) Batman film.


Title: Re: WingedBrot
Post by: ker2x on January 01, 2010, 05:11:42 PM
thx.

I just added a new pic, 47 billions points.
I added a new features (not in this pic) to benchmark the performances.
Around 50.000 iteration per milliseconds.

PureBasic is Fast  ;D


Title: Re: WingedBrot
Post by: ker2x on January 01, 2010, 09:15:39 PM
And now with color !  ;D




Title: Re: WingedBrot
Post by: Buddhi on January 01, 2010, 10:13:56 PM
Some time ago I rendered some animations with Widget/Buddhabrots.

In first animation I changed degree multiplier (@mul) in range -6 to 7. It was rendered in around 100 hours.
Formula was:

deg = atan2(x,y)
r = x^2 + y^2
x = r * cos(deg*@mul) + c.x
y = r * sin(deg*@mul) + c.y

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

Second animation shows some details of Buddhabrot. Fractal was rendered in resolution 8000x8000 pixels. Render mesh resolution was 50000x50000 samples and maximum number of iterations was also 50000.

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


Title: Re: WingedBrot
Post by: ker2x on January 01, 2010, 10:44:12 PM
Very nice videos :)

BTW ... you can download software and sourcecode at http://ker.endofinternet.net/img/ (http://ker.endofinternet.net/img/)
at 60.000 iterations per milliseconds (or 60 millions/s), i think i can say that it's very fast for a monothread app ;D


Title: Re: WingedBrot
Post by: kram1032 on January 04, 2010, 03:16:52 AM
very nice buddhi :D

ker2x:
I can't guarantee that I still have all the formulae but if you want to know any specific of them I can try to find it :)

Are you using a fixed grid approach or a random grid one to render your results?

In both cases, multithreating should be somewhat easy to implement: for the random case, just start an additional rekursion per thread and for the fixed grid maybe render per quadrant or make it so the cores cycle through the points. :)
Just some thoughts...


Title: Re: WingedBrot
Post by: ker2x on January 05, 2010, 06:46:22 AM
very nice buddhi :D

ker2x:
I can't guarantee that I still have all the formulae but if you want to know any specific of them I can try to find it :)

Are you using a fixed grid approach or a random grid one to render your results?

In both cases, multithreating should be somewhat easy to implement: for the random case, just start an additional rekursion per thread and for the fixed grid maybe render per quadrant or make it so the cores cycle through the points. :)
Just some thoughts...

I choose random point.
You can find the the source code in *.pb file
Even if you don't know purebasic, it's very easy to understand :)

The problem with multithread :
- With a standard mandelbrot rendering, computing one point write one pixel.
- With buddhabrot, computing one point write on the whole image.
- with millions of point written per seconds, the problem will spend all its time to wait for mutex. Unless i accept some consistancy problem... the effect could be negligible.

For now, i'm playing with rewriting fractal rendering in x64 asm with SSE2&3 instruction. Big speed improvement.

I started to rewrite the buddhabrot renderer in asm with SSE


Title: Re: WingedBrot
Post by: BradC on January 05, 2010, 07:21:42 AM
The problem with multithread :
- With a standard mandelbrot rendering, computing one point write one pixel.
- With buddhabrot, computing one point write on the whole image.
- with millions of point written per seconds, the problem will spend all its time to wait for mutex. Unless i accept some consistancy problem... the effect could be negligible.
Could you have the different threads write to different arrays, and then combine the different arrays down to one final array at the end?


Title: Re: WingedBrot
Post by: ker2x on January 05, 2010, 08:02:32 AM
Yes, it should work too.

btw, i added the color version of the Wingedbrot :


Title: Re: WingedBrot
Post by: ker2x on January 05, 2010, 08:06:22 AM
I will try to implement the Metropolis-Hastings Algorithm for deep zooming : http://www.steckles.com/buddha/ (http://www.steckles.com/buddha/)


Title: Re: WingedBrot
Post by: ker2x on January 05, 2010, 06:28:38 PM
i zoomed in the picture above and changed the colors.


Title: Re: WingedBrot
Post by: kram1032 on January 05, 2010, 06:37:08 PM
where there any details in that white area?
I don't really like the gradients you chose for killing details...


Title: Re: WingedBrot
Post by: ker2x on January 05, 2010, 08:58:41 PM
i don't know. there is absolutly no post-processing and no color palette. and i can't change it without post processing.

I will explain how i color it. but i'm too tired to explain it in english right now.
It is the same process as explained here : http://www.superliminal.com/fractals/bbrot/bbrot.htm (http://www.superliminal.com/fractals/bbrot/bbrot.htm)

Quote
After a long time generating greyscale images I realized that there is a natural way to use color to display more information within the buddhabrot images. Notice that  basic buddhabrot images are generated by choosing a "maximum iterations" threshold just as for Mandelbrot images. One main difference between the two techniques is that buddhabrot images have distinctly different appearances depending on the choice of threshold, whereas the effect of different threshold values for mandelbrot images only changes the amount of black (unresolved) pixels. I realized that I should be able to generate meaningful color buddhabrot images by generating three basic images that differ only in the choice of threshold values, and then combining those images as the red, green, and blue channels of a single color image. This is exactly the same technique that astronomers use when generating "false-color" images of astronomical objects. For example, see the famous Eagle Nebula images from the Hubble Space Telescope and read the associated descriptions of color astronomomical mages. For my color buddhabrot images the three different threshold values are analogous to the different frequencies of light which NASA combined into their beautiful false-color images. For the image below I used threshold values of 500, 5000, and 50000, and assigned them to the blue, green, and red channels respectively in order to generate images that most resemble the NASA nebula images.

I'm wondering if i could rewrite a buddhabrot renderer for Ultrafractal5 ...


Title: Re: WingedBrot
Post by: kram1032 on January 05, 2010, 10:24:02 PM
hmmm...
interesting: colours for that don't really look right...

It especially looks like it lacks the yellow part a lot.

Which bailout values are you using?


Title: Re: WingedBrot
Post by: ker2x on January 06, 2010, 06:31:30 PM
i don't remember for this one.

i should print the parameters on the screen, so i can remember.
I usually use the green color for high iteration count, because i don't like green and with this kind of fractal the high iteration pixels are rare.

in this picture, all the green pixel are in the "white area". (because you need green pixel make white pixel, heh !)
i tried with differents values, iteration. the white area don't have interetings details.


Title: Re: WingedBrot
Post by: kram1032 on January 06, 2010, 07:12:49 PM
ok :)

It looks surprisingly dull in the red region too...


Title: Re: WingedBrot
Post by: stigomaster on February 06, 2010, 09:20:18 PM
My winged buddhabrot/nebulabrot looks quite different from yours, I wonder why. Parameters:
Top left: -2, 1.5
Bottom right: 2, -1.5
Iterations: R = 10000, G = 1000, B = 100
Bailout: 20*20


Title: Re: WingedBrot
Post by: stigomaster on February 06, 2010, 09:38:10 PM
I tried another variant as well, it's a little nice.

This is the mandelbar orbit plot of points escaping the mandelbrot set.

For some reason I named it James.


Title: Re: WingedBrot
Post by: kram1032 on February 06, 2010, 11:34:28 PM
That's beautiful :D

I really need to implement the three-colour method in a reasonable way...
(What I do right now, if I use the tribailout colouring method, is to render three images seperately...
It would be better to reuse values from lower bailout in higher ones and colour the results directly...)


Title: Re: WingedBrot
Post by: Nahee_Enterprises on February 07, 2010, 05:33:48 AM
I tried another variant as well, it's a little nice.
This is the mandelbar orbit plot of points escaping the mandelbrot set.
For some reason I named it James.

I guess your monitor must be adjusted quite a bit different from mine, for this image was so dark when I viewed it that hardly anything was noticeable within the graphic.


Title: Re: WingedBrot
Post by: Timeroot on February 07, 2010, 08:59:30 AM
Awesome pictures.  :D

That modification to the formula you made is actually identical to the Chaosbrot formulas... there's a thread about them here somewhere...

Has anyone written a general class-based buddhabrot algorithim for UF? Loading one to determine whether its orbit is included or not, choosing inside/outside, then choosing a second whose orbits to plot. It would be quite useful.

Has anyone made a 3D buddhaghost based on triplex numbers? Or a Julibrot-equivalent buddhabrot? I think the z^2 buddhaghost would look quite frightening...

Buddhabrots would lend themselves well to distributed computing, would they not?


Title: Re: WingedBrot
Post by: ker2x on March 07, 2010, 10:10:29 PM
My winged buddhabrot/nebulabrot looks quite different from yours, I wonder why. Parameters:
Top left: -2, 1.5
Bottom right: 2, -1.5
Iterations: R = 10000, G = 1000, B = 100
Bailout: 20*20

rotate by -90° and set iteration to a very low value (i don't remember exactly but something below 20)


Title: Re: WingedBrot
Post by: kram1032 on March 07, 2010, 11:32:34 PM
well, that explains the lack of zoomin details... :)