Logo by dainbramage - 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: Follow us on Twitter
 
*
Welcome, Guest. Please login or register. March 29, 2024, 03:23:51 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] 2   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: How are B&W images from "Beauty of Fractals" created?  (Read 18932 times)
0 Members and 1 Guest are viewing this topic.
Duncan C
Fractal Fanatic
****
Posts: 348



WWW
« on: April 07, 2007, 11:30:47 PM »

In the book "The Beauty of Fractals" there are some very striking black and white images of Mandelbrot and Julia sets. (For example, Map 41 on page 84, and map 43 on page 85. Also an unnumbered plot on page 188.)

I really like the look of these plots, but I am at a loss to figure out how they were created. I always assumed that they were just plots calculated to some arbitrary number of iterations, and pixels that escaped where colored in white, and pixels that did not escape were colored in black. However, that's not the case.

Does anybody else know how these images were created?

I realize that this book is a bit dated, but I still really like the images and would love to know how they were created.


Duncan C.

P.S.: In contrast, there is an image on page 192 that the authors say required an IBM mainframe at IBM labs in Bblingen, plus a special high resolution printer. I was able to duplicate this image quite easily in a few minutes using my laptop and HP Laserjet printer. Today's laptop is yesterday's supercomputer.
« Last Edit: April 08, 2007, 03:50:12 AM by Duncan C » Logged

Regards,

Duncan C
Nahee_Enterprises
World Renowned
Fractal Senior
******
Posts: 2250


use email to contact


nahee_enterprises Nahee.Enterprises NaheeEnterprise
WWW
« Reply #1 on: April 13, 2007, 09:44:14 AM »

I gave it a very quick try using FractInt, and came up with these PARs which you can use to load and try out.  I also saved the MAP files used to create them if you wish those separately.  (See the images further on down.)

test_01            { ;  (c) Paul N. Lee -- Apr 13, 2007 - 02:15:26
                     ; time=  0:00:00.82 on a PIII-700 at 640x480
                     ; Video=F5 using FractInt 2099.8
  reset=2099 type=mandel passes=t
  center-mag=+0.29124525926602574/-0.01530508041716197/3112.83
  params=0/0 float=y inside=0 colors=www000<253>000
  }

test_02            { ;  (c) Paul N. Lee -- Apr 13, 2007 - 02:15:26
                     ; time=  0:00:00.82 on a PIII-700 at 640x480
                     ; Video=F5 using FractInt 2099.8
  reset=2099 type=mandel passes=t
  center-mag=+0.29124525926602574/-0.01530508041716197/3112.83
  params=0/0 float=y inside=0 colors=000www<253>www
  }

test_03            { ;  (c) Paul N. Lee -- Apr 13, 2007 - 02:24:10
                     ; time=  0:00:00.71 on a PIII-700 at 640x480
                     ; Video=F5 using FractInt 2099.8
  reset=2099 type=mandel passes=t
  center-mag=+0.29130558810737911/-0.01519509048573419/18097.85
  params=0/0 float=y inside=0 colors=www000<253>000
  }

test_04            { ;  (c) Paul N. Lee -- Apr 13, 2007 - 02:24:10
                     ; time=  0:00:00.71 on a PIII-700 at 640x480
                     ; Video=F5 using FractInt 2099.8
  reset=2099 type=mandel passes=t
  center-mag=+0.29130558810737911/-0.01519509048573419/18097.85
  params=0/0 float=y inside=0 colors=000www<253>www
  }

 

 
 
 
Logged

Duncan C
Fractal Fanatic
****
Posts: 348



WWW
« Reply #2 on: April 13, 2007, 03:54:54 PM »

I gave it a very quick try using FractInt, and came up with these PARs which you can use to load and try out.  I also saved the MAP files used to create them if you wish those separately.  (See the images further on down.)

Mr. Lee,

I use a Mac, and the Mac version of FracInt is so out of date that it won't launch on my computer (It is an old "classic" OS 9 application.) Thus I can't use your PAR and MAP files.

In any case, the images you posted look about like what I get using my program.

The black and white images from "The Beauty of Fractals" are 1 bit images, not grayscale. they show a very crisp image of the shape of the fractal, in a way I can't duplicate. They show texture across a range of iteration values. I can't figure out how they are assigning black or white to each pixel in the image. It is not as simple as picking an iteration threshold.

Here's my attempt at map 43, from page 85 of the book:
 
 http://upload.pbase.com/image/77096175
(click the picture to see the original version on pbase, including plot coordinates)

And here is a photograph of the image from the book:



Note how my image has black "blobs" in it where I chose my iteration cutoff. By contrast, the image from B of F shows the features of the fractal very well, and has detail from a wide range of iteration values.




« Last Edit: April 13, 2007, 11:44:32 PM by Nahee_Enterprises » Logged

Regards,

Duncan C
lkmitch
Fractal Lover
**
Posts: 238



« Reply #3 on: April 13, 2007, 10:16:25 PM »

They look like inverse Julia images, wherein the iteration uses the inverse of the Julia calculation and the orbits settle on the fractal boundary of the Julia set.

Kerry
Logged
stijnw
Guest
« Reply #4 on: April 13, 2007, 10:55:53 PM »

They look like inverse Julia images, wherein the iteration uses the inverse of the Julia calculation and the orbits settle on the fractal boundary of the Julia set.

Maybe it has something to do with the 'Distance Estimation Method' they use? (Just a guess)
But things like 'moderate number of iterations' and 'high resolution' also come to mind when I look at those images. I could imagine that certain very high resolution paperwhite monitors could produce such an effect...
Just some thoughts though...  smiley

Regards,
Stijn Wolters (stijnw@funiter.org , http://www.funiter.org/)
« Last Edit: April 13, 2007, 10:59:08 PM by stijnw » Logged
Duncan C
Fractal Fanatic
****
Posts: 348



WWW
« Reply #5 on: April 13, 2007, 10:57:59 PM »

They look like inverse Julia images, wherein the iteration uses the inverse of the Julia calculation and the orbits settle on the fractal boundary of the Julia set.

Kerry

They are definitely Mandelbrot set plots. Is the inverse iteration method applicable to Mandelbrot sets?



Duncan C
« Last Edit: April 13, 2007, 11:03:24 PM by Duncan C » Logged

Regards,

Duncan C
David Makin
Global Moderator
Fractal Senior
******
Posts: 2286



Makin' Magic Fractals
WWW
« Reply #6 on: April 14, 2007, 01:13:47 AM »

I think Stijn is correct - the image was produced using Distance Estimation rather than plain iteration colouring - black and white - black only when the points are within a given distance estimate of the "inside" i.e. when the calculated distance estimation value is less than a given value.
(Also "inside" is black)
Logged

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

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
stijnw
Guest
« Reply #7 on: April 15, 2007, 09:54:46 PM »

I think Stijn is correct - the image was produced using Distance Estimation rather than plain iteration colouring - black and white - black only when the points are within a given distance estimate of the "inside" i.e. when the calculated distance estimation value is less than a given value.
(Also "inside" is black)

A quick look at the code in "The Science of Fractal Images" for the "Distance Estimator Method for Mandelbrot set" reveals a matrix with only the values '0' and '1' assigned to it, so they don't seem to use grayscale.

I think it has to do with the prints, a combination of 'more details' caused by the "DEM/M" and a very 'fine' grid of pixels, that way it can look like grey when a black and a white pixel are directly adjacent to eachother (dithering effect).

Regards,
Stijn Wolters.

Logged
Duncan C
Fractal Fanatic
****
Posts: 348



WWW
« Reply #8 on: May 01, 2007, 01:54:48 PM »

I think Stijn is correct - the image was produced using Distance Estimation rather than plain iteration colouring - black and white - black only when the points are within a given distance estimate of the "inside" i.e. when the calculated distance estimation value is less than a given value.
(Also "inside" is black)

A quick look at the code in "The Science of Fractal Images" for the "Distance Estimator Method for Mandelbrot set" reveals a matrix with only the values '0' and '1' assigned to it, so they don't seem to use grayscale.

I think it has to do with the prints, a combination of 'more details' caused by the "DEM/M" and a very 'fine' grid of pixels, that way it can look like grey when a black and a white pixel are directly adjacent to eachother (dithering effect).

Regards,
Stijn Wolters.


Stijn,

I managed to find my copy of "The Science of Fractal Images" (S of F I for short).  Sure enough, they state specifcially that they use their distance estimator method DEM to create these black and white plots. Thanks for the tip.

One question I have: How do the results for the DEM method differ from other methods that take the log-log of the last Z value (with other adjustments.) See this link for a discussion of this method.

Obviously, the DEM method in S of F I is written to give binary "near" or "far" values, and the fractional distance method from the link on smooth shading is not. What about the underlying math, however?

I don't have enough advanced math under my belt to fully grasp this stuff.

Recording all the iteration values and then running a huge differential equation on them seems like a lot of work for each pixel, particularly for high "bailout" (or max iteration) values. My app supports a 64k bailout value. I'd need a megabyte buffer to store the iteration values (2 doubles / iteration * 64k iterations = 2 * 16 * 64k) = 1 megabyte. Plus my app is multithreaded, and each compute thead would need it's own iteration value buffer.


Duncan C
Logged

Regards,

Duncan C
David Makin
Global Moderator
Fractal Senior
******
Posts: 2286



Makin' Magic Fractals
WWW
« Reply #9 on: May 01, 2007, 10:34:08 PM »

Hi Duncan,

The key to distance estimation is what I call the "running derivative", here's how the default (Mandelbrot) Dist. Est. formula for Ultrafractal works:

For the entire fractal compute pm1 = p-1 and ip = 1/p where p is the power (estimated rate of divergence)

Before iterating (i.e. per-pixel) initialise a complex variable dz to (0,0)

At the end of each iteration compute the running derivative:
  dz = dz*p*(z^pm1) + 1

After bailout use something like:
  Dist. Est. = (p*log(cabs(z))*cabs(z)/cabs(dz))^ip

For a Julia Set initialise dz to (1,0) and omit the +1 in the iteration calculation.

The above method is a simplification of the original Distance Estimation by Hart for which I don't have a direct reference to hand - I think it's available as a PDF on the net.

Note that both Mandelbrot and Julia versions work better with higher bailouts - typically >65536 or so.
« Last Edit: May 01, 2007, 10:42:05 PM by David Makin » Logged

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

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
Duncan C
Fractal Fanatic
****
Posts: 348



WWW
« Reply #10 on: June 07, 2007, 10:39:41 PM »

Hi Duncan,

The key to distance estimation is what I call the "running derivative", here's how the default (Mandelbrot) Dist. Est. formula for Ultrafractal works:

For the entire fractal compute pm1 = p-1 and ip = 1/p where p is the power (estimated rate of divergence)

Before iterating (i.e. per-pixel) initialise a complex variable dz to (0,0)

At the end of each iteration compute the running derivative:
  dz = dz*p*(z^pm1) + 1

After bailout use something like:
  Dist. Est. = (p*log(cabs(z))*cabs(z)/cabs(dz))^ip

For a Julia Set initialise dz to (1,0) and omit the +1 in the iteration calculation.

The above method is a simplification of the original Distance Estimation by Hart for which I don't have a direct reference to hand - I think it's available as a PDF on the net.

Note that both Mandelbrot and Julia versions work better with higher bailouts - typically >65536 or so.


David,

I'm getting ready to implement the Distance Estimator Method (DEM) for Mandelbrot and Julia sets. I found the section in "The Science of Fractal images" that describes this method. I had forgotten that dz, the derivative, is a complex number. The section in "The Science of Fractal images" that covers DEM for Mandelbrots (DEM/M) says to initialize dz to zero. Your post says to initialize dz to 1+0i, which is really a better description of the setup. Thanks for pointing that out.

Does UltraFractal support generating 3D plots using DEM? If so, can you point me to some sample 3D Mandelbrot or Julia images using DEM for the height value?


Duncan C.
Logged

Regards,

Duncan C
Duncan C
Fractal Fanatic
****
Posts: 348



WWW
« Reply #11 on: June 10, 2007, 08:04:41 PM »

I've taken a first stab at implementing the Distance Estimator Method (DEM) documented in The Science of Fractal Images.

I still can't get the crisply defined shapes that the authors do, but I'm getting closer.

The image below was generated at 1400 x 1400 pixels, then downsampled to 750x750, and contrast adjusted. This improves the look of the image greatly.


Duncan C



Logged

Regards,

Duncan C
David Makin
Global Moderator
Fractal Senior
******
Posts: 2286



Makin' Magic Fractals
WWW
« Reply #12 on: June 10, 2007, 10:04:55 PM »

Does UltraFractal support generating 3D plots using DEM? If so, can you point me to some sample 3D Mandelbrot or Julia images using DEM for the height value?

You could do that in Ultrafractal but I'm not sure if anyone has done so yet.

The main way I've used DEM is to get the solid boundary when rendering fully-3D Julibrots, Quaternions and Hypercomplex fractals - using DEM for the solid boudary works far better than using the smooth iteration value for this.

For heightfields you might also like to try producing them from orbit trap values to get a completely different view.
Logged

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

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
doncasteel8587
Guest
« Reply #13 on: June 13, 2007, 03:08:13 AM »

For the entire fractal compute pm1 = p-1 and ip = 1/p where p is the power (estimated rate of divergence)

David,

I've googled "estimated rate of divergence" and found all kinds of unrelated stuff, by inserting "fractal" into the search, All I came up with is this thread in this forum.

.......  How do I estimate the rate of divergence?

(In particular I'm playing around with 3D Quaternions)

Thanks
Logged
David Makin
Global Moderator
Fractal Senior
******
Posts: 2286



Makin' Magic Fractals
WWW
« Reply #14 on: June 13, 2007, 01:52:38 PM »

.......  How do I estimate the rate of divergence?
(In particular I'm playing around with 3D Quaternions)

The estimated rate of divergence is usually provided/estimated by the user in Ultrafractal formulas i.e. the formula author provides a user-parameter that can be set by the user so they can tweak until a suitable value is found.

For a normal z^n+c formula the estimated rate of divergence is n and in fact for a*z^n + b*z^(n-1)+c*z^(n-2)+...+const it will also be approcimately n but for more complex formulas involving higher functions or conditional calculations it's not so straightforward to estimate.
The problem with the value required for the DEM calculation is that you need to know it prior to iterating which means it can only really be estimated however normal smooth iteration calcuilation also involves the estimated degree of divergence and in that case we can actually calculate a value as log(cabs(final z))/log(cabs(penultimate z)) where final z is the bailed out value - actually you don't need to do the full cabs() calculation, the result is the same if you don't calculate the two square roots.
Logged

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

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
Pages: [1] 2   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
Saying "Hi"+ few images Meet & Greet LhoghoNurbs 2 1251 Last post January 06, 2010, 06:31:52 PM
by Nahee_Enterprises
"The World is built on Fractals" - 65% Shipped Fractalforums.com Calendar Project cKleinhuis 0 1503 Last post December 17, 2012, 08:05:38 AM
by cKleinhuis
Manual "fractals" Other Artforms hapf 3 2920 Last post March 27, 2014, 09:39:50 PM
by Sockratease
A-Box Beamer--"A Monstrous Thing of Beauty"--3D FAMV Mandelbulber Gallery paigan0 1 707 Last post June 28, 2017, 07:05:22 AM
by CCV
Images Using "Perlin FBM Displacement" Transformation ChaosPro Gallery « 1 2 » Kalter Rauch 21 2947 Last post August 28, 2017, 02:08:07 AM
by Kalter Rauch

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.373 seconds with 25 queries. (Pretty URLs adds 0.022s, 2q)