Welcome to Fractal Forums

Fractal Software => Other / General Discussion => Topic started by: ker2x on November 14, 2009, 09:20:14 PM




Title: 3D Mandelbrot using UltraFractal 5
Post by: ker2x on November 14, 2009, 09:20:14 PM
Hi !
I finally managed to do some 3D Fractal using ultrafractal.
Fractal that... look like fractal with obvious recursivity :)

On the pic below, it's obivous. You can zoom deeply on the extrimity, as long as you adjust the "Solid Thresdhold".
That couldn't happen without the formula pack provided by David Makin, so thank you David :)


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: ker2x on November 14, 2009, 09:40:33 PM
Found a tree on the surface of a z^10+c 3D mandelbrot.
it was a totaly random discovery... Life !!  :o



Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: cKleinhuis on November 14, 2009, 09:50:26 PM
Found a tree on the surface of a z^10+c 3D mandelbrot.
it was a totaly random discovery... Life !!  :o

no, x-mas :D  O0 O0


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: matsoljare on November 14, 2009, 10:09:25 PM
Looks a bit like Ferrofluid:

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


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: ker2x on November 14, 2009, 11:34:15 PM
I think this guy is looking for something  ???
Be carefull about what you're looking for... you may find it !


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: bib on November 14, 2009, 11:43:53 PM
Yes, thanks to David, everybody can now play with the new 3D formula !
cooool :):)
(http://www.fractalforums.com/gallery/1/492_14_11_09_11_40_47.jpg)


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: ker2x on November 14, 2009, 11:53:13 PM
Holy cow !! It's UF5 ? Mmmm... i need to learn much more  :-X

Anyway... here is what that guy was looking for :


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: bib on November 14, 2009, 11:58:48 PM
i need to learn much more  :-X

There are many tutorials on Deviantart ;)


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: David Makin on November 15, 2009, 02:25:26 AM
(http://fc07.deviantart.net/fs50/f/2009/318/a/0/Woodhome_by_MakinMagic.jpg)

If no image above then look here:

http://makinmagic.deviantart.com/art/Woodhome-143575363 (http://makinmagic.deviantart.com/art/Woodhome-143575363)


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: bib on November 15, 2009, 11:47:30 AM
This is the first video with the new formula that my machine has produced.

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

...but the rendering queue in my UF will last a few weeks to produce various rotations, zooms and morphings :)

Stay tuned!


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: cKleinhuis on November 15, 2009, 12:09:48 PM
you just animated animation depth here ?

i am staying tuned! O0


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: bib on November 15, 2009, 12:13:57 PM
you just animated animation depth here ?

It's a variation of the Solid Threshold from 0.8 to 0.01


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: David Makin on November 15, 2009, 02:35:12 PM
This is the first video with the new formula that my machine has produced.

Interesting how it looks like a pepper (scotch bonnet?) then turns into broccoli.


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: bib on November 15, 2009, 02:54:49 PM
This is the first video with the new formula that my machine has produced.

Interesting how it looks like a pepper (scotch bonnet?) then turns into broccoli.

Many more interesting stuff to come :) Thanks to you, and also to ker2x for the private chat and collaboration ;)


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: bib on November 15, 2009, 03:11:53 PM
(http://www.fractalforums.com/gallery/1/492_15_11_09_3_11_32.jpg)


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: bib on November 15, 2009, 04:11:10 PM
A zoom into seahorse valley of a half W/N Power 2 3D M-Set
(http://www.fractalforums.com/gallery/1/492_15_11_09_4_07_13.jpg)

(http://www.fractalforums.com/gallery/1/492_15_11_09_4_43_37.jpg)


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: Buddhi on November 15, 2009, 04:18:11 PM
(http://www.fractalforums.com/gallery/1/492_15_11_09_3_11_32.jpg)

Wow! Your image from post #14 looks like made of wood. Beautiful!


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: cKleinhuis on November 15, 2009, 06:15:10 PM
 post #14: :smooth: :smooth: :w00t: :w00t: :smooth: :smooth: :smooth:
 :thumbsup1: :thumbsup1: :thumbsup1:
 :siren:

post #15, is the first image a heightmap rendering of a 2d slice  :hmh:?!?


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: bib on November 15, 2009, 07:35:38 PM

post #15, is the first image a heightmap rendering of a 2d slice  :hmh:?!?
No, it's really a 3D image :)


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: cKleinhuis on November 15, 2009, 07:48:40 PM
how come it looks so flat, or cutted ?


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: bib on November 15, 2009, 07:53:53 PM
how come it looks so flat, or cutted ?

The image looks flat because the global 3D shape is cut in half (clipping), that's all.

Maybe a picture is more useful to understand:
(http://www.fractalforums.com/gallery/1/492_15_11_09_8_03_50.jpg)


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: bib on November 15, 2009, 10:20:17 PM
A slightly modified version of the minibulb:
(http://www.fractalforums.com/gallery/1/492_15_11_09_10_19_01.jpg)


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: bib on November 16, 2009, 07:57:48 AM
http://www.youtube.com/watch?v=LxsniUIVfEM


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: ker2x on November 16, 2009, 07:18:02 PM
http://www.youtube.com/watch?v=wD6Fkm-Q5u0

Mandelbrot formula : z^2 + c, with j from 1 to 2.


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: bib on November 16, 2009, 07:21:23 PM
I see that my green broccoli is having some success!

watch this one!
http://www.youtube.com/watch?v=VQNS-vlmfig

It's funny to see how a hole transforms itself into a bulb around 0:38


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: ker2x on November 16, 2009, 07:40:53 PM
I see that my green broccoli is having some success!

Indeed  ;D


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: MTd2 on November 16, 2009, 08:37:55 PM
I see that my green broccoli is having some success!

watch this one!
http://www.youtube.com/watch?v=VQNS-vlmfig

It's funny to see how a hole transforms itself into a bulb around 0:38

Hi Bib!

Is it possible to put on each frame the power used on the formula? It would make the research more accurate :)


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: bib on November 16, 2009, 09:18:31 PM

Hi Bib!

Is it possible to put on each frame the power used on the formula? It would make the research more accurate :)
I don't know how to do that in Ultrafractal. Maybe an idea for a new class?
But if someone wants to post-process, I can send the .avi. It's a linear variation from 1.5 to 8.

Did you notice at 0:29 how the "tops of the castles" seem disconnected?


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: MTd2 on November 16, 2009, 11:24:08 PM
Quote
Did you notice at 0:29 how the "tops of the castles" seem disconnected?

Not only there, in the beginning too, mainly. Did you notice that the long axis, say, the z axis is seeded by the buddhabrot?

Look at the huge shadowy crater, at 0:20 of the video, and pay attention at this zone starting at this time until 0.40. Notice that this shadowy crater initially becomes the Mandelbrot set, or something very similar around 0:24, and starting at this moment it starts growing a tree that initially looks like sprouts from a buddhabrot picture? Compare:

http://en.wikipedia.org/wiki/Buddhabrot

Maybe the z axis shape is very related to buddhabrot in any given power. Notice that the disconnected parts you mention seems to be related by the "haze " in the buddhabrot. Maybe that haze is the messed up picture caused by superimposing disconnected parts?


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: bib on November 16, 2009, 11:26:17 PM
(http://www.fractalforums.com/gallery/1/492_16_11_09_10_10_03.jpg)

(http://www.fractalforums.com/gallery/1/492_16_11_09_11_21_29.jpg)

(http://www.fractalforums.com/gallery/1/492_16_11_09_11_24_00.jpg)thanks David for the updated formula

(http://www.fractalforums.com/gallery/1/492_16_11_09_11_33_06.jpg)


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: fractalrebel on November 17, 2009, 01:48:26 AM
Here is am image created with a plugin for my 3DFractalRaytrace formula. The plugin is based upon the twinbee formula.


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: David Makin on November 17, 2009, 01:53:50 AM
Here is am image created with a plugin for my 3DFractalRaytrace formula. The plugin is based upon the twinbee formula.

Hi Ron - is that in the UF formula database ?


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: fractalrebel on November 17, 2009, 02:07:56 AM
Hi Dave,

The plugin is not is the database yet, and I made some small changes to 3DFractalRaytrace which I am testing along with the new plugin. They should be in the database sometime tomorrow. The biggest challenge was that my normal distance estimate method can't be used as I can't seem to get the right derivative. I have an alternate method which doesn't require the derivative, but it is a little tricky to use. My brute force method also doesn't seem to behave well.


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: fractalrebel on November 17, 2009, 02:11:26 AM
How do I get rid of this fractal newbie thing under my name? I have been writing fractal progams and making fractals since the early 1980's, so I am definitely not a newbie.


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: cKleinhuis on November 17, 2009, 02:54:11 AM
ehrm, you can get "fractal schemer" with 500 posts, lol

those are the usergroups, i agree with you that it concludes wrong views ... i have removed the "fractal" from the first 10 user group names, so you are just a fractalforums "newbie" right now ;)
the groups are now:
Newbie     0-
Freshman -5-
Alien        -10-
Explorer  -20-
... many more after that  :angel1: O0


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: David Makin on November 17, 2009, 07:33:37 AM
Hi Dave,

The plugin is not is the database yet, and I made some small changes to 3DFractalRaytrace which I am testing along with the new plugin. They should be in the database sometime tomorrow. The biggest challenge was that my normal distance estimate method can't be used as I can't seem to get the right derivative. I have an alternate method which doesn't require the derivative, but it is a little tricky to use. My brute force method also doesn't seem to behave well.

Hi Ron, here's my code for the relevant formulas:

Code:
<snip>
      elseif @fractaltype==1 ; Truly 3D Mandelbrot formulas
        zri = @startri
        zj = @startj
        cri = x1 + flip(y1)
        cj = z1
        magn = |@startri| + sqr(@startj)
        if @useDE && (@fractal3D<4 || @fractal3D>7)
          dzri = (1,0)
          dzj = 0.0
        endif
      elseif @fractaltype==2 ; Truly 3D Julia Formulas
        zri = x1 + flip(y1)
        zj = z1
        cri = @constri
        cj = @constj
        magn = |zri| + sqr(zj)
        if @useDE && (@fractal3D<4 || @fractal3D>7)
          dzri = (1,0)
          dzj = 0.0
        endif
<snip>
        elseif @fractaltype<3 ; Truly 3D
          if (@fractal3D<4 || @fractal3D>5) && magn<1e-100
            zri = cri
            zj = cj
          elseif @fractal3D==0 ; White/Nylander
            if @useDE
              magn = sqrt(magn)
              r = sqrt(|dzri| + sqr(dzj))
              th = atan2(zri)
              ph = asin(zj/magn)
              dr = @mpwr*r*magn^(@mpwr-1.0)
              dph = (@mpwr-1.0)*ph + asin(dzj/r)
              dth = (@mpwr-1.0)*th + atan2(dzri)
              dzj = -dr*sin(dph)
              dzri = dr*cos(dph)*(cos(dth) + flip(sin(dth)))
              if @fractaltype==1
                dzri = dzri + 1.0
              endif
              r = magn^@mpwr
              dph = @mpwr*ph
              dth = @mpwr*th
              zj = -r*sin(dph) + cj
              zri = r*cos(dph)*(cos(dth) + flip(sin(dth))) + cri
            else
              r = (magn=sqrt(magn))^@mpwr
              ph = @mpwr*asin(zj/magn)
              th = @mpwr*atan2(zri)
              zj = -r*sin(ph) + cj
              zri = r*cos(ph)*(cos(th) + flip(sin(th))) + cri
            endif
          elseif @fractal3D==1 ; Thornton 1
            if @useDE
              magn = sqrt(magn)
              r = sqrt(|dzri| + sqr(dzj))
              th = atan2(zri)
              ph = acos(zj/magn)
              dr = @mpwr*r*magn^(@mpwr-1.0)
              dph = (@mpwr-1.0)*ph + acos(dzj/r)
              dth = (@mpwr-1.0)*th + atan2(dzri)
              dzj = dr*cos(dph)
              dzri = dr*sin(dph)*(cos(dth) + flip(sin(dth)))
              if @fractaltype==1
                dzri = dzri + 1.0
              endif
              r = magn^@mpwr
              dph = @mpwr*ph
              dth = @mpwr*th
              zj = r*cos(dph) + cj
              zri = r*sin(dph)*(cos(dth) + flip(sin(dth))) + cri
            else
              r = (magn=sqrt(magn))^@mpwr
              ph = @mpwr*acos(zj/magn)
              th = @mpwr*atan2(zri)
              zj = r*cos(ph) + cj
              zri = r*sin(ph)*(cos(th) + flip(sin(th))) + cri
            endif
          elseif @fractal3D==2 ; Thornton 2
            if @useDE
              magn = sqrt(magn)
              r = sqrt(|dzri| + sqr(dzj))
              th = atan2(zri)
              if (ph = acos(zj/magn))>0.5*#pi
                ph = #pi - ph
              endif
              if (dph = acos(dzj/r))>0.5*#pi
                dph = #pi - dph
              endif
              dr = @mpwr*r*magn^(@mpwr-1.0)
              dph = (@mpwr-1.0)*ph + dph
              dth = (@mpwr-1.0)*th + atan2(dzri)
              dzj = dr*cos(dph)
              dzri = dr*sin(dph)*(cos(dth) + flip(sin(dth)))
              if @fractaltype==1
                dzri = dzri + 1.0
              endif
              r = magn^@mpwr
              dth = @mpwr*th
              dph = @mpwr*ph
              zri = r*sin(dph)*(cos(dth) + flip(sin(dth))) + cri
              zj = r*cos(dph) + cj
            else
              r = (magn=sqrt(magn))^@mpwr
              if (ph = acos(zj/magn))>0.5*#pi
                ph = #pi - ph
              endif
              th = @mpwr*atan2(zri)
              ph = @mpwr*ph
              zj = r*cos(ph) + cj
              zri = r*sin(ph)*(cos(th) + flip(sin(th))) + cri
            endif
          elseif @fractal3D==3 ; Rucker
            if @useDE
              magn = sqrt(magn)
              r = sqrt(|dzri| + sqr(dzj))
              th = atan2(zri)
              ph = atan2(real(zri)+flip(zj))
              dr = @mpwr*r*magn^(@mpwr-1.0)
              dph = (@mpwr-1.0)*ph + atan2(real(dzri)+flip(dzj))
              dth = (@mpwr-1.0)*th + atan2(dzri)
              dzj = dr*sin(dph)
              dzri = dr*cos(dph)*(cos(dth) + flip(sin(dth)))
              if @fractaltype==1
                dzri = dzri + 1.0
              endif
              r = magn^@mpwr
              dph = @mpwr*ph
              dth = @mpwr*th
              zj = r*sin(dph) + cj
              zri = r*cos(dph)*(cos(dth) + flip(sin(dth))) + cri
            else
              r = (magn=sqrt(magn))^@mpwr
              ph = @mpwr*atan2(real(zri)+flip(zj))
              th = @mpwr*atan2(zri)
              zj = r*sin(ph) + cj
              zri = r*cos(ph)*(cos(th) + flip(sin(th))) + cri
            endif
          elseif @fractal3D==4 ; Makin 3D
            r = zj
            zj = 2.0*zj*(real(zri) - imag(zri)) + cj
            zri = zri*zri - r*r + cri
;            r = zj
;            zj = zj*(2.0*(real(zri) + imag(zri)) - zj) + cj
;            zri = real(zri)*(2.0*(imag(zri) + r) - real(zri)) \
;                       + flip(imag(zri)*(2.0*(real(zri) + r) - imag(zri))) + cri

;   *  |  r   i   j
;   ----------------
;   r  |  r   i   j
;   i  |  i  -r  -j
;   j  |  j  -j  -r

          elseif @fractal3D==5 ; Makin 3D 2
            r = zj
            zj = -zj*zj + 2.0*real(zri)*imag(zri) + cj
            zri = real(zri)*real(zri) - flip(imag(zri)*imag(zri)) \
                  + 2.0*r*(imag(zri) - flip(real(zri))) + cri

;   *  |  r   i   j
;   ----------------
;   r  |  r   j  -i
;   i  |  j  -i   r
;   j  | -i   r  -j
          elseif @fractal3D==6 ; Makin 3D 3
            ztemp = zri
            zri = sqr(zri) - zj*zj
            zri = real(zri) + flip(imag(zri)*(1.0 - sqr(zj)/|ztemp|)) + cri
            zj = 2.0*real(ztemp)*zj \
                 *(1.0 - sqr(imag(ztemp))/|real(ztemp)+flip(zj)|) + cj
          elseif @fractal3D==7 ; Makin 3D 4
            ztemp = zri
            zri = sqr(zri) - zj*zj
            zri = real(zri) + flip(imag(zri)*(1.0 + sqr(zj)/|ztemp|)) + cri
            zj = 2.0*real(ztemp)*zj \
                 *(1.0 + sqr(imag(ztemp))/|real(ztemp)+flip(zj)|) + cj
          elseif @fractal3D==8 ; White
;r = sqrt(x^2 + y^2 + z^2 )
;theta = atan2(sqrt(x^2 + y^2) , z)
;phi = atan2(y,x) ;
;
;newx = r^n * sin(theta*n) * cos(phi*n)
;newy = r^n * sin(theta*n) * sin(phi*n)
;newz = r^n * cos(theta*n)
            if @useDE
              magn = sqrt(magn)
              r = sqrt(|dzri| + sqr(dzj))
              ph = atan2(zri)
              th = asin(zj/magn)
              dr = @mpwr*r*magn^(@mpwr-1.0)
              dth = (@mpwr-1.0)*th + asin(dzj/r)
              dph = (@mpwr-1.0)*ph + atan2(dzri)
              dzj = dr*cos(dth)
              dzri = dr*sin(dth)*(cos(dph) + flip(sin(dph)))
              if @fractaltype==1
                dzri = dzri + 1.0
              endif
              r = magn^@mpwr
              dth = @mpwr*th
              dph = @mpwr*ph
              zj = r*cos(dth) + cj
              zri = r*sin(dth)*(cos(dph) + flip(sin(dph))) + cri
            else
              r = (magn=sqrt(magn))^@mpwr
              th = @mpwr*asin(zj/magn)
              ph = @mpwr*atan2(zri)
              zj = r*cos(th) + cj
              zri = r*sin(th)*(cos(ph) + flip(sin(ph))) + cri
            endif
          elseif @fractal3D==9 ; White/Nylander quick z^2+c
            if @useDE
              th = atan2(zri)
              ph = asin(zj/(magn=sqrt(magn)))
              dr = 2.0*(r=sqrt(|dzri|+sqr(dzj)))*magn
              dth = th + atan2(dzri)
              dph = ph + asin(dzj/r)
              dzri = dr*(cos(dph)*cos(dth) + flip(cos(dph)*sin(dth)))
              dzj = -dr*sin(dph)
              if @fractaltype==1
                dzri = dzri + 1.0
              endif
            endif
            zri = sqr(zri)*(1.0 - sqr(zj)/(r=|zri|)) + cri
            zj = -2.0*zj*sqrt(r) + cj
          elseif @fractal3D==10 ; White/Nylander quick z^3+c
            if @useDE
              th = atan2(zri)
              ph = asin(zj/sqrt(magn))
              dr = 3.0*(r=sqrt(|dzri|+sqr(dzj)))*magn
              dth = 2.0*th + atan2(dzri)
              dph = 2.0*ph + asin(dzj/r)
              dzri = dr*(cos(dph)*cos(dth) + flip(cos(dph)*sin(dth)))
              dzj = -dr*sin(dph)
              if @fractaltype==1
                dzri = dzri + 1.0
              endif
            endif
            zri = (zri^3)*(1.0 - 3.0*sqr(zj)/(r=|zri|)) + cri
            zj = zj^3 - 3.0*zj*r + cj
          elseif @fractal3D==11 ; White/Nylander quick z^4+c
            if @useDE
              th = atan2(zri)
              ph = asin(zj/(magn=sqrt(magn)))
              dr = 4.0*(r=sqrt(|dzri|+sqr(dzj)))*magn^3
              dth = 3.0*th + atan2(dzri)
              dph = 3.0*ph + asin(dzj/r)
              dzri = dr*(cos(dph)*cos(dth) + flip(cos(dph)*sin(dth)))
              dzj = -dr*sin(dph)
              if @fractaltype==1
                dzri = dzri + 1.0
              endif
            endif
            r = |zri|
            zri = (zri^4)*(1.0 - (6.0*r*sqr(zj) - zj^4)/sqr(r)) + cri
            zj = -4.0*zj*sqrt(r)*(r - sqr(zj)) + cj
          elseif @fractal3D==12 ; White/Nylander quick z^5+c
            if @useDE
              th = atan2(zri)
              ph = asin(zj/(magn=sqrt(magn)))
              dr = 5.0*(r=sqrt(|dzri|+sqr(dzj)))*magn^4
              dth = 4.0*th + atan2(dzri)
              dph = 4.0*ph + asin(dzj/r)
              dzri = dr*(cos(dph)*cos(dth) + flip(cos(dph)*sin(dth)))
              dzj = -dr*sin(dph)
              if @fractaltype==1
                dzri = dzri + 1.0
              endif
            endif
            r = |zri|
            zri = (zri^5)*(1.0 + 5.0*(zj^4 - 2.0*r*sqr(zj))/sqr(r)) + cri
            zj = -zj*(zj^4 - 10.0*r*sqr(zj) + 5.0*sqr(r)) + cj
          elseif @fractal3D==13 ; White/Nylander quick z^6+c
            if @useDE
              th = atan2(zri)
              ph = asin(zj/(magn=sqrt(magn)))
              dr = 6.0*(r=sqrt(|dzri|+sqr(dzj)))*magn^5
              dth = 5.0*th + atan2(dzri)
              dph = 5.0*ph + asin(dzj/r)
              dzri = dr*(cos(dph)*cos(dth) + flip(cos(dph)*sin(dth)))
              dzj = -dr*sin(dph)
              if @fractaltype==1
                dzri = dzri + 1.0
              endif
            endif
            r = |zri|
            zri = (zri^6)*(1.0 - (zj^6 - 15.0*r*zj^4 + 15.0*sqr(r)*sqr(zj)) \
                                 /r^3) + cri
            zj = -2.0*zj*sqrt(r)*(3.0*zj^4 - 10.0*r*sqr(zj) + 3.0*sqr(r)) + cj
          elseif @fractal3D==14 ; White/Nylander quick z^p+c
            if @useDE
              th = atan2(zri)
              ph = asin(zj/(magn=sqrt(magn)))
              dr = @mpwr*(r=sqrt(|dzri|+sqr(dzj)))*magn^(@mpwr-1.0)
              dth = (@mpwr-1.0)*th + atan2(dzri)
              dph = (@mpwr-1.0)*ph + asin(dzj/r)
              dzri = dr*(cos(dph)*cos(dth) + flip(cos(dph)*sin(dth)))
              dzj = -dr*sin(dph)
              if @fractaltype==1
                dzri = dzri + 1.0
              endif
            endif
            ztemp = ((r=cabs(zri)) + flip(zj))^@mpwr
            zri = real(ztemp)*(zri/r)^@mpwr + cri
            zj = -imag(ztemp) + cj
          endif
          magn = |zri| + sqr(zj)

Note the code for handling the case when (x,y,z) is near zero, it's a while since I put that in and I can't remember whether I checked to see if it's really required or not - in any case it doesn't handle the derivative correctly except maybe the initial iteration.
Also note the fact that magn = |x+iy+jz| is precalculated before entry into the iteration loop.
As you can see several of the formulas (mine) do not yet have analytical DE versions and in the others I've only used the trig version for the derivative but it is possible to get the derivative without the trig.
Also they aren't all fully optimised yet :)
Also I'm not sure the analytical DE is correct for the "Rucker" formula - it may be that Jos Leys' method for the derivative is not applicable in that case.


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: David Makin on November 17, 2009, 07:40:37 AM
How do I get rid of this fractal newbie thing under my name? I have been writing fractal progams and making fractals since the early 1980's, so I am definitely not a newbie.

:) Everyone new to fractalforums starts as a "newbie" - it's simply based on the number of posts you've made.


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: fractalrebel on November 17, 2009, 07:46:17 PM
My UF 5 implementation of twinbee's formula as a plugin does not use the phase shift for the azimuth, but retains the phase shift for the elevation. The elevation phase shift is necessary to guarantee that ij = -1 rather than ij = j. This plugin is a full 3D analog of 3D complex polar coordinates.


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: fractalrebel on November 17, 2009, 07:48:33 PM
Typo in my pevious message. It should read "analog of 2D complex polar coordinates.


Title: Re: 3D Mandelbrot using UltraFractal 5
Post by: bib on November 20, 2009, 08:12:55 PM
How do you like this one?
I think it's too slow and not zooming deep enough. I should have paid more attention to design! But beeing among the firsts who do mandelbulb videos is so exciting!

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