Logo by Pauldelbrot - Contribute your own Logo!

END OF AN ERA, FRACTALFORUMS.COM IS CONTINUED ON FRACTALFORUMS.ORG

it was a great time but no longer maintainable by c.Kleinhuis contact him for any data retrieval,
thanks and see you perhaps in 10 years again

this forum will stay online for reference
News: Support us via Flattr FLATTR Link
 
*
Welcome, Guest. Please login or register. March 29, 2024, 09:32:16 AM


Login with username, password and session length


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


Pages: 1 [2] 3 4 5   Go Down
  Print  
Share this topic on DiggShare this topic on FacebookShare this topic on GoogleShare this topic on RedditShare this topic on StumbleUponShare this topic on Twitter
Author Topic: Brahmabrot a simplified and expanded Buddhabrot  (Read 22769 times)
Description: EX: Problems with implementing Budhabrot in UF
0 Members and 1 Guest are viewing this topic.
kram1032
Fractal Senior
******
Posts: 1863


« Reply #15 on: December 05, 2012, 12:55:19 PM »

I can't recall what exact bailout settings I used and such. It's very likely that I simply used a circular region of big radius. Not the typical radius 2 but more like radius 32 or something.
I wonder what would be the "actual" formula for it.
Note, though, that what you see is a fairly low-quality image that is relatively heavily post-processed to recduce noise and such.
Furthermore, it's an antibuddhabrot.

I noticed in later experiments that you can significantly change the results by discarding values that are inappropriate for the given render. It may very well be that, if you have a different bailout strategy, you get quite a different result.
I'd love to see more experimentation with that MSet. I already noticed that it essentially includes features of polynomial MSets of every order. Likely a result of the tangens being a exponential and rational function.

A proper bailout area likely is relatively complex, since tan repeats infinitely and thus there are infinitely many regions outside of any given circle that would still converge. (notably all the points where x tan x = 0 , which happens where ever tan x = 0)

That being said, I'd love to see your versions for comparison.
Logged
Alef
Fractal Supremo
*****
Posts: 1174



WWW
« Reply #16 on: December 05, 2012, 05:29:50 PM »

I 'stolen' some of your formulas so will try out what will happen;) Especialy cos there are spirals.

 If you have simple polynomial probably bailout value don't have so much role, if modulus is larger than 4, it don't go back to screen coordinates. So I kept it low, so to reduce calculations. With tan it is a bitt different, orbits goes back to screen even if they are larger than 4.

Mine pic don't have any postprocess, I posted as they were.
However my version is not proper buddhabrot or antibuddhabrot, it's more like (calculation) optimised version, as it don't checks for insides or outsides. Insides iterates longer so it looks more like antibuddhabrot. But it's antibuddhabrot which correspondents to logistic map like mandelbrot set do.
Logged

fractal catalisator
kram1032
Fractal Senior
******
Posts: 1863


« Reply #17 on: December 05, 2012, 09:07:36 PM »

Sounds nice. I don't *quite* understand what you mean (I think there might be a slight language barrier) but I think I roughly get the idea.
Yeah, that nice tan was one of the best simple formulae I found.
Two others were the two möbius transform - like ones: http://kram1032.deviantart.com/art/the-Summoner-147550121?q=gallery%3Akram1032%2F8114949&qo=23 and http://kram1032.deviantart.com/art/Daemon-of-Circles-147362622?q=gallery%3Akram1032%2F8114949&qo=24

Just keep 'em comming. I'm glad somebody tries to explore these further. My own program sadly is terribly slow and I also have less time than I used to, to try out new ones. Occationally that still happens though.
Logged
Ryan D
Alien
***
Posts: 36


WWW
« Reply #18 on: December 05, 2012, 11:22:31 PM »

Here's a collection of "exploding Buddhabrots", again using Fractint.  Fractint has a number of hard-coded fractal types that allow for function switching once an intermediate bailout value is reached.  In this case, I switched from the Buddhabrot (z squared + c) to one of the 26 function variants (for example, sin(z) +c, log(z) + c, acosh(z) + c, etc).  The individual animation segments all start with an immediate switch to the function variant, and over time the intermediate bailout increases logarithmically from 0 to some arbitrarily large number, 888 or something like that.  Some of the function variants look quite unusual when the iteration is started at these more-or-less random initial points.

<a href="http://vimeo.com/moogaloop.swf?clip_id=49909314&amp;amp;server=vimeo.com&amp;amp;fullscreen=1" target="_blank">http://vimeo.com/moogaloop.swf?clip_id=49909314&amp;amp;server=vimeo.com&amp;amp;fullscreen=1</a>

In order, the function variants are:

SIN
COS
TAN
COTAN
SINH
COSH
TANH
COTANH
EXP
LOG
RECIP
IDENT
ZERO
ONE
CONJ
FLIP
COSXX
ASIN
ASINH
ACOS
ACOSH
ATAN
ATANH
SQRT
ABS
CABS

Ryan
Logged
cKleinhuis
Administrator
Fractal Senior
*******
Posts: 7044


formerly known as 'Trifox'


WWW
« Reply #19 on: December 05, 2012, 11:52:37 PM »

good animation but far too fast wink

i like that you plot the complex transform, but it is far far far too fast dude!!

how much differs a triplex brot ... buddhas in 3d ... i think someone did it before, but no time to search wink#
Logged

---

divide and conquer - iterate and rule - chaos is No random!
Ryan D
Alien
***
Posts: 36


WWW
« Reply #20 on: December 06, 2012, 12:53:07 AM »

good animation but far too fast wink

The "too fast" was intentional for that animation.  I had tried two of the more complex function variants already, both in slow motion and zoomed in a bit (and one rotated 90°).  When I decided to try them all, it was done mostly as a rough test (for that matter, all my animations so far are just rough tests).  To do all 26 types with the slower animation, the video would have been 17 minutes long.  And it would have taken 14 days to render the frames ....

<a href="http://vimeo.com/moogaloop.swf?clip_id=49744244&amp;amp;server=vimeo.com&amp;amp;fullscreen=1" target="_blank">http://vimeo.com/moogaloop.swf?clip_id=49744244&amp;amp;server=vimeo.com&amp;amp;fullscreen=1</a>

<a href="http://vimeo.com/moogaloop.swf?clip_id=49717156&amp;amp;server=vimeo.com&amp;amp;fullscreen=1" target="_blank">http://vimeo.com/moogaloop.swf?clip_id=49717156&amp;amp;server=vimeo.com&amp;amp;fullscreen=1</a>

Ryan
Logged
Alef
Fractal Supremo
*****
Posts: 1174



WWW
« Reply #21 on: December 06, 2012, 10:03:54 AM »


If you calculate buddhabrot proper you pick random points, iterate, and throw out non escaping orbits and picture builts up very slowly. If you iterate and throw out escaping orbits, you have antibuddhabrot, and picture builts much faster, but still some orbits are iterated but not used. So I didn't throw out any orbits, what saves some calculation time, but it's not quite an buddhabrot or antibuddhabrot;). Alsou if you iterate point twice as described in original buddhabrot algorithm, it makes it slow. And probably alsou colour calculation by 3 iteration lenghts makes it 3x slower.
This one is reasonably fast even on my very old old pentium 2.
Tested some formulas and picked what looked best.

;Royal Imagination
z=sqr(real(z))- sqr(sqr(imag(z))) + flip( 2*real(z)*imag(z) ) +c
(x->x2-y4+x0  y->2xy+y0)
In switch I named this Royal Mbrot. Royals must be obese. Here ambient light is negative, and colour value is added to it. Then colours are by absolute value.


;Swirl Mbrot
z=(e^flip(cabs(z)+atan2(z))*z )^3  +c
abs(x+yi)*ei(abs(x+yi)+arg(x+yi)) squared +c didn't wanted to generate simmetric picture, but with real modulus it become simmetric. Inverted and switched channels.


;Tangentbrot
z=tan(z)*z+c
With basic values it were too pixelate, but with slightly less colours and more ambient light there are less pixels.


Oops, after it rendered I slightly moved picture (I renered this in Chaos pro), so it cutted of the bottom. So while eating breakfest I rendered tangentbrot is smaller resolution. Maybe too much ambient light. This needs bitt tweaking or contrast.


Logged

fractal catalisator
kram1032
Fractal Senior
******
Posts: 1863


« Reply #22 on: December 06, 2012, 11:25:37 AM »

I'm not calculating colors three times. Rather I "cut them off", e.g. I do:
"Once 200 is reached, save results into blue channel."
"Once 2000 is reached, save results into green channel."
"Once 20000 is reached, sace results into red channel and stop."
So at the very least it's efficient in this way.

I really love the swirl transform I crafted. (I really crafted it. I recall finding out about gravity waves back then and there was a Wikipedia image of two neutron stars orbiting each other, generating swirly waves, so I tried to find a way to make such waves myself.)
The squared Version wasn't symmetric, you say? Weird...
i think there might be some nice variants of it, if you fiddle with the frequencies.
Try something like
|z| e^{i f |z|}\text{sgn}(z)^g
where f and g would be frequency factors.
An increase in f would mean more frequent ripples along the radius, while an increase in g would mean more turns.

Also interesting might be
|z|^{1+i} \text{sgn}(z)
which should make the ripples along the radius be dependend on the logarithmic distance rather than the linear one, so the spiral becomes logarithmic instead of Archimedean.

Note, what ever formula you try, the described swirl transforms should simply replace your typical z, rather than the entire equation.

So I see you liked my naming of that later one. smiley
« Last Edit: December 06, 2012, 11:27:48 AM by kram1032 » Logged
Alef
Fractal Supremo
*****
Posts: 1174



WWW
« Reply #23 on: December 07, 2012, 10:19:19 AM »

Shame that on office PC I can't watch videos;)
Quote
I really love the swirl transform I crafted. (I really crafted it. I recall finding out about gravity waves back then and there was a Wikipedia image of two neutron stars orbiting each other, generating swirly waves, so I tried to find a way to make such waves myself.)
The squared Version wasn't symmetric, you say? Weird...
Swirl transform worked corectly. Just that in ultrafractal abs(z) is not the modulus of z. in UF  cabs(z) = (x^2 + y^2)^1/2, but abs(z) returns complex positive value, so its different function. And in UF flip(x) switches real and imaginary values.
But z=(e^flip(cabs(z)+atan2(z))*z )^@power  +c had more features than z=(e^flip(cabs(z)+atan2(z))*cabs(z) )^@power  +c . A bitt faster z=(exp(flip(cabs(z)+atan2(z)) ) *z )^@power  +c

Nice transform. So far they didn't found graviational waves, but relativity is convincing so probably they will found.

Quote
"Once 20000 is reached, sace results into red channel and stop."
I used 200 as maximum iterations. Probably this is real reason for speed differences. With my colour calculation method colours alredy are generated at low iterations, and larger maximum iterations just increases contrast of final picture.


;Swirl Mbrot
z=(exp(flip(cabs(z)+atan2(z)) ) *z )^@power  +c
with power =2 it is simmetric. Red is becouse of sin transfer function.



;SummonerEye
z=(z + c) / ( conj(z)- c+ @talisadd )
With talisadd =1
Modified formula from The summoner. SMooth colours are becouse of sin(colour).


;Gavarun
z=cabs(z)^( @talisadd + flip(atan2(z) ) ) +c
With talisadd=1
Pretty cool transform, this didn't needed  additional squaring. Looking at this I remembered russian cartoon parrot who were able to fly in space.


p.s.
This is stupid, but just can't decide, how to call this:
http://www.fractalforums.com/fractal-programs/poll-about-neigbouring-thread/
« Last Edit: December 07, 2012, 10:24:57 AM by Alef » Logged

fractal catalisator
kram1032
Fractal Senior
******
Posts: 1863


« Reply #24 on: December 07, 2012, 01:20:11 PM »

I know they didn't find them yet. But they illustrated the expected waves in a gif.

That's what I was aiming for with my transform.

To get to that from my version, you just need to normalize the wave heigth, mess a bit with the frequencies and add in a time dependency and possibly, to get to a more generic form, a phase.

By the way, the Summoner and the Daemon of Circles both do not require squaring. The formulae I wrote down were the full thing. No powers used.

There might also be a nice triplex version to this...

The swirl transform would then be something like:

x=r cos(phi + r) sin(theta + r)
y=r cos(phi + r) cos(theta + r)
z=r sin(phi +r)

or some corresponding variant of that...
For the logarithmic version, just use log(r) in the sin and cos instead of r. You might also want to mess around with prefactors to further control frequencies and phases of the ripples.

The bailout values you mention were an example by me. While often do use 200,2000,20000, it's not always the case. Some of the transforms I used in fact need less to even show anything.
« Last Edit: December 07, 2012, 02:03:29 PM by kram1032 » Logged
Alef
Fractal Supremo
*****
Posts: 1174



WWW
« Reply #25 on: December 07, 2012, 05:23:10 PM »

In M3D there are some rotation modifications, just haven't looked are they different or alredy the same. Kali seems to used some e^ %^#&*^ rotations. But as far as I know, there aren't 3D version of this:

 |z|^{1+i} \text{sgn}(z)
With this one can put 1 as coeffitient. It somewhat hearth like.

I had read a lott about a gravitation waves. Of all undetected physical phenomen, they seems to be the most probable, much moreso than dark energy.

 A peacock
Finnaly uploaded this version of Buddhabrot in Ultra Fractal database (in EM.ucl) and in Chaos Pro. But with the name BRAHMABROT. IMHO it is enought different to have special name;)

http://www.chaospro.de/formulas/display.php?fileid=238
« Last Edit: December 07, 2012, 05:32:43 PM by Alef » Logged

fractal catalisator
cKleinhuis
Administrator
Fractal Senior
*******
Posts: 7044


formerly known as 'Trifox'


WWW
« Reply #26 on: December 07, 2012, 05:29:28 PM »

what is the red dots in the image, me dont like ... can you remove them ?!
Logged

---

divide and conquer - iterate and rule - chaos is No random!
Alef
Fractal Supremo
*****
Posts: 1174



WWW
« Reply #27 on: December 10, 2012, 08:05:51 AM »

Slightly improved my Brahmabrot technique.

To the normal mandelbrot bailout added newton bailout conditions. So bailout is:
 ( (cabs(z) < 4) && (cabs(zold-z) >0.001 ) && (iter < @maxIter) )
This is more like magnet bailout, it reveals more features as it don't allows non escaping orbits to iterate too long so filling everything with white. But it alsou means slight loss of speed. Realy it is much better now. With new bailout and zold variable now I can make Magnet and Manowar buddhas, but tangent formula somewhat dissapeared. Probably more easy for exploring formulas would be to have class switch, but then with my own classes.

Alsou tweeked parameters, so that there are less dots. Decreasing bailout value for unknown reason decreased number of dots a lot. Dots alsou depend on colour parameters. Red dots should be some special orbits, they somewhat depends on random seed. I kind of liked spirals and owerall imperfect looks, but when they are not too much;)



In UF ducks fractal uses rotation like this:
z = exp(1i*parameter/pi*180)*z
And in Mandelbulb3D rotation is by sines and cosines:
SinCos(Iteration_multiplier * rho * Pid180, s, c)
x' = x * c + y * s
y' = y * c - x * s
So gravitation waves inspired Swirlbrot rotation (exp( 1i*(cabs(z)+atan2(z)  )  ) *z ) indeed are novel way in fractal world:) I tested it as escape time formula, nice one, it's like rotated LKM's rotated mandelbrot;)



Here is final quality parameter file. It woun't render fast and you 'll see nothing before completion, throught. On my ancient PC it took 2 hours.
Code:
Fractal1 {
fractal:
  title="Fractal1" width=800 height=600 layers=1
  credits="Asdam;12/8/2012"
layer:
  caption="Background" opacity=100 transparent=yes
mapping:
  center=0/0 magn=1
formula:
  maxiter=100 filename="Standard.ufm" entry="Pixel"
inside:
  transfer=none
outside:
  transfer=linear filename="em.ucl" entry="Brahmabrot"
  p_sampleDensity=10000 p_maxiter=200 p_seedinput=-8
  p_formula=Mandelbrot p_power=2 p_starpower=7 p_unitvector=-0.5
  p_talisadd=1 p_quadfactor=2.5 p_sizescaling=1 p_srcWidth=5
  p_srcHeight=4 p_palette="Direct Colouring" p_switchRGB=None
  p_ambient=0.12 p_postfn="0- None" p_lightR=0.38 p_scalarR=0.7
  p_lightG=0.98 p_scalarG=1.6 p_lightB=0.14 p_scalarB=0.3
gradient:
  smooth=yes index=0 color=8716288 index=100 color=16121855 index=200
  color=46591 index=300 color=156
opacity:
  smooth=no index=0 opacity=255
}

If someone are interested in UF code, here it is, throught Chaos Pro have more normal C style language and complex numbers generated in more usual way like complex(n ,m) instead of n + flip(m):

Code:
Brahmabrot {
; This is different from standart Buddhabrot in that
; colours are calculated from progressive curves
; using Wave Trichrome method, who are inspired by RGB Buddhabrots but needs fewer iterations.
; As it don't tests for insdes or outsides of fractal, but mixes buddhabrot and antibuddhabrot.
; Alsou it used both mandelbrot and newton bailout.
; source code for this mostly is taken from Susan D. Chambless buddhabrot.
; and one more loop.
; Some formulas like Swirl transform, Royal, SummonerEye, Gavarun are by Kram1032.
;By Edgar Malinovsky 02.12.2012.

;http://www.fractalforums.com/fractal-programs/problems-with-implementing-budhabrot-in-uf/
;08.12.2012
; Added newton bailout revealing more features.
; Tweeking of parameters, so that there are less dots.
; Changed some formulas for another.

; You may redistribute this algorithm, modify, derivate or use comercialy as you wish as long as you give proper credits.


$DEFINE DIRECT
global:
float increaser=0
float antilightR=1/@lightR
float antilightG=1/@lightG
float antilightB=1/@lightB
  int seed =  @seedinput
    float dataR=1
    float dataG=1
    float dataB=1

    int pwid = trunc(#width)
    int phgt = trunc(#height)

  ;3 arrays for RGB
  float pixR[trunc(#width),trunc(#height)]  ; offscreen image
  float pixG[trunc(#width),trunc(#height)]  ; offscreen image
  float pixB[trunc(#width),trunc(#height)]  ; offscreen image

  ;calculate buddha loop many times
  int superloop=1
  int slcounter =0

  complex locations[@maxiter]       ; collect locations
  int cnt = 0                         ; Loop counters
  float colourcnt = 0                ;colourcounter
  int x = 0, int y = 0              ; Loop counters & integer coords
  float xc =  real(#center)         ; Scaling constants
  float yc = -imag(#center)

  float srcMinX = - (@srcWidth * 0.5)
  float srcMinY = - (@srcHeight * 0.5)
  float  scale = (#height * #magn) / 3*(@sizescaling)
  float nsamples =0
  int irandX1  =0
  int irandY1   =0
  float srcX1  =0
  float srcY1  =0
  complex z =0
  complex c  =0
  complex zold=1
  int iter =0
  int locindex =0
  float dx  =0
  float dy   =0

; Initialize arrays of RGB pixels with neutral colour.
  while x < #width
    y = 0
    while y < #height
      pixR[x, y] = @ambient
      pixG[x, y] = @ambient
      pixB[x, y] = @ambient
      y = y + 1
    endwhile
    x = x + 1
  endwhile

  ; Main buddha iteration loop
  nsamples = round(#width * #height* #magn)
  cnt = 0

;if sample number is too large, divide single
;loop in many small. 12 divides better than 10, so multiples of 12 is used.
IF @sampleDensity > 497664
nsamples = trunc(nsamples/3456)
superloop=3456
ELSEIF @sampleDensity > 41472
nsamples = trunc(nsamples/288)
superloop=288
ELSEIF @sampleDensity > 3456
nsamples = trunc(nsamples/24)
superloop=24
ELSE
nsamples = trunc(nsamples/4)
superloop=4
ENDIF

nsamples =  nsamples * @sampleDensity

while slcounter < superloop  ; superloop

  while cnt < nsamples  ;main buddha loop
    ; generate random integers (-#randomrange to #randomrange)
    irandX1 = seed = random(seed)
    irandY1 = seed = random(seed)

    ; convert to random float numbers
    srcX1 = (abs(irandX1) / #randomrange)*@srcWidth + srcMinX
    srcY1 = (abs(irandY1) / #randomrange)*@srcHeight + srcMinY

    ; Mbrot set with random c value
    z = 0
    c = srcX1 + flip(srcY1)
    zold=1
    ; iteration count and modulus, this don't need large bailout
    iter = 0
    while ( (cabs(z) < 4) && (cabs(zold-z) >0.001 ) && (iter < @maxIter) ) ;fractal formula loop

zold=z
IF (@formula ==0)
;Mandelbrot
z= z^@power +c
ELSEIF (@formula ==1)
;Talis
z= z^@power/(z^(@power-1) + @talisadd) +c
ELSEIF (@formula ==2)
;Starbrot
z= z*0.5 - z^@starpower + c
ELSEIF (@formula ==3)
;Tricorn
z= conj(z^@power)+c
ELSEIF (@formula ==4)
;BurningSihp
z=abs(z^@power)+c
ELSEIF (@formula ==5)
;8th modulus Mbrot
z=sqr(z)
z=(z^8+z^8)^0.125+c
ELSEIF (@formula ==6)
;Unit Vector - Mbrot
z=z^@power+c
z= z/cabs(z)*@unitvector +z
ELSEIF (@formula ==7)
;Quadratic General
z= sqr(real(z)) + sqr(imag(z))+ flip(real(z)*imag(z)*@quadfactor) + c
ELSEIF (@formula ==8)
;Celtic Mandelbrot
z = z^@power
z = z - real(z) + abs(real(z)) - c
ELSEIF (@formula ==9)
;Rotated Mandelbrot
z=z^@power+c
z=sqr(z)/cabs(z)
ELSEIF (@formula ==10)
;Chebyshev4Axolotl
z = (sqr(z)*(35 * sqr(z) - 30) + 3) / 8 + c
ELSEIF (@formula ==11)
;Mbrot*iters
z=z^@power*iter*0.05 +c
ELSEIF (@formula ==12)
;Talis*iters
z=z^@power*(z^(@power-1)+iter*0.05)+c
ELSEIF (@formula ==13)
;Tricorn*iters
z= conj(z^@power*iter*0.05)+c
ELSEIF (@formula ==14)
;BurningShip*iters
z= abs(z^@power*iter*0.05)+c
ELSEIF (@formula ==15)
;QuadGen*iters
z= (sqr(real(z)) + sqr(imag(z))+ flip(real(z)*imag(z)*@quadfactor) )*iter*0.05 + c
ELSEIF (@formula ==16)
;Manowar
z = z^2 + zold + c
ELSEIF (@formula ==17)
;Multipowerbrot Odd
z= ((((z^3*c+1i)^3)+1i)^3)+1i
ELSEIF (@formula ==18)
;MagnetII
z=sqr((z*z*z+3*z*(c-1)+(c-1)*(c-2))/(sqr(z)*3+3*(c-2)*z+(c-1)*(c-2)+1))
ELSEIF (@formula ==19)
;ChebyshevT4
z = c*(sqr(z)*(sqr(z)*8+8)+1)
ELSEIF (@formula ==20)
;PerpendicularMbrot
z=sqr(real(z)) - sqr(imag(z)) -flip(2*imag(z)*abs(real(z))) + c
ELSEIF (@formula==21)
;Royal Imagination
z=sqr(real(z))- sqr(sqr(imag(z))) + flip( 2*real(z)*imag(z) ) +c
ELSEIF (@formula ==22)
;Swirl Mbrot
z=(exp(flip(cabs(z)+atan2(z)) ) *z )^@power  +c
ELSEIF (@formula ==23)
;ConjugateBeholder
z=(z + c) / ( conj(z)- c+ @talisadd )
ELSEIF (@formula ==24)
;Gavarun
z=(cabs(z))^(@talisadd + flip(atan2(z) ) ) +c
ELSEIF (@formula ==25)
;MalinovskyDeco
z=sinh(z)*z^(@power-1) - c^@power
ELSEIF (@formula ==26)
;Multipowerbrot Even
z= sqr( ( sqr( z*z*c +1 )) -1 ) -1
ENDIF

        locations[iter] = z
        iter = iter + 1

    endwhile ;end fractal formula loop

      locindex = 1 ;for background contrast starts with 1.

      while( locIndex < iter ) ;colour loop
      cnt = cnt+1

        dx =  real( locations[locIndex] ) - xc
        dy =  imag( locations[locIndex] ) - yc

      ; Scale to image
        x = round(dx*scale + pwid*0.5)
        y = round(dy*scale + phgt*0.5)

      ; Plot the point only if inside image
        if x >= 0 && x < pwid && y >= 0 && y < phgt

        ;colours calculated as RGB curves
        colourcnt=colourcnt+1
        increaser=recip(sqrt(colourcnt))
         dataR =  (dataR + increaser )/( @scalarR + abs(pixR[x, y])*antilightR)
         dataG =  (dataG + increaser )/( @scalarG + abs(pixG[x, y])*antilightG)
         dataB =  (dataB + increaser )/( @scalarB + abs(pixB[x, y])*antilightB)

            pixR[x, y] = pixR[x, y] + dataR
            pixG[x, y] = pixG[x, y] + dataG
            pixB[x, y] = pixB[x, y] + dataB

        endif
        locIndex = locIndex + 1

      endwhile ;end colour loop

  endwhile  ;end main buddha loop

;change random seed, increase superloop counter,
;set main loop to 0 and go throught next cycle.
cnt=0
slcounter = slcounter+1
seed = @seedinput + slcounter
endwhile ;end superloop

;now formula will go throught pixels by fractal generator.
init:
int xcrd = 0
int ycrd = 0
float resultR = 0
float resultG = 0
float resultB = 0
float resultAlpha=0

final:
  xcrd = #x
  ycrd = #y
resultR = abs(pixR[xcrd, ycrd])
resultG = abs(pixG[xcrd, ycrd])
resultB = abs(pixB[xcrd, ycrd])


IF (@postfn==0)
;nothing

ELSEIF (@postfn==1)
resultR=sin(resultR)
resultG=sin(resultG)
resultB=sin(resultB)

ELSEIF (@postfn==2)
resultR=1- resultR
resultG=1- resultG
resultB=1- resultB

ELSEIF (@postfn==3)
resultR=sqr(resultR)
resultG=sqr(resultG)
resultB=sqr(resultB)

ELSEIF (@postfn==4)
resultR=1-sin(resultR)
resultG=1-sin(resultG)
resultB=1-sin(resultB)

ELSEIF (@postfn==5)
float sumR = resultR
float sumG = resultG
float sumB = resultB

resultR=abs(resultR -sqrt(sumG*sumB)*0.5)
resultG=abs(resultG -sqrt(sumR*sumB)*0.5)
resultB=abs(resultB -sqrt(sumR*sumG)*0.5)

ELSEIF (@postfn==6)
resultR= abs( resultR -round(resultR) )
resultG= abs( resultG -round(resultG) )
resultB= abs( resultB -round(resultB) )

ELSEIF (@postfn==7)
resultR=tanh(resultR)
resultG=tanh(resultG)
resultB=tanh(resultB)

ELSEIF (@postfn==8)
resultR=sin((resultR) )*cos((resultG))
resultG=sin((resultG) )*cos((resultR))
resultB=sin((resultB) )*cos((resultR))

ELSEIF (@postfn==9)
resultR=sqr(sin(#pi*resultR))
resultG=sqr(sin(#pi*resultG))
resultB=sqr(sin(#pi*resultB))

ENDIF

 ; switching colour channels.
IF (@switchRGB==0)
;nothing
ELSEIF (@switchRGB==1)
  resultAlpha=resultG
resultG=resultR
resultR=resultAlpha
ELSEIF (@switchRGB==2)
  resultAlpha=resultB
resultB=resultR
resultR=resultAlpha
ELSEIF (@switchRGB==3)
  resultAlpha=resultB
resultB=resultG
resultG=resultAlpha
  ENDIF

;colour mode: direct, using palette, or mixed.
IF (@palette==0)

#color = rgb(resultR, resultG, resultB)

ELSEIF (@palette==1)
#color = gradient(resultG)

ELSEIF (@palette==2)
 ;gradient is by arithmetic mean of RGB
color  gradcolor=gradient( (resultR+resultG+resultB)*0.333333333333333 )
 ;harmonic of gradient and RGB
resultR=2/(  recip (red(gradcolor))+ recip(resultR) )
resultG=2/(  recip (green(gradcolor))+ recip(resultG) )
resultB=2/(  recip (blue(gradcolor))+ recip(resultB) )

resultAlpha=alpha(gradcolor)
#color = rgba(resultR, resultG, resultB,resultAlpha)

ELSEIF (@palette==3)
; colour mode like of Fractal Explorer.
; uses pallete, but each chanell is calculated seperately.
resultR=red(gradient(resultR))
resultG=green(gradient(resultG))
resultB=blue(gradient(resultB))
resultAlpha=alpha(gradient( resultG))

#color = rgba(resultR, resultG, resultB, resultAlpha)

ELSEIF (@palette==4)
;all waves included.
#color=gradient(3/(recip(resultR) + recip(resultG) + recip(resultB) ) )
ENDIF

default:
title = "Brahmabrot"
render = false

heading
caption = "Use with Pixel aka No Formula."
endheading

heading
caption = "Buddha Block"
endheading

int param sampleDensity
caption = "Sample density/incrse"
default = 100
hint="Main variable. The larger value, the more points hits image, the more detailed will be image. Put relatively small value for fast first calculation, then increase for smooth pic."
endparam

int param maxiter
caption = "Max Iterations"
default = 200
hint = "Maxiter for fractal. Long orbits will stay in certain alredy dense region, but small maxiter will make this too blury."
endparam

int param seedinput
caption = "Lucky Number"
default = -8
hint="Random seed used to calculate random numbers who realy aren't that random. Different seeds marks different firstfound orbits."
endparam

heading
caption = "Formula Block"
endheading

param formula
caption="Fractal Formula"
default=0
enum= "Mandelbrot" "Talis" "Starbrot" "Tricorn" "BurningSihp" "8th modulus Mbrot" "Unit Vector - Mbrot" "Quadratic General" "Celtic Mandelbrot" "Rotated Mandelbrot" "ChebyshevAxolotl" "Mbrot*iters" "Talis+iters" "Tricorn*iters" "BurningShip*iters" "QuadGen*iters" "Manowar" "Multipowerbrot Odd" "MagnetII" "ChebyshevT4" "PerpendicularMbrot" "Royal Mbrot" "Swirl Mbrot" "SummonerEye" "Gavarun" "MalinovskyDeco" "Multipowerbrot Even"
hint= "Fractal formula used for calculation. Mbrot here stands fro Mandelbrot."
endparam

float param power
caption="Power"
default=2
visible = (@formula == 0||@formula == 1||@formula == 3||@formula == 4||@formula == 6||@formula == 8||@formula == 9||@formula == 11||@formula == 12||@formula == 13||@formula == 14||@formula == 22||@formula == 25)
hint="Degree of formula."
endparam

int param starpower
caption="Star Power"
default=7
hint="Star sides = power-1"
visible = (@formula == 2)
endparam

float param unitvector
caption="Unit vector amount"
default=-0.5
hint="Coefficient N for z=z+N*z/|z|"
visible = (@formula == 6)
endparam

float param talisadd
caption="Talis addition"
default=1
hint="In Talis adds value to z z=z^2/(z+add). In another fomulas adds value in respective places. In Gavarun it is real part of complex power."
visible = (@formula == 1||@formula ==23||@formula ==24)
endparam

float param quadfactor
caption="Factor of x*y"
default=2.5
hint="2 is very celtic and 2 is very cosmic."
visible = (@formula == 7||@formula ==15)
endparam

heading
caption = "Pixel input Block"
endheading

float param sizescaling
caption = "Size Scale"
default = 1
hint="Scaling here works as zooming in or out."
endparam

float param srcWidth
caption = "Pixel source Width"
default = 5.0
hint="Input pixel area depends on width and height. Too much is waste of PC resources, not enough will mean that some fractal parts will dissapear. "
endparam
float param srcHeight
caption = "Pixel source Height"
default = 4.0
endparam

heading
caption = "Colour Block"
endheading

param palette
caption = "Colour Mode"
enum= "Direct Colouring" "Gradient Based" "Mixed Harmonic" "Fractal Explorer like" "Gradient by Harmonic"
default=0
hint= "Gradient Based is gradient calculated from green channel, gradient harmonic is gradient calc from mean of all channels. Mixed is harmonic mean between gradient colour (by mean of RGB) and RGB channels. Fractal Explorer like is RGB values calculated seperately from gradient. All exept direct colouring uses gradient and alpha channel."
endparam

param switchRGB
caption = "Switch Colours"
enum ="None" "Switch Red and Green" "Switch Red and Blue" "Switch Green and Blue"
default=0
hint= "Switch colour channels to change image tones in direct mode, so that don't need to change light and scalar of RGB."
endparam

float param ambient
caption = "Ambient Light"
default = 0.12
hint="Greyscale colour value of uniterated pixel. Result then is added / substracted from this."
endparam

param postfn
caption = "Transfer Function"
enum = "0- None" "1- Sin (periodic)" "2- Inverted" "3- Square Power (sharper)" "4- SinInverted (periodic)" "5- Accentuate RGB" "6- Solarisation (periodic)" "7- Hyperbolic Tangent"  "8- SineCosineMix (periodic)" "9- Haversine (periodic)"
default =  0
hint="The same as UF, but applied before colour mode, and works with direct colour. Periodic will colour white regions."
endparam

heading
caption = "Info"
text = "Version of Buddhabrot. Use with pixel aka no formula and wait. To increase render quality increase sample density. Difference from standart Buddhabrot is that this version don't test for escaping or non escaping orbits so it is mix of Buddhabrot and Antibuddhabrot, it have mixed mandelbrot and newton bailout and that RGB colours are calculated by Wave Trichrome method. It is alsou faster than most Buddhabrots. It is s suposed to work with plain direct colouring. If with large sample density it becomes too white try periodic transfer funtions. If with very large sample density and resolution it ceases to render, it's becouse fractal exceeded upper limit of integer numbers. http://www.fractalforums.com/fractal-programs/problems-with-implementing-budhabrot-in-uf/"
endheading

heading
caption = "RGB block"
endheading

float param lightR
caption = "Red light"
default = 0.38
endparam

float param scalarR
caption = "Red scalar"
default = 0.7
endparam

float param lightG
caption = "Green light"
default = 0.98
endparam

float param scalarG
caption = "Green scalar"
default = 1.6
endparam

float param lightB
caption = "Blue light"
default = 0.14
endparam

float param scalarB
caption = "Blue scalar"
default = 0.3
endparam
}

Alsou, here is good Buddhabrot links. Goolge search almoust allways gives fractalforums.
This one by ker2x looks great. Throught probably some post processing with reducing image size were used:
http://www.fractalforums.com/programming/some-buddhabrot-questions-techniques/

A 3D buddhabrot verson:
http://www.fractalforums.com/images-showcase-(rate-my-fractal)/orbits-inside/

A nova buddhabrot and good discussion about weak point of buddhabrots:
http://www.fractalforums.com/images-showcase-(rate-my-fractal)/orbit-plotted-nova/


* Brahmabrot.ucl (15.39 KB - downloaded 218 times.)
Logged

fractal catalisator
Alef
Fractal Supremo
*****
Posts: 1174



WWW
« Reply #28 on: December 10, 2012, 08:08:53 AM »

Some pics of mentioned.
A mandelbrot set with new bailout settings:


And closer with sine transfer. Blue are most dense areas:


Magnet2 buddha. Very complex throught not very dense:


Cubed Mandelbrot double turtle:


Quadratic General. x=z^2+y^2+cx; y=2*x*y+cy:


Swirlbrot. The same settings as above but magnets's bailout:


Talis.


Fracmonks Even Multipowerbrot:
z=(((((z^2*c) +1 )^2) -1 )^2)

Logged

fractal catalisator
kram1032
Fractal Senior
******
Posts: 1863


« Reply #29 on: December 10, 2012, 09:05:59 AM »

really nice stuff smiley
The "quadratic general" interestingly looks a lot like "the attic", based on dual numbers.
(x+ye where e²=0 but e!=0)
((x+ye)²=x²+2xye)

The triplex variant I gave is simply the same basic naive approach to a triplex form that also gave rise to the original first triplex MSet, the original square MBulb as well as eventually all its later installments.
« Last Edit: December 10, 2012, 09:11:22 AM by kram1032 » Logged
Pages: 1 [2] 3 4 5   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
Brahmabrot (halfway toBuddhabrot) equalisated Images Showcase (Rate My Fractal) Alef 9 3189 Last post May 30, 2013, 05:12:18 PM
by Alef
Brahmabrot animated Movies Showcase (Rate My Movie) Alef 0 946 Last post June 29, 2013, 07:28:30 PM
by Alef
Logic Turtle Brahmabrot Images Showcase (Rate My Fractal) Alef 4 1685 Last post September 14, 2013, 03:09:06 PM
by Alef
Simplified startup for Mac users: JWildfire V1.03 JWildfire thargor6 1 1470 Last post October 14, 2013, 01:01:21 AM
by Nahee_Enterprises
Brahmabrot orbit plot anim Movies Showcase (Rate My Movie) Alef 5 1898 Last post May 16, 2017, 04:40:42 PM
by Alef

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
Page created in 0.405 seconds with 28 queries. (Pretty URLs adds 0.013s, 2q)