# Stuff \_Inside\_ the Mandelbrot Set (not the fringe)

**URL:** <https://boards.straightdope.com/t/stuff-_inside_-the-mandelbrot-set-not-the-fringe/604596>\
**Category:** Factual Questions\
**Created:** [November 30, 2011, 7:23pm UTC](https://boards.straightdope.com/t/stuff-_inside_-the-mandelbrot-set-not-the-fringe/604596 "2011-11-30T19:23:26Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![sevenwood](https://avatars.discourse-cdn.com/v4/letter/s/6de8d8/32.png) [@sevenwood](https://boards.straightdope.com/u/sevenwood)\
**Post date:** [December 1, 2011, 2:20am UTC](https://boards.straightdope.com/t/stuff-_inside_-the-mandelbrot-set-not-the-fringe/604596/21 "2011-12-01T02:20:44Z")

</div>

> [@mwbrooks](#):
>
> I’d still like to know if someone, somewhere, with the necessary mathematical chops, has some idea what’s going on.

I’m going to suggest that you go to [fractint.org](http://fractint.org) and ask the folks there. They’re more programmer-types than mathematical-chops-types, but it’s probably a good place to start. If nothing else they can probably point you to another place.

---

<div class="post-metadata">

**Author:** ![coremelt](https://avatars.discourse-cdn.com/v4/letter/c/4491bb/32.png) [@coremelt](https://boards.straightdope.com/u/coremelt)\
**Post date:** [December 1, 2011, 2:25am UTC](https://boards.straightdope.com/t/stuff-_inside_-the-mandelbrot-set-not-the-fringe/604596/22 "2011-12-01T02:25:57Z")

</div>

> [@mwbrooks](#):
>
> I also agree that rounding is significant. In fact, it is by aggressive rounding (the “sensitivity” setting) that I made the twisty patterns visible. Without rounding, you have to drill down deep into the set, and the patterns are only visible as dot patterns that gradually resolve to lines after you zoom in far enough.

I am not a mathematician but I do work with procedurally generated imagery. I don’t think anyone can say whats going on without seeing your source code and way you do the rounding.

My gut instinct is that the structures you have found while some of them are cool to look at, are not ‘interesting’ in a mathematical sense precisely because they vary so dramatically by number of iterations. That to me seems like an arbitrary artifact of where you stop calculating and not a ‘real’ feature.

---

<div class="post-metadata">

**Author:** ![mwbrooks](https://avatars.discourse-cdn.com/v4/letter/m/ba9def/32.png) [@mwbrooks](https://boards.straightdope.com/u/mwbrooks)\
**Post date:** [December 1, 2011, 2:29am UTC](https://boards.straightdope.com/t/stuff-_inside_-the-mandelbrot-set-not-the-fringe/604596/23 "2011-12-01T02:29:08Z")

</div>

> [@sevenwood](#):
>
> Apparently I was the one who was confused there, as I thought you were using the word “converged” to mean that eventually Z(m+1) = Z(m). I tend to think of a series that eventually settles down to a pattern where Z(m+n) = Z(m) where n \> 1 as a series that gets into an infinite loop rather than one that converges. Blame my programmer mentality.
> 
> I dimly remember someone modifying FRACTINT so that it displayed points inside the set in different colors based on the length of the iterative loop (“n” in the above paragraph) rather than just in black, but I don’t know if that modification ever made it to a public release. \<snip\>

Yes. This all started for me, ages ago, when I did something similar to make Mandelbrots plot faster on my Commodore 64.

I think Wikipedia mentions that n =1 in the Mandelbrot set’s central cardioid and increments in successively smaller outer lobes. That is why I use a two-pass algorithm to find attractors, so I don’t have to know the value of n. Indeed, when seeking attractors I reduce precision to make the patterns more visible, so it is possible my algorithm couldn’t find n reliably if it tried.

This is one reason I want to know if this stuff is really novel. If there’s enough interest, I might be persuaded to improve the program, or at least clean it up enough to release sourcecode.

---

<div class="post-metadata">

**Author:** ![mwbrooks](https://avatars.discourse-cdn.com/v4/letter/m/ba9def/32.png) [@mwbrooks](https://boards.straightdope.com/u/mwbrooks)\
**Post date:** [December 1, 2011, 2:55am UTC](https://boards.straightdope.com/t/stuff-_inside_-the-mandelbrot-set-not-the-fringe/604596/24 "2011-12-01T02:55:22Z")

</div>

> [@coremelt](#):
>
> I am not a mathematician but I do work with procedurally generated imagery. I don’t think anyone can say whats going on without seeing your source code and way you do the rounding.
> 
> My gut instinct is that the structures you have found while some of them are cool to look at, are not ‘interesting’ in a mathematical sense precisely because they vary so dramatically by number of iterations. That to me seems like an arbitrary artifact of where you stop calculating and not a ‘real’ feature.

I figured someone would say something like that. I would be even _more_ curious to know how rounding or iteration counts could create these patterns without any mathematical basis. Are you suggesting I could have created these images algorithmically, without involving mathematical characteristics of the underlying set? That would be a neat trick, indeed.

One question I’m trying to answer here is whether it might be worthwhile to rework the program to use supersampling instead of rounding to bring out the patterns, or to analyze the algorithm to work out why changing the increment changes the patterns. I know there’s real math here. I wanted to hear from a real mathematician to help me decide if it’s worth chasing, given my limited math skills.

---

<div class="post-metadata">

**Author:** ![coremelt](https://avatars.discourse-cdn.com/v4/letter/c/4491bb/32.png) [@coremelt](https://boards.straightdope.com/u/coremelt)\
**Post date:** [December 1, 2011, 3:14am UTC](https://boards.straightdope.com/t/stuff-_inside_-the-mandelbrot-set-not-the-fringe/604596/25 "2011-12-01T03:14:59Z")

</div>

> [@mwbrooks](#):
>
> Are you suggesting I could have created these images algorithmically, without involving mathematical characteristics of the underlying set? That would be a neat trick, indeed.  
> .

They look like Quantization noise to me, but yes I would be interested to see what a mathematician says as well.

---

<div class="post-metadata">

**Author:** ![Chronos](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/chronos/32/134_2.png) [@Chronos](https://boards.straightdope.com/u/Chronos)\
**Post date:** [December 1, 2011, 3:30am UTC](https://boards.straightdope.com/t/stuff-_inside_-the-mandelbrot-set-not-the-fringe/604596/26 "2011-12-01T03:30:30Z")

</div>

If the patterns only show up as a result of the rounding, then they’re not really there.

---

<div class="post-metadata">

**Author:** ![billfish678](https://avatars.discourse-cdn.com/v4/letter/b/7bcc69/32.png) [@billfish678](https://boards.straightdope.com/u/billfish678)\
**Post date:** [December 1, 2011, 3:35am UTC](https://boards.straightdope.com/t/stuff-_inside_-the-mandelbrot-set-not-the-fringe/604596/27 "2011-12-01T03:35:29Z")

</div>

> [@Chronos](#):
>
> If the patterns only show up as a result of the rounding, then they’re not really there.

Baahhh…

Any interesting pattern mathmatically generated is interesting…Real? What does “real” have to do with it?

And get off my lawn!

---

<div class="post-metadata">

**Author:** ![mwbrooks](https://avatars.discourse-cdn.com/v4/letter/m/ba9def/32.png) [@mwbrooks](https://boards.straightdope.com/u/mwbrooks)\
**Post date:** [December 1, 2011, 3:41am UTC](https://boards.straightdope.com/t/stuff-_inside_-the-mandelbrot-set-not-the-fringe/604596/28 "2011-12-01T03:41:11Z")

</div>

> [@coremelt](#):
>
> They look like Quantization noise to me, but yes I would be interested to see what a mathematician says as well.

Yes. The “string of diamonds” and other blocky artifacts are clearly quantization (i.e. rounding artifacts). But there is a smooth, vanishingly thin pattern of curves underneath, which the blocky image only approximates. These curves should represent sets of points whose series’ terminate in attractors with the same magnitude. The resulting shapes seem to relate to the set’s overall shape, but I don’t understand why or how.

---

<div class="post-metadata">

**Author:** ![coremelt](https://avatars.discourse-cdn.com/v4/letter/c/4491bb/32.png) [@coremelt](https://boards.straightdope.com/u/coremelt)\
**Post date:** [December 1, 2011, 4:02am UTC](https://boards.straightdope.com/t/stuff-_inside_-the-mandelbrot-set-not-the-fringe/604596/29 "2011-12-01T04:02:44Z")

</div>

> [@billfish678](#):
>
> Baahhh…
> 
> Any interesting pattern mathmatically generated is interesting…Real? What does “real” have to do with it?

Chronos is saying that the patterns are a result of the rounding algorithm and not an underlying feature of the mandelbrot set itself. I’m not really seeing an underlying curve. When I go one iteration more or less I get a different set of curves. That’s why I’m thinking its a rounding artifact.

---

<div class="post-metadata">

**Author:** ![Indistinguishable](https://avatars.discourse-cdn.com/v4/letter/i/90ced4/32.png) [@Indistinguishable](https://boards.straightdope.com/u/Indistinguishable)\
**Post date:** [December 1, 2011, 4:28am UTC](https://boards.straightdope.com/t/stuff-_inside_-the-mandelbrot-set-not-the-fringe/604596/30 "2011-12-01T04:28:33Z")

</div>

> [@billfish678](#):
>
> Baahhh…
> 
> Any interesting pattern mathmatically generated is interesting…Real? What does “real” have to do with it?
> 
> And get off my lawn!

I agree with **billfish678** , but I also agree that if the patterns are a result of, say, the details of the rounding process, including the arbitrary minutiae of the IEEE floating point standard and so on, then they are quite likely described by rules which are quite convoluted and far from mathematically “natural”; they are still mathematics, the way even the analysis of the historically contrived game of chess is mathematics, but much less compelling to study. On the other hand, if the details of the rounding process responsible for these patterns are quite clean and simple, then the resulting patterns are much more mathematically interesting, although that interest may be for reasons which actually have little to do with the Mandelbrot set, as such.

---

<div class="post-metadata">

**Author:** ![mwbrooks](https://avatars.discourse-cdn.com/v4/letter/m/ba9def/32.png) [@mwbrooks](https://boards.straightdope.com/u/mwbrooks)\
**Post date:** [December 1, 2011, 4:57am UTC](https://boards.straightdope.com/t/stuff-_inside_-the-mandelbrot-set-not-the-fringe/604596/31 "2011-12-01T04:57:04Z")

</div>

> [@mwbrooks](#):
>
> These curves should represent sets of points whose series’ terminate in attractors with the same magnitude. .

No, sorry. Each curve’s series’ reaches its first-pass terminal value at the same count in the second pass.

Tip: To see the curves, stick with one iteration value, and use the sensitivity to increase or reduce resolution. Use the lowest sensitivity that reveals distinct curves in the area of interest.

So what if changing iterations doesn’t work the same inside as it does outside the set? That doesn’t mean this stuff isn’t real, it’s just that much stranger. The iteration setting represents the time for taking a snapshot of a complex process. I suspect internal attractor plot is a lot closer to the complex series math than the external plot’s simple divergence test.

The rounding process is dead simple. After the first pass, the second pass makes a truncated copy of each iteration result in the series and compares it to a truncated copy of the first pass end result. Actual results are not rounded. The rounding only makes the comparison more sensitive. The sensitivity sets the number of bits to truncate.

---

<div class="post-metadata">

**Author:** ![coremelt](https://avatars.discourse-cdn.com/v4/letter/c/4491bb/32.png) [@coremelt](https://boards.straightdope.com/u/coremelt)\
**Post date:** [December 1, 2011, 5:46am UTC](https://boards.straightdope.com/t/stuff-_inside_-the-mandelbrot-set-not-the-fringe/604596/32 "2011-12-01T05:46:15Z")

</div>

Other people have done visualisations of the interior of the mandelbrot set take a look here:  
[http://linas.org/art-gallery/mandel/mandel.961113.html](http://linas.org/art-gallery/mandel/mandel.961113.html)

and here:

> **[Mandelbrot set interior?](http://www.fractalforums.com/mandelbrot-and-julia-set/mandelbrot-set-interior/?PHPSESSID=025d8aab5a6117a968223a858a7f3132)**
>
> Mandelbrot set interior?

It looks to me like your program is effectively doing a very sensitive edge detection on the interior convergence value fields shown above. So you’re seeing contours that correspond to the gradient values of the fields shown in images above, but due to rounding errors you are getting the sudden jumps when changing iterations.

Edited: animation of interior here: [http://www.youtube.com/user/barneypitt#p/a/u/0/j-Ubbxk9pks](http://www.youtube.com/user/barneypitt#p/a/u/0/j-Ubbxk9pks)  
I think you’re effectively seeing a quantized edge detected version of the fields shown in this video in the interior.

---

<div class="post-metadata">

**Author:** ![mwbrooks](https://avatars.discourse-cdn.com/v4/letter/m/ba9def/32.png) [@mwbrooks](https://boards.straightdope.com/u/mwbrooks)\
**Post date:** [December 1, 2011, 5:53am UTC](https://boards.straightdope.com/t/stuff-_inside_-the-mandelbrot-set-not-the-fringe/604596/33 "2011-12-01T05:53:38Z")

</div>

> [@Indistinguishable](#):
>
> I agree with **billfish678** , but I also agree that if the patterns are a result of, say, the details of the rounding process, including the arbitrary minutiae of the IEEE floating point standard and so on, then they are quite likely described by rules which are quite convoluted and far from mathematically “natural”…

I’ll try to revisit my rounding code to make sure it handles those minutiae consistently. I wouldn’t be surprised if my rounding technique can be improved to eliminate some of the blocky artifacts, but I can’t believe rounding accounts for any of the smooth swoops and curves that show up when the settings are “right.”

---

<div class="post-metadata">

**Author:** ![coremelt](https://avatars.discourse-cdn.com/v4/letter/c/4491bb/32.png) [@coremelt](https://boards.straightdope.com/u/coremelt)\
**Post date:** [December 1, 2011, 6:16am UTC](https://boards.straightdope.com/t/stuff-_inside_-the-mandelbrot-set-not-the-fringe/604596/34 "2011-12-01T06:16:02Z")

</div>

> [@mwbrooks](#):
>
> I doubt any other Mandelbrot program will display the internal features. That’s sort of the point of my question. If it does, please let me know!

Have you looked at the interior coloring options in Xaos?  
[http://wmi.math.u-szeged.hu/xaos/doku.php?id=main](http://wmi.math.u-szeged.hu/xaos/doku.php?id=main)

using incoloring mode real/imag reveals interior gradients that change rapidly when incrementing / decrementing the number of iterations.

---

<div class="post-metadata">

**Author:** ![mwbrooks](https://avatars.discourse-cdn.com/v4/letter/m/ba9def/32.png) [@mwbrooks](https://boards.straightdope.com/u/mwbrooks)\
**Post date:** [December 1, 2011, 6:44am UTC](https://boards.straightdope.com/t/stuff-_inside_-the-mandelbrot-set-not-the-fringe/604596/35 "2011-12-01T06:44:53Z")

</div>

> [@coremelt](#):
>
> Edited: animation of interior here: [http://www.youtube.com/user/barneypitt#p/a/u/0/j-Ubbxk9pks](http://www.youtube.com/user/barneypitt#p/a/u/0/j-Ubbxk9pks)  
> I think you’re effectively seeing a quantized edge detected version of the fields shown in this video in the interior.

That looks like it might be related, but there’s no info on what he’s actually plotting. If, as I suspect, he’s animating in the iteration axis, then it makes loads of sense that varying iterations in my applet yields varied results. But my plots don’t look, to me, like a mere edge-detect of his animation. For example, rays and tendrils in my plots radiate from node centers, not edges.

---

<div class="post-metadata">

**Author:** ![Alan\_Smithee](https://avatars.discourse-cdn.com/v4/letter/a/2acd7d/32.png) [@Alan\_Smithee](https://boards.straightdope.com/u/Alan_Smithee)\
**Post date:** [December 1, 2011, 6:59am UTC](https://boards.straightdope.com/t/stuff-_inside_-the-mandelbrot-set-not-the-fringe/604596/36 "2011-12-01T06:59:10Z")

</div>

> [@sevenwood](#):
>
> I’m genuinely confused here. It’s been a long time since I wrote a Mandelbrot program, but as I recall the points inside the Mandelbrot set **don’t** converge.
> 
> The iteration calculations inside the set **do** tend to get stuck in iterative loops, though (where eventually Z(m+n) = Z(m) ). Mark Peterson used that trick to greatly speed up the FRACTINT program when it was calculating points that turned out to be in the set. (After you’ve run a certain number of iterations start keeping track of the results of the last N iterations and if you find that the result of your current iteration is the same as one of the previous ones then you’re in a loop and the point is inside the set. Periodically increase the value if N as your iteration count increases. )

FractInt? Holy shit. I remember running that thing on my old Atari ST when I was about 12! (More than 20 years ago! Geez I feel old!) I can’t believe it’s still out there. 🙂

---

<div class="post-metadata">

**Author:** ![mwbrooks](https://avatars.discourse-cdn.com/v4/letter/m/ba9def/32.png) [@mwbrooks](https://boards.straightdope.com/u/mwbrooks)\
**Post date:** [December 1, 2011, 7:06am UTC](https://boards.straightdope.com/t/stuff-_inside_-the-mandelbrot-set-not-the-fringe/604596/37 "2011-12-01T07:06:36Z")

</div>

> [@coremelt](#):
>
> Have you looked at the interior coloring options in Xaos?  
> [http://wmi.math.u-szeged.hu/xaos/doku.php?id=main](http://wmi.math.u-szeged.hu/xaos/doku.php?id=main)
> 
> using incoloring mode real/imag reveals interior gradients that change rapidly when incrementing / decrementing the number of iterations.

Yes! That plot includes outlines that clearly match stuff I see in my applet. MY applet’s plot seems more complex; for example, lines cross; but that actually _could_ be a procedural artifact (perhaps my algorithm is displaying multiple iterative states simultaneously that appear as separate states in Xaos).

Thanks very much. That gives me a reference for at least partially understanding my applet’s displays.

---

<div class="post-metadata">

**Author:** ![lynne-42](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/lynne-42/32/3138_2.png) [@lynne-42](https://boards.straightdope.com/u/lynne-42)\
**Post date:** [December 1, 2011, 7:10am UTC](https://boards.straightdope.com/t/stuff-_inside_-the-mandelbrot-set-not-the-fringe/604596/38 "2011-12-01T07:10:32Z")

</div>

Thank you guys!!! I also had no idea I could still get dear old Fractint. I’ve been diverted into other fields for a decade, and just got back into working with gifted kids, and next year I’ll be getting some of them into fractals. I was just going to ask you about fractal generators and someone points to Fractint. Lovely memories.

Meanwhile, to the OP. I agree with the roundoff arguments, but that still makes the forms interesting. I’ll follow this thread with interest.

---

<div class="post-metadata">

**Author:** ![coremelt](https://avatars.discourse-cdn.com/v4/letter/c/4491bb/32.png) [@coremelt](https://boards.straightdope.com/u/coremelt)\
**Post date:** [December 1, 2011, 7:16am UTC](https://boards.straightdope.com/t/stuff-_inside_-the-mandelbrot-set-not-the-fringe/604596/39 "2011-12-01T07:16:39Z")

</div>

> [@mwbrooks](#):
>
> Yes! That plot includes outlines that clearly match stuff I see in my applet. MY applet’s plot seems more complex; for example, lines cross; but that actually _could_ be a procedural artifact (perhaps my algorithm is displaying multiple iterative states simultaneously that appear as separate states in Xaos).  
> .

Also, take a look at Pickover stalks:  
[![](http://linas.org/art-gallery/mandel/logstalk_close.gif) ](http://linas.org/art-gallery/mandel/logstalk_close.gif)

from this page:

> **[Mandelbrot Interior](http://linas.org/art-gallery/mandel/mandel.html)**
>
> A scientific exploration of the
> structure of the interior of the Mandelbrot set.

You seem to be getting internal curves which at least superficially resemble pickover stalks.

---

<div class="post-metadata">

**Author:** ![mwbrooks](https://avatars.discourse-cdn.com/v4/letter/m/ba9def/32.png) [@mwbrooks](https://boards.straightdope.com/u/mwbrooks)\
**Post date:** [December 3, 2011, 8:05am UTC](https://boards.straightdope.com/t/stuff-_inside_-the-mandelbrot-set-not-the-fringe/604596/40 "2011-12-03T08:05:20Z")

</div>

> [@coremelt](#):
>
> Have you looked at the interior coloring options in Xaos?  
> [http://wmi.math.u-szeged.hu/xaos/doku.php?id=main](http://wmi.math.u-szeged.hu/xaos/doku.php?id=main)
> 
> using incoloring mode real/imag reveals interior gradients that change rapidly when incrementing / decrementing the number of iterations.

OK, I think I understand at least part of this. That Xaos real/imag mode (and moreso the zmag mode) apparently shows the end state of the series for each pixel. Because it’s a chaotic series, the picture is vastly different for each count increment. That explains that.

My applet instead shows how quickly the end state is reached, but only plots a pixel if the end state (or something close to it) is visited at least once before the count completes. So it makes sense that parts of my plots look like some zmag plots. The similarities convince me that my plot is “real.” But it also makes sense that my plot looks much more complex than a simple zmag plot. My applet looks at the journey, not the destination.

I am also convinced that rounding is _not_ responsible for the complex linear network-like features revealed when a black or speckled interior plot in my applet is enhanced by increasing sensitivity without changing the count. The applet detects features by comparing bitwise-rounded double-to-longbit values. This comparison cannot produce a match unless the sign and exponent fields match, so it cannot produce a false match unless the sensitivity is set too high, and _that_ simply blows away details like an overexposed photograph. That sort of false result is easy to see. If you see a linear or curved detail, it corresponds to something real in the underlying math.

I am less sanguine about black bits that interrupt some patterns. I think these gaps might be filled in if I add code to normalize the result exponents before I truncate and search for matches. I also am still thinking about oversampling, algorithm changes, or other techniques that might clarify the plots. And I’d like to try adding a Xaos zmag plot mode to my applet to allow more direct comparison.

In any case, the corroboration from Xaos has given me a lot more confidence that what I’m seeing is not simply a figment of my applet’s imagination. Finally I know the strange, spiny interior Mandelblob that I first saw on my C64 in the 1980s really _was_ something!

Thanks guys!

[Previous page](https://boards.straightdope.com/t/stuff-_inside_-the-mandelbrot-set-not-the-fringe/604596.md?page=1)

[Next page](https://boards.straightdope.com/t/stuff-_inside_-the-mandelbrot-set-not-the-fringe/604596.md?page=3)
