Reviving an old topic and fractal from the old Fractalforums - Mobius Mandelbrot

  • 44 Replies
  • 998 Views

0 Members and 1 Guest are viewing this topic.

Offline FractalAlex

  • *
  • Fractal Fluff
  • *****
  • Posts: 373
  • Experienced root-finding method expert
« on: May 23, 2020, 02:38:37 PM »
It's been over 7 years since it hasn't been touched, but the Mobius Mandelbrot fractals should have more attention. This topic was started by Hiato, and I'd love to revisit it with more detail.
http://www.fractalforums.com/mandelbrot-and-julia-set/m-set-on-a-partialtotal-mobius-cylinder-looks-neat/
This fractal was also part of a plugin pack for Fractal eXtreme. Some time ago, I tried to replicate the fractals on ManpWIN, but with no success.
Here are some images of the Mobius Mandelbrot fractals, taken from the old forums.


To Claude: also, I know if it's not the right place for requests, but it would be nice to make these fractals candidates for conversion in Kalles Fraktaler...

Linkback: https://fractalforums.org/share-a-fractal/22/reviving-an-old-topic-and-fractal-from-the-old-fractalforums-mobius-mandelbrot/3512/
« Last Edit: May 23, 2020, 05:39:55 PM by FractalAlex »
"I am lightning, the rain transformed."
- Raiden, Metal Gear Solid 4: Guns of the Patriots

Offline FractalAlex

  • *
  • Fractal Fluff
  • *****
  • Posts: 373
  • Experienced root-finding method expert
« Reply #1 on: May 23, 2020, 08:00:34 PM »
Another, zoomed in image:

Here is the source code attachment below.

Offline FractalAlex

  • *
  • Fractal Fluff
  • *****
  • Posts: 373
  • Experienced root-finding method expert
« Reply #2 on: May 23, 2020, 09:45:35 PM »
« Last Edit: May 23, 2020, 09:56:41 PM by FractalAlex »

Offline C0ryMcG

  • *
  • Uploader
  • *
  • Posts: 241
« Reply #3 on: May 24, 2020, 12:31:12 AM »
This one is very exciting! I like how tweakable it is...
It took me a while to get the mobius cylinder transform described in that link to work like the original author intended... I was thinking too much along the lines of a Modulo function. What is actually happening in the poster's code snippet is that the point, wherever it is, moves 2R units closer to the origin if it escapes from R, which means it can still be very far away from 0 after one transformation. Using more modulo-like equations resulted in some very interesting noise, but it was definitely noise.

Here's what eventually worked for me, in javascript:
Code: [Select]
for(var i = 0; i < userSettings.iterations;i++){
//perform the iteration
z = cAdd(cSquare(z),c);
//transform the Z location using Mobius Cylinder calculation
var dist = Math.abs(z.r)-r;
if (z.r>r) {
z.r = dist-r;
z.i*=-1;
}else if (z.r<0-r) {
z.r=r-dist;
z.i*=-1;
}
if(isValidC(z)) results.push(z);
}

Then I let R be selected by the user (Me, in most cases) and enjoy the results!

Offline FractalAlex

  • *
  • Fractal Fluff
  • *****
  • Posts: 373
  • Experienced root-finding method expert
« Reply #4 on: May 24, 2020, 12:37:01 AM »
It would be a nice addition to Kalles Fraktaler, indeed. But perhaps Claude may do something about it in the very near future... that is unless the Mobius cylinder could be something very challenging, even for perturbation and series approximation, to implement. For now, explain me what is (z.r)?, because .frm files work very differently from your syntax used in Javascript.
« Last Edit: May 24, 2020, 01:17:02 AM by FractalAlex »

Offline C0ryMcG

  • *
  • Uploader
  • *
  • Posts: 241
« Reply #5 on: May 24, 2020, 02:54:17 AM »
Sure, I can explain that. z.r and z.i are simply the real and imaginary aspects of the numbers.

First of all, Javascript is losely typed. So for complex numbers, I keep Z and C as objects, ie arrays with named values rather than just numbered ones. So an initial value of Z would be {r: screen.x, i: screen.y}. I didn't include those parts in my code snippet because many programs seem to have functions to set up all that ahead of time and accept formula code separately.

For performing the complex operations, I've written some functions that handle all the basics. cSquare(a) does a complex square, cAdd(a, b) simply adds two complex numbers, and there's a whole bunch more.

I've seen other syntaxes (Syntaces?) use functions like Real(z) in place of my z.r. 

Offline FractalAlex

  • *
  • Fractal Fluff
  • *****
  • Posts: 373
  • Experienced root-finding method expert
« Reply #6 on: May 24, 2020, 11:02:18 AM »
Thanks! I see that r is a parameter that is customizable. So, z.r and real(z) are the same thing, it's only the syntax that's different. The same statement is true for imag(z) and z.i. I got it. Question: what happens if r is a complex number (e. g. : 0.647-0.333i)? I wonder what would it look like... And what are the asterisks between the z.i's and the equal signs?
« Last Edit: May 24, 2020, 11:41:51 AM by FractalAlex »

Offline C0ryMcG

  • *
  • Uploader
  • *
  • Posts: 241
« Reply #7 on: May 25, 2020, 02:30:01 AM »
Thanks! I see that r is a parameter that is customizable. So, z.r and real(z) are the same thing, it's only the syntax that's different. The same statement is true for imag(z) and z.i. I got it. Question: what happens if r is a complex number (e. g. : 0.647-0.333i)? I wonder what would it look like... And what are the asterisks between the z.i's and the equal signs?

Oh, I must have been feeling lazy that day. Normally I would have written it out as human-readable z.i = z.i*-1. It's a shorthand, usually seen with +, but works with other operations too.
But, if I WAS writing it out, I'd probably have just written z.i=0-z.i, because I think subtraction is more efficient than multiplication (don't quote me on that, though!)

if the adjustable parameter r (which stands for Radius in my head, by the way) were a complex number, the "mobius cylinder" function would have to be reconsidered, and probably would have a completely different result. As it is now, you can picture the setup as a vertical strip, 'r' distance from either side of 0,0, going to infinity, and any point that orbits out of that strip gets sucked back in by 2r, and flipped vertically. So if we made that a square instead... or a circle even, we'd need  to decide what happens when a point orbits too high, too sideways, or both too high and too sideways. There are some obvious answers, but this would be a new fractal, not an alteration of this currently-discussed one.

Still, I could try it out on my system, and we could see if it's any fun or not!


Offline FractalAlex

  • *
  • Fractal Fluff
  • *****
  • Posts: 373
  • Experienced root-finding method expert
« Reply #8 on: May 25, 2020, 02:52:00 AM »
Oh that's fine. I posted a feature request for Kalles Fraktaler, and Claude would be happy if he included the Mobius Mandelbrot, but it needs more research, as explained here:
I'd be happy to include Mandelbrot Moebius (three variations: left, right, both; reusing "factor a" real part for the reflection distance).  But it needs some research (any volunteers?) on how to do the perturbation, particularly if the reference orbit gets close to a fold point (see the diffabs() function constructed by laser blaster for burning ship etc).  Want to get the next KF out soon (this month), so probably won't be in this release.
Perhaps you could help him? While I'm at it, is there a Burning Ship variant with such transformation?

Offline C0ryMcG

  • *
  • Uploader
  • *
  • Posts: 241
« Reply #9 on: May 25, 2020, 03:45:04 AM »
Hm, I haven't dabbled with Perturbation yet, so I don't think I could be much help at the moment. It's something I should learn, of course. And yeah, the same concept should in theory be able to be applied to any fractal algorithm... I've been thinking about adding it as a general option in my javascript program... Of course, it wouldn't be just this one effect, but maybe a selection of transformations... Mutations? And then they could be applied to any formula.

Offline 3DickUlus

  • *
  • Administrator
  • *******
  • Posts: 1866
    • Digilantism

Offline C0ryMcG

  • *
  • Uploader
  • *
  • Posts: 241
« Reply #11 on: May 25, 2020, 05:26:30 AM »
Well, 3Dickulus beat me to it, because I got distracted between writing the code and hitting the 'send' button. That looks like the formu Radius 1. I also think Radius 1.5 looks pretty interesting.

Offline FractalAlex

  • *
  • Fractal Fluff
  • *****
  • Posts: 373
  • Experienced root-finding method expert
« Reply #12 on: May 25, 2020, 04:14:12 PM »
Are there more abs() variants and multibrot variants as well? (e.g.: cubic Mandelbrot, Celtic, Buffalo and Tricorn/Mandelbar)

Offline 3DickUlus

  • *
  • Administrator
  • *******
  • Posts: 1866
    • Digilantism
« Reply #13 on: May 26, 2020, 12:55:34 AM »
the Mobius mandel is a standard mandelbrot with (in layman's terms) a cylinder plot so I imagine that all mandelbrot variants would apply except maybe the bulb variant because that's spherical, unless one can plot the cylinder part to a sphere ??? beyond my math skills to figure that out.

edit: I know just enough to understand that the poles would be the ends of the cylinder ?
« Last Edit: May 26, 2020, 01:15:22 AM by 3DickUlus »

Offline C0ryMcG

  • *
  • Uploader
  • *
  • Posts: 241
« Reply #14 on: May 26, 2020, 05:22:02 AM »
I imagine this system a little differently. I think the cylinder is a sort of metaphor to explain the added point transformation (which I'm going to refer to as a Mutation until someone suggests a better name for it.) The original poster described it like wrapping the complex plane into a mobius strip with infinite height.
Maybe it's my background in game production, but I don't find this to be a completely useful mental trick. What I like much better is to think of this system as a regular fractal renderer, where it keeps track of orbits, but the areas outside of the radius are Triggers, and the system tries (sometimes unsuccessfully) to push the point back into the 'legal zone'.

So this could be done with mandelbulb-like systems too, I'm sure, either by creating four triggers instead of two (like four walls around a room) or by making the radius still behave like a radius and have an inverted cylinder trigger. Then just move the point inwards based on... well, that part gets complicated.


lamp
Collaboration between Fractalforums, Mandelbulbmaniacs and Fractal Institute

Started by Fraktalist on Collaboration Team Discussion

8 Replies
2653 Views
Last post May 26, 2019, 09:05:42 PM
by artworkbygnbarnes
exclamation
Fractal Image Threads - a different way to present your images at Fractalforums

Started by Fraktalist on Image Threads

23 Replies
5871 Views
Last post December 10, 2018, 04:48:00 AM
by 3DickUlus
clip
True Mobius

Started by mrrudewords on Share a fractal

1 Replies
129 Views
Last post October 26, 2020, 09:22:10 PM
by mrrudewords
grin
Hello, first topic

Started by iyadahmed on Meet & Greet

1 Replies
108 Views
Last post April 09, 2020, 03:35:55 PM
by hobold
question
Upload limits per day for Main and User Galleries (Sticky Topic/Post)

Started by Anon on Discuss Fractalforums

3 Replies
409 Views
Last post February 17, 2018, 08:13:59 PM
by 3DickUlus