Welcome to Fractal Forums

Fractal Math, Chaos Theory & Research => (new) Theories & Research => Topic started by: Tglad on September 12, 2012, 01:33:18 PM




Title: New type of fractal
Post by: Tglad on September 12, 2012, 01:33:18 PM
At least I think it is new  :D
I'm combining the idea of a kleinian fractal with the +c part of the mandelbrot set. So I guess this is making a Mandelbrot set of Kleinians.
I have two transforms each iteration. Each transform is a combination of a translation, scale, rotation and invert-reflect. The 4 possible conformal transforms.
I then add c, and colour each pixel based on how many paths stay within the escape radius.
Here are some pics for different transforms. Notice that each pic has variation within the fractal shape-


Title: Re: New type of fractal
Post by: kram1032 on September 12, 2012, 05:05:57 PM
you like your red cols, don't you? :)
Certainly looks like nice stuff. Shapes remind me of both mandelbrot-sections and shape-based IFS patterns.


Title: Re: New type of fractal
Post by: Tglad on September 14, 2012, 10:52:53 AM
some more, with a temperature colouring:


Title: Re: New type of fractal
Post by: Tglad on September 14, 2012, 10:54:19 AM
and more


Title: Re: New type of fractal
Post by: kram1032 on September 14, 2012, 11:16:12 AM
that brings out the details a lot better :)


Title: Re: New type of fractal
Post by: KRAFTWERK on September 14, 2012, 03:29:10 PM
Mysterious stuff...   :beer:O0
I will follow the progress!


Title: Re: New type of fractal
Post by: jehovajah on September 15, 2012, 10:11:03 AM
that brings out the details a lot better :)

It sure does. ;D

I am interested in the programming structure here. Presumably you use procedural calls in place of the usual z notation, but the c is your seed vector. What is your vector space complex plane, quaternion block, or just simple Cartesian vector?

Does it matter which you choose?


Title: Re: New type of fractal
Post by: Tglad on September 15, 2012, 01:53:11 PM
Hi Jehovajah, it uses 2d vector algebra, replaces:
 z = z2+c
with
 v = m2(v)+c
where m2(v) is a double valued function, giving two different mobius transforms of v. A mobius transform is either a translation, rotation, invert-flip or scale, or a combination of any of these. In the pictures I'm using a random combination, and scaling by 2.
It would work in more dimensions, but you might need to triple each iteration or more, and it would be slow because of all the paths to check.

Very stormy look here:
(http://nocache-nocookies.digitalgott.com/gallery/12/853_16_09_12_9_09_46.png)


Title: Re: New type of fractal
Post by: hobold on September 16, 2012, 11:09:47 AM
giving two different mobius transforms of v
So the number of orbits that you are tracking doubles with each iteration?


Title: Re: New type of fractal
Post by: Tglad on September 16, 2012, 12:39:48 PM
Yes, but if a point goes outside a threshold then you terminate that route and its children, so in practice you aren't necessarily doing 2^n checks for an iteration depth of in.
Here's another-


Title: Re: New type of fractal
Post by: jehovajah on September 16, 2012, 02:54:05 PM
Some great effects and very interesting because it is just simple vector "dust".

Using your approach I feel you can more readily model natural physical forces in interpretable ways. There is always this suspicion about the imaginaries, which I have satisfied myself is totally unjustified, because they are not "imaginaries" but constant ratios of semi circular arc to diameter.

Your method allows one to think say of a plasma acting on the atmospheric water molecules.
The plasma drives rotates and flips water molecules about by electrostatic and magnetic action. The scale factor allows us to zoom in and see particular patterns of droplets at a given instant.

Of course this is a simplistic description, but who wants to make it hard! Well, maybe a research physicist might, but I think the principle is simple enough. ;D


Title: Re: New type of fractal
Post by: Tglad on September 17, 2012, 11:23:56 AM
Its fun exploring images from this fractal...

(https://sites.google.com/site/tomloweprojects/_/rsrc/1347869007474/scale-symmetry/mobius-maps/magic.png)

(https://sites.google.com/site/tomloweprojects/_/rsrc/1347869068870/scale-symmetry/mobius-maps/pointy.png)

(https://sites.google.com/site/tomloweprojects/_/rsrc/1347869599272/scale-symmetry/mobius-maps/light.png)

(https://sites.google.com/site/tomloweprojects/_/rsrc/1347869293574/scale-symmetry/mobius-maps/electric.png)

I haven't got the right threshold value working yet, so there are some artefacts, like hard lines... but in this pic I think it makes it look quite artistic-
(https://sites.google.com/site/tomloweprojects/_/rsrc/1347869170945/scale-symmetry/mobius-maps/art.png)

Probably not the best formulation yet, but here's the code so far:

Code:
recurse(int &count, Vector3 &point, Vector3 &C, int depth) 
  for (i = 0; i<2; i++)
    // 1. this is a invert  (which naturally flips the handedness)
    Vector3 pos = point - bends[i];
    pos *= bends[i].magnitudeSquared() / pos.magnitudeSquared();
    pos += bends[i];
    // 2. so a (second) flip is necessary (so not anti-conformal)
    pos -= 2.0 * flips[i] * pos.dot(flips[i]); // flips is normalised, 2 flips make a rotation
    // 3. arbitrary translations
    pos += shifts[i];
    // 4. scale up
    pos *= scale;
    // 5. add the offset (the initial pixel position)
    pos += C;
    if (pos.magnitudeSquared() > threshold)
      continue;
    if (depth == 0)
      count++;
    else
      recurse(count, pos, offset, depth - 1);
In my tests:
bends is a random -5 to 5 vector, flips is a random normalised vector, shifts is random -0.5 to 0.5 vector.
threshold is 9, scale is 2 and depth starts at 16. I am viewing the fractal in a window between -0.5 and 0.5.


Title: Re: New type of fractal
Post by: taurus on September 17, 2012, 11:53:02 AM
the images quit loading on my 'puter with an error 403 - forbidden! i guess i am not the only one  :dink:


Title: Re: New type of fractal
Post by: Tglad on September 17, 2012, 12:01:45 PM
I added the images here too- https://sites.google.com/site/tomloweprojects/scale-symmetry/mobius-maps


Title: Re: New type of fractal
Post by: taurus on September 17, 2012, 12:43:16 PM
thanks, this site loads properly.

the ones in the previous post seem to be placed in a folder within your google account, that prohibits public acces. most likely you are the only one, who sees them.

my understanding of what you ar doing here is very limited, but it's still interresting to see how new ideas grow.
visually they remind me more of outside julia sets - they look some sort of fragmented.


Title: Re: New type of fractal
Post by: jehovajah on September 17, 2012, 02:53:44 PM
Maybe you could just show how it directly produces a Mandelbrot form to orient some of your readers. But the conformal mapping aspect is pretty fundamental if one wants to produce the holy grail from spherical balls! The Mandelbrot dynamic is not only beautiful, it is our entry point into describing many natural dynamic systems.

By the way, love your work on time scaled fractals. I think it is one of the most important fractal functions I've seen so far, especially in describing motion and growth in our universe.

Hey, but there are so many cool things fractals explain, it's no wonder great new leads get tossed aside for the shiny stuff!  ;D


Title: Re: New type of fractal
Post by: Tglad on September 18, 2012, 01:32:20 PM
Thanks jehovajah, do you mean the dynamic fractals here- https://sites.google.com/site/tomloweprojects/scale-symmetry/dynamic-fractals
I fixed up the bad links, can't seem to link to google drive images even though they were public.

More surprising results, these look strangely 3d given that they are only 2d-


Title: Re: New type of fractal
Post by: jehovajah on September 19, 2012, 01:43:02 AM
Yep! They are the ones.

I keep switching between 2 views! One where the light material is the body, and the other where the dark material is the body. This could explain the 3d quality of the image, because the image processing in our brains is switching between 2 views.


Title: Re: New type of fractal
Post by: Tglad on September 19, 2012, 10:35:09 AM
Changeable weather this evening... stormy-

(https://sites.google.com/site/tomloweprojects/_/rsrc/1348043438669/scale-symmetry/mobius-maps/ltng.png)

evening clouds...
(https://sites.google.com/site/tomloweprojects/_/rsrc/1348043475030/scale-symmetry/mobius-maps/sunset.png)


Title: Re: New type of fractal
Post by: Tglad on September 21, 2012, 10:10:34 AM
There's a sub family where shifts is zero. Not as much variety, but it appears to be always connected:


Title: Re: New type of fractal
Post by: jehovajah on September 23, 2012, 12:36:08 PM
At what scale are these,Tglad?
Are we looking at part of the traditional Mandelbrot?
If not, what scale do you have to get to to get an analogue?
I notice in the zero c ones some echo of it, but of course you have to be precise if you want to get close to it.
Now I am not suggesting that should be your goal, but from my own perspective I know the Mandelbrot form is very sensitive to coefficient sequence. ,thus  the Mandelbrot  formula actually is evident in many natural growth structures if you take that sensitivity into account.
Nature, unlike our computers, does not follow a rigid "for loop" structure for its iterations!


Title: Re: New type of fractal
Post by: Tglad on September 24, 2012, 12:20:44 AM
The images are -0.5 to 0.5, but the last two are -4 to 4 I think. The last two aren't zero c, there is still c, but the mobius transforms m2(v) have no translation.
No it isn't part of the traditional mandelbrot, there is no z^2.


Title: Re: New type of fractal
Post by: kram1032 on September 24, 2012, 01:53:07 AM
Since these are based on Möbius-transforms, it should be fairly easy to extend them to a "proper" 3D-version, right?
I'd be keen to see how that might look like.


Title: Re: New type of fractal
Post by: jehovajah on September 24, 2012, 05:03:57 AM
No it isn't part of the traditional mandelbrot, there is no z^2.
This is not what I meant by traditional. Rather I am referring to the iconic form. Is it possible to approach to the iconic form with a suitable selection of the transforms? At the moment you have them on a randomiser of sorts I think you said initially. Can you control the rotation and scaling to approach to the iconic form?


Title: Re: New type of fractal
Post by: Tglad on September 24, 2012, 05:08:00 AM
Kram1032- Yes that's right, it should work in 3d, though I think you would want the function to be triple-valued m3(v) rather than double-valued.
It would be a bit of work though, because tripling each iteration will make rendering slow, and there might need to be a volumetric fog type of render, to render the density value per voxel.

Jehovajah- you'll have to tell me what you mean by 'iconic form' for the Mandelbrot set.


Title: Re: New type of fractal
Post by: Tglad on September 25, 2012, 10:27:58 AM
Here's an example with simple symmetric parameters, which could easily extend to 3d.
(https://sites.google.com/site/tomloweprojects/_/rsrc/1348560772038/scale-symmetry/mobius-maps/simple.png)

shifts is 0, bends are (1,0) and (0,1), and flips are (-1,1) and (1,-1). Giving simpler code:
Code:
getPixelCount(int &count, Vector2 &point, int depth) 
  for (i = 0; i<2; i++)
    pos = point - bends[i];
    pos /= dot(pos, pos);
    pos += bends[i];
    pos -= 2.0 * flips[i] * pos.dot(flips[i]) / dot(flips[i], flips[i]);
    pos *= scale;
    pos += C;
    if (dot(pos, pos) > 4)
      continue;
    if (depth == 0)
      count++;
    else
      getPixelCount(count, pos, depth - 1);


Title: Re: New type of fractal
Post by: kram1032 on September 25, 2012, 10:53:35 AM
Really nice :)
With a bit of gradient work, those bulb-like structures could turn out very much like some cartoony fractal flames :D
You are always showing small sections of the whole thing. Are these structures finite? Could you zoom out to an extend where you can see the whole thing?


Title: Re: New type of fractal
Post by: Tglad on September 26, 2012, 12:30:38 PM
Hard to know actually, the difficulty is defining the escaped region. In Mandelbrot set the escaped points go to infinity and the region is any magnitude > 2, but for these fractals it isn't so simple, and the region changes with C. I don't think the threshold that works for the zoomed in region works on the zoomed out areas, consequently the fractal shapes give way to smoother shapes further from the centre of the image.
http://www.fractalforums.com/index.php?action=gallery;sa=view;id=12425 (http://www.fractalforums.com/index.php?action=gallery;sa=view;id=12425)


Title: Re: New type of fractal
Post by: cbuchner1 on September 26, 2012, 03:10:51 PM

I think we need a realtime GPU version of this ;)


Title: Re: New type of fractal
Post by: kram1032 on September 27, 2012, 10:58:13 AM
good luck with realtime, if the calculation is indeed borderline exponential, heh
But faster should be doable.

I'd love to know how to even find proper escape-domains mathematically.
Like for the m-set, it's not just empirically obvious from experimentally rendering that nothing stays inside the set beyond r=2, it's proven mathematically, right?
If you knew how such things can be proven, maybe you could find the "correct" escape-radius, if it exists at all.


Title: Re: New type of fractal
Post by: Alef on September 30, 2012, 04:44:14 PM
Kram1032- Yes that's right, it should work in 3d, though I think you would want the function to be triple-valued m3(v) rather than double-valued.
It would be a bit of work though, because tripling each iteration will make rendering slow, and there might need to be a volumetric fog type of render, to render the density value per voxel.

Jehovajah- you'll have to tell me what you mean by 'iconic form' for the Mandelbrot set.
I think, Jehovajah meant this:
(http://upload.wikimedia.org/wikipedia/commons/thumb/2/21/Mandel_zoom_00_mandelbrot_set.jpg/322px-Mandel_zoom_00_mandelbrot_set.jpg)


Title: Re: New type of fractal
Post by: kram1032 on September 30, 2012, 06:30:22 PM
Asdam, yes I did but in a different question.
Tglad answered both questions - the one about the whole set aswell as the on of getting this into 3D


Title: Re: New type of fractal
Post by: Alef on September 30, 2012, 06:38:43 PM
Hadn't noticed answer about whole set;)


Title: Re: New type of fractal
Post by: jehovajah on October 04, 2012, 09:52:43 PM
Hard to know actually, the difficulty is defining the escaped region. In Mandelbrot set the escaped points go to infinity and the region is any magnitude > 2, but for these fractals it isn't so simple, and the region changes with C. I don't think the threshold that works for the zoomed in region works on the zoomed out areas, consequently the fractal shapes give way to smoother shapes further from the centre of the image.
http://www.fractalforums.com/index.php?action=gallery;sa=view;id=12425 (http://www.fractalforums.com/index.php?action=gallery;sa=view;id=12425)
Yes Asdam has a picture of what I meant.
Now I compare it with your last image and I can orient  what your code is doing vis a vis the complex code.

I see the issue with the cut off, because regions a are not as well defined, but I also see an issue with scale and rotation. Yet despite this, the cardioid is still strongly suggested.

The robustness of this shape gives me hope. Further refinements, and thought on the issue of modulus or modularity might help. Somewhere on the forum there is a thread dealing with just that issue. It was quite a while back but I will try and find it.

Why I am buzzed by this is laid out in my earlier post about plasma  interactions. It is not the Mandelbrot set look alike I am seeking, but an understanding of how the conformal elements work together to produce its features. If the same structural formula is all it takes, then we do indeed live inside a huge Mandelbrot simulation! Or rather, the Mandelbrot provides a useful model of behaviours in thin charge sheets!


Title: Re: New type of fractal
Post by: jehovajah on October 07, 2012, 03:27:39 PM
Here's an example with simple symmetric parameters, which could easily extend to 3d.
(https://sites.google.com/site/tomloweprojects/_/rsrc/1348560772038/scale-symmetry/mobius-maps/simple.png)

shifts is 0, bends are (1,0) and (0,1), and flips are (-1,1) and (1,-1). Giving simpler code:
Code:
getPixelCount(int &count, Vector2 &point, int depth) 
  for (i = 0; i<2; i++)
    pos = point - bends[i];
    pos /= dot(pos, pos);
    pos += bends[i];
    pos -= 2.0 * flips[i] * pos.dot(flips[i]) / dot(flips[i], flips[i]);
    pos *= scale;
    pos += C;
    if (dot(pos, pos) > 4)
      continue;
    if (depth == 0)
      count++;
    else
      getPixelCount(count, pos, depth - 1);
In this simplified code you reduce the matrix outcomes to simpler vector sums using normalised vectors derived from the pixel position. However you do not define scale anywhere I can see.

Anyway, taking  point to mean  a structure holding at least the 2 screen pixel coordinates you subtract the unit  vectors and normalise to give you a unit vector. There is no zero test here shown prior to the normalisation.

You then start to manipulate this unit vector, but I do not follow the code at this point as the for instruction is spent as I understand it. Bends[] are rotations and at this point we would double the rotation for a Mandelbrot outcome. However, you have no machinery in this code to facilitate that, so I suggest using (-1,0 ) and (0,-1).

To generalise the rotation here  I would use bends[] as
(cos ( arctan( y/x)), sin( arctan(y/x)))

where y and x are derived from point, possibly point.x and point.y. And also instance a matrix rotation procedure. The addition of the vectors here is only a partial rotation and introduces some Shift.
The general doubling could then be achieved by doubling the arctan, or arctan2.

You then do some normalised flips[], which in general are reflections in the origin. 2 such reflections are equivalent to a rotation through 2pi, but in this case reflection in the origin is always equivalent to a rotation by pi. It is reflection in the axes that has to be repeated to obtain a rotation. Your flips are rotations of pi, but again, if you add them you introduce shift into the vector resultants. To avoid this requires a matrix product procedure. Doubling it only increases this shift drift!

Then you scale. Here I would suggest a scale that is derived from point.x*point.y*2.

These suggestions are clearly based on the Mandelbrot formulae, and it is the last one that is problematic with regard to being conformal. It may be that this scale factor is what ultimately ruins the project, but rather than giving in maybe the modulo arithmetic can be used to to constrain it within bounds in a pseudo normalisation.

Thinking this through makes me suspicious about this last constraint being physically relevant in modeling dynamic systems. But what do I know?  :embarrass:


Title: Re: New type of fractal
Post by: Tglad on October 08, 2012, 06:15:53 AM
Quote
However you do not define scale anywhere I can see.
scale is 2
Quote
you subtract the unit vectors and normalise to give you a unit vector. There is no zero test here shown prior to the normalisation.
I don't normalise, I divide by the square magnitude. Correct, no zero test, doesn't really matter.
Quote
Bends[] are rotations and at this point we would double the rotation for a Mandelbrot outcome
bends in this code represent a bending of the space around 0,0, together with the flip they equal a distortion plus a rotation.
You can think of the contents of the for loop as a mobius transform that leaves 0,0 stationary, scales by 2 and then adds C.



Title: Re: New type of fractal
Post by: jehovajah on October 09, 2012, 04:13:12 AM
Yes, of course.. They are not normalised! This was a trick used in Fractint to specify the escape limit without tying up computational cycles! I remember now.

So the distortion introduced by bends is a vector addition, which is a combination of a rotation and an expansion/contraction. Similarly for a flip. Thus my question is are these conformal?


Title: Re: New type of fractal
Post by: Tglad on October 09, 2012, 05:04:35 AM
Quote
So the distortion introduced by bends is a vector addition, which is a combination of a rotation and an expansion/contraction
It is a translation followed by an inversion followed by a translation back... then a flip.
You can make conformal transforms out of translations, inversion+flip, rotation and scale, or any combination of those, in any order.

The +C is only conformal if the rest of the transform is conformal. So this new type is a fully conformal fractal, unlike the Mandelbox which has some stretch because the transforms can be anti-conformal, and the Mandelbulb which isn't conformal at all.
KIFS and Julia-boxes are both fully conformal as they don't use the +C.