Logo by Fractal Ken - 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: Did you know ? you can use LaTex inside Postings on fractalforums.com!
 
*
Welcome, Guest. Please login or register. March 28, 2024, 01:51:32 PM


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]   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: Stacking Cubic Mandelbrots for Mandelbulbs  (Read 4147 times)
Description: Find a Mandelbulb as a cross-section of the set of all (k,c) with Jkc connected.
0 Members and 1 Guest are viewing this topic.
Rudy
Forums Newbie
*
Posts: 5


WWW
« on: April 12, 2010, 10:23:17 PM »

Something I've mentioned before is that if we look at generalized cubics of the form z = z^3 + k z + c (eliminating the z^2 term by moving the origin), we get a collection of Julia sets Jkc for these maps.  And the cubic mandebrots Mk are the set of all c such that Jkc is connected.  

I recently implemented these guys in Ultra Fractal, see my public formula and parameter files rvr.ufm and rvr.upr.  Also see my blog post http://www.rudyrucker.com/blog/2010/04/02/the-rudy-set-fractal/.

My belief is that we could make a nice 3D Mandelbulb-style shape by stacking up a sequence of the Mk.  To suggest what I'm getting at, here's a YouTube video that scans forward and back through some of the Mk.  [I updated the video on April 16, 2010].  

<a href="http://www.youtube.com/v/ytCIGUS4DKI&rel=1&fs=1&hd=1" target="_blank">http://www.youtube.com/v/ytCIGUS4DKI&rel=1&fs=1&hd=1</a>

I don't see too much evidence of the dreaded taffy or whipped cream; if we could find a way to stack up a few hundred of the Mk and render as a 3D object, we'd have something nice.  

One thing I'm noticing is that in many spots you're seeing an overlay of two patterns...this is because the Mk points are determined by the non-escape of TWO different critical points.

I am unsure if there would be a distance-estimator formula for this.

For those interested, here is the Ultra Fractal code for the general Cubic Mandelbrot Mk.

Code:
GeneralCubicMandelbrot {
; This formula was used in the Autodesk program, "James Glieck's Chaos: The Software."
; The program was written by Josh Gordon, Rudy Rucker, and John Walker.
; This cubic mandelbrot algorithm was developed by Rudy Rucker, based on
; work on the cubic connectedness map by Douady, Hubbard and Milnor.
; This set is called M_K, and it consists of all points C such that
; the cubic Julia set J_KC is connected. It turns out we can test for this by
; seeing if K and -K do not escape under the fKC iteration.
; M_K is symmetric around the origin.
;See http://www.rudyrucker.com/blog/2010/04/02/the-rudy-set-fractal/
;for more background information.

global:
; This section is executed once per image.
  float Kreal = real(@Kparam)
  float Kimag = imag(@Kparam)
  float Kparam_a = 3.0 * (sqr(Kimag)- sqr(Kreal))
  float Kparam_b = -6.0 * Kreal * Kimag

init:
; The code in this section is executed once per pixel.
;shared variables
   float cx = real(#pixel)
   float cy = imag(#pixel)
   float tempa
   float tempb
   float tempcache

;K escape variables
   float pos_ftx = Kreal
   float pos_fty = Kimag
   float pos_fx2 = sqr(pos_ftx)
   float pos_fy2 = sqr(pos_fty)

;-K escape variables
    float neg_ftx = -Kreal
    float neg_fty = -Kimag
    float neg_fx2 = sqr(neg_ftx)
    float neg_fy2 = sqr(neg_fty)

loop:
; The code in this section is repeatedly executed, until
; either the maximum iteration count has been reached (then
; the pixel being computed is considered to be inside), or
; the boolean expression in the bailout: section becomes
; false (then the pixel is considered to be outside).

;iterate from the K test point.
tempa = pos_fx2 - pos_fy2 + Kparam_a
tempb = 2 * pos_ftx * pos_fty + Kparam_b
tempcache = tempa * pos_ftx - tempb * pos_fty + cx
pos_fty = tempa * pos_fty + tempb * pos_ftx + cy
pos_ftx = tempcache
pos_fx2 = sqr(pos_ftx)
pos_fy2 = sqr(pos_fty)

;iterate from the -K test point with the same formulas
    tempa = neg_fx2 - neg_fy2 + Kparam_a
tempb = 2 * neg_ftx * neg_fty + Kparam_b
tempcache =tempa * neg_ftx - tempb * neg_fty + cx
neg_fty = tempa * neg_fty + tempb * neg_ftx + cy
neg_ftx = tempcache
neg_fx2 = sqr(neg_ftx)
neg_fy2 = sqr(neg_fty)

bailout:
; When this expression becomes false, the iteration
; loop is stopped, and the pixel is considered to be outside.
; A pixel is outside the MK set if either the K or the -K
; test point escapes.

 pos_fx2 + pos_fy2 < @bailout && neg_fx2 + neg_fy2 < @bailout

default:
; This section contains default settings that make the
; fractal formula and its parameters easier to use.
  title = "Mandelbrot Cubic (K Plane)"

  float param bailout
    caption = "Bail-out value"
    hint = "This is the bail-out value"
    default = 4.0
    min = 1
    max = 256
    exponential = true
  endparam
  
  complex param Kparam
    caption = "K param"
    hint = "We are drawing the generalized cubic Mandelbrot set MK which depends on a complex parameter K"
    default = (-0.4055, -0.1135)
    min = (-1.5, -1.5)
    max = (1.5, 1.5)
  endparam

switch:
; This section is specifies a formula in the same file that we can switch down to.
; We'll switch from the General Cubic Mandelbrot down to the General Cubic Julia.
  type = "GeneralCubicJulia"
  Kparam = Kparam
  Cparam = #pixel
  bailout = bailout
}



« Last Edit: April 17, 2010, 03:32:16 AM by Rudy » Logged
David Makin
Global Moderator
Fractal Senior
******
Posts: 2286



Makin' Magic Fractals
WWW
« Reply #1 on: April 12, 2010, 11:49:53 PM »

Hi Rudy - I think for the distance estimator you'd have to calculate the running derivative for both values of k and use the one that bails out to get the DE value.
Logged

The meaning and purpose of life is to give life purpose and meaning.

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
KRAFTWERK
Global Moderator
Fractal Senior
******
Posts: 1439


Virtual Surreality


WWW
« Reply #2 on: April 13, 2010, 04:40:23 PM »

This is exiting...  afro
Logged

Rudy
Forums Newbie
*
Posts: 5


WWW
« Reply #3 on: April 13, 2010, 06:27:48 PM »

I got a cautionary email from fractalist Daniel White:

"Judging from the video alone, I'm afraid that the Z axis (time component here of course) is flooded with whipped taffy wink  The way I know is because the shape smoothly changes as time goes by. Too smoothly.  For anything even starting to resemble the Mandalisk (aka real 3D Mandelbrot), in a time representation, we'd see bubbles forming and then evaporating the  next moment, with tiny bubbles 'twinkling' like thousands of tiny crystals, and larger bubbles/circles taking a while longer to appear and disappear. Everything  would foam up in an 'unmistakable' way. I can render your shape, but it would look similar to a million other  versions from what I can tell."

I take Dan's point---if you look at one of those little warts along the rim of the Mk in the video, the wart stays pretty much the same as time goes by, which means that it's tracing out an ugh, taffy-strand ridge.

But I still have some hopes of an interesting 3D stack.  If you focus on the splitting, warping bulb on the top in the video, it seems like things are indeed appearing and disappearing there, which suggests that, when stacked, they might make respectably bulbous bulbs...or at least something of interest.

And look at this new video, which does seem to have a lot of twinkling going on.  That could be a broccoli field along the bottom...

<a href="http://www.youtube.com/v/yyJFA8_8J0g&rel=1&fs=1&hd=1" target="_blank">http://www.youtube.com/v/yyJFA8_8J0g&rel=1&fs=1&hd=1</a>
« Last Edit: April 14, 2010, 06:08:50 AM by Rudy » Logged
Pages: [1]   Go Down
  Print  
 
Jump to:  


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.162 seconds with 26 queries. (Pretty URLs adds 0.007s, 2q)