News: Did you know ? you can use LaTex inside Postings on fractalforums.com!

## The All New FractalForums is now in Public Beta Testing! Visit FractalForums.org and check it out!

 Pages: [1] 2   Go Down
 Author Topic: first post, something fundamental about fractal generation  (Read 5420 times) Description: 0 Members and 1 Guest are viewing this topic.
puntopunto
Alien

Posts: 28

keep it simple

 « on: March 14, 2012, 10:49:32 AM »

Hello Jesse, DarkBeam and all others

I am Dutch. I say that, so you don't have to be surprised if my English is not that perfect.

It is also my first post, not only on this forum, but on any forum. So, if anything goes wrong, well, I will learn....

Four times in my life I was, several months, really excited about a computer program.
The first program was Mathematica, for the ability to do very sophisticated symbolic math and for the arbitrarily precision.
The second was Fractint, for the incredibly fast algorithms and for the possibility of writing your own formulas.
The third was Great Stella and Stella4D. With this program you can generate (almost) all polyhedra.

And now Mandelbulb3D. Why?

The many very different images you can create. Many that are not that chaotic.
The very sophisticated possibilities of coloring, lightning and shadowing.
The unbelievable fast developments. That I found out by going a bit through the posts on this forum.

Congratulations, Jesse and Darkbeam with these achievements and thanks for the hours of pleasure I had and I will have.

There was one post, I think started by Kali, that reminds me of what I did,  something like 15 years ago with Fractint. I wanted more "straightness". This was one of the transformations that suites me:

T(x,y)=(ax2+by2+cxy,dx2+ey2+fxy)

It is an example why I think trying to put everything in complex functions, to be more precise in the representation with a+bi, is not a good starting point for fractal generation. Then everything is focused on functions that are extensions of real valued functions. But most of the let's say "point valued" functions aren't such extensions. For most parameter values of the transformations above, there is no representation with z, z2, exp(z) etc.

The above T is so obvious, someone else can have used it also. I did not look for fractals many a year, but a quick investigation on the net did not gave anything.

What does the T from above give:
Most parameter values gives a non empty set. There are all kinds of (deformed) circles. All kind of (deformed) rectangles. Line patterns. Mondrian like pictures, the Mandelbrot set, deformations of the Mandelbrot set, strange transitions from Mandelbrot set to "squareness", and more.

Here are some old Fractint pictures I still had on my disk.

I did it a bit over again in an old copy of ultra Fractal. Funny, you can see the preoccupation with the (1,i) system. You cannot declare real variables in the programming language of Ultra Fractal. But here some quick results:

Why all this on a Mandelbulb3D page?  Because based on T above, this transformation might be interesting:

T(x,y,z)=(f1(x,y,z), f2(x,y,z,f3(x,y,z)) met
fi (x,y,z)=aix2+biy2+ciz2+dixy+eixz+giyz

I know hardly anything about the3D transformations of the 3D fractal programs, but I guess that for many values of the parameters there are interesting "prisoner sets". I am gambling but I expect all possible deformations of objects that are topologically the same as a sphere, There seem to be an infinitely  number of parameter sets with a prisoner set that has the Mandelbrot set as cross section with two of the three "Axes planes". There could be all kinds of "bar/plane constructions". And who knows what else.  18 parameters is much, but  the integers between 3 and -3 seems sufficient. Writing the code, I expect would not be difficult. All functions are smooth, no discontinuities. But maybe it is leading nowhere. I think, DarkBeam it is up to you. If you give it a try, let me now.

 Logged
cKleinhuis
Fractal Senior

Posts: 7044

formerly known as 'Trifox'

 « Reply #1 on: March 14, 2012, 11:20:35 AM »

hello and welcome to the forums, might take some minutes for darkbeam to implement it
(you forgot a brace in the f2 function )
look slike a hell lot of parameters, how would you define the classical mandelbrot using your definition ?
 Logged

---

divide and conquer - iterate and rule - chaos is No random!
hobold
Fractal Bachius

Posts: 573

 « Reply #2 on: March 14, 2012, 12:13:13 PM »

Interesting idea! By the way, the most general second order polynomial in two variables has even more parameters:

q(X,Y) := a*X^2 + b*Y^2 + c*XY + d*X + e*Y + f

and is known under the name "quadric". Quadrics can be generalized to arbitrary dimensions, e.g.:

Q(X,Y,Z) := a*X^2 + b*Y^2 + c*Z^2  +  d*YZ + e*ZX + f*XY  +  g*X + h*Y + i*Z + j
(where i is not the imaginary unit, for a change)

The function values on any straight line through a quadric of arbitrary dimension form a parabola, i.e. a one dimensional polynomial of degree 2. That means if you iterate a point, the values of the orbit can stay small near the apex of the parabola, but they can also grow to infinity if they go far enough from the apex.

Sounds like good conditions for Julia- and Mandelbrot-style fractals.
 Logged
puntopunto
Alien

Posts: 28

keep it simple

 « Reply #3 on: March 14, 2012, 02:41:46 PM »

Quote from: cKleinhuis
look slike a hell lot of parameters, how would you define the classical mandelbrot using your definition ?

There is a lot of repetition in the formulas. I think that makes it a lot easier to program.

I don't know exactly what you mean with "how would you define the classical Mandelbrot using your definition". The Mandelbrot set is well defined.
If you want to know which parameter values generate the Mandelbrot set:(1,-1,0,0,0,2) in the order of the formula above.
And thanks for you welcome and you seem to have a Dutch family name
 « Last Edit: March 14, 2012, 02:48:39 PM by puntopunto » Logged
David Makin
Global Moderator
Fractal Senior

Posts: 2286

 « Reply #4 on: March 14, 2012, 04:45:48 PM »

Hello Jesse, DarkBeam and all others

<snip>

You cannot declare real variables in the programming language of Ultra Fractal. But here some quick results:
<snip>

Er   --- "float" !!!!
 Logged

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

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
DarkBeam
Global Moderator
Fractal Senior

Posts: 2512

Fragments of the fractal -like the tip of it

 « Reply #5 on: March 14, 2012, 05:19:21 PM »

For a possibly long time I wil not be able to implement anything
 Logged

No sweat, guardian of wisdom!
puntopunto
Alien

Posts: 28

keep it simple

 « Reply #6 on: March 14, 2012, 05:37:26 PM »

[quote author David Makin]Er   --- "float" !!!![/quote]

Thanks David. I didn't even know that you can declare anything in Ultra Fractal. What I ment was that if you use a variable without declaration, the program assumes it is complex. So I used x+flip(y) to go from two reals to an ordered pair.
 Logged
Jesse
Fractal Schemer

Posts: 1013

 « Reply #7 on: March 14, 2012, 06:47:28 PM »

For a possibly long time I wil not be able to implement anything

Of course, we have some years trying all possibilities with the ones you gave us so far, thanks a thousand times and hope you find some time (maybe if i finish the more general formula handling, but that needs a lot of time too)!
 Logged
David Makin
Global Moderator
Fractal Senior

Posts: 2286

 « Reply #8 on: March 14, 2012, 08:30:36 PM »

Thanks David. I didn't even know that you can declare anything in Ultra Fractal. What I ment was that if you use a variable without declaration, the program assumes it is complex. So I used x+flip(y) to go from two reals to an ordered pair.

With the older formula types the language is similar to many forms of structured basic - except for the addition of the sections i.e. init:, loop: etc. so you can use quite a number of declared types - as always it's better to declare all even if they're complex (which is the default).
Of course the predefined vars. e.g. #z, #pixel etc. require no declaration.
Although *mostly* true I think it's best not to assume vars are initialised to zero or false unless done explicitly (including array entries).
Even in the old-style formulas you can define 2 types of func - func as in a function parameter block (with the predefined option) and actual functions as in routines that can be called.
Of course the new class-based formulas (the ulb files) are essentially C++ or Java style - one thing to note is that for simplicity and speed reasons you cannot have a derived class that has two parent classes e.g. if you define a class "vehicle" you can define derived classes such as "lorry" or "car" but if you have a separate class "container" you can't define a "container lorry" class as a child of both "lorry" and "container", the best option here would be to have a "container lorry" class as either derived from "container" or "lorry" but with a "lorry" or "container" respectively as one of its variables.
 « Last Edit: March 14, 2012, 08:34:14 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
David Makin
Global Moderator
Fractal Senior

Posts: 2286

 « Reply #9 on: March 14, 2012, 08:49:23 PM »

Thanks David. I didn't even know that you can declare anything in Ultra Fractal. What I ment was that if you use a variable without declaration, the program assumes it is complex. So I used x+flip(y) to go from two reals to an ordered pair.

If x and y are default then they're complex - so x+ flip(y) actually gets you real(x)+imag(y)+flip(imag(x)+real(y)).

Edit: Unless you meant #x and #y
 « Last Edit: March 14, 2012, 08:51:55 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
Syntopia
Fractal Molossus

Posts: 681

 « Reply #10 on: March 14, 2012, 10:58:18 PM »

Hi, and welcome Puntopunto (coincidentally, my Fiat Punto broke completely down today, but I guess I can not blame your name for that).

I've also tested several quadratic forms, and just want to make a quick comment. If you use your quadratic formula:

T(x,y)=(ax2+by2+cxy,dx2+ey2+fxy)

there seems to be a large parameter space, but nearly all combinations are non-conformal - which usually results in fractals which are stretched and loses details when zooming in. If you require conformality, you end up with the constraints: a=-b=½f and e=-d=½c (since the Jacobian of a conformal transformation must be a scalar times a rotation matrix). For the normal Mandelbrot a=1, and e=0.

Now this suggest that you do have at least two free parameters, but in reality they will only rotate and scale the Mandelbrot!

Of course, it is possible to make perfectly fine non-conformal fractals, so don't let conformality stop you :-)

Wrt 3D there have been many attempts of finding a way to square a 3-component vector, and the quadratic forms have been quite well examined (I've also tested the most obvious of these).
 Logged
puntopunto
Alien

Posts: 28

keep it simple

 « Reply #11 on: March 15, 2012, 09:35:57 AM »

[quote author DarkBeam]For a possibly long time I wil not be able to implement anything[/quote]

There is much more in life. I understand perfectly. And only if you have yourself the idea that it might give interesting result, use the idea. Tomorrow, next month, next year, I really don't mind. I have a lot of respect for what you have done so far.

[quote author Syntopia]Hi, and welcome Puntopunto (coincidentally, my Fiat Punto broke completely down today, but I guess I can not blame your name for that).

I've also tested several quadratic forms, and just want to make a quick comment. If you use your quadratic formula:

T(x,y)=(ax2+by2+cxy,dx2+ey2+fxy)

there seems to be a large parameter space, but nearly all combinations are non-conformal -.............................. the quadratic forms have been quite well examined (I've also tested the most obvious of these).[/quote]

Watch out, I have some strange ^^.

Seriously, your comment is valuable. I would like to give a reaction. But, I need some time to think. Math, fractals it is all for me a long time ago.
 Logged
DarkBeam
Global Moderator
Fractal Senior

Posts: 2512

Fragments of the fractal -like the tip of it

 « Reply #12 on: March 15, 2012, 12:52:01 PM »

Of course, we have some years trying all possibilities with the ones you gave us so far, thanks a thousand times and hope you find some time (maybe if i finish the more general formula handling, but that needs a lot of time too)!

Do not cry ... There is a bit of residual hope, for now... Hope won't fade away
 Logged

No sweat, guardian of wisdom!
puntopunto
Alien

Posts: 28

keep it simple

 « Reply #13 on: March 19, 2012, 10:15:27 AM »

I promised to give a reaction on what Syntopia wrote. It took some time, also because I have a RSI problem.
[quote author Syntopia]
If you require conformality, you end up with the constraints: a=-b=½f and e=-d=½c (since the Jacobian of a conformal transformation must be a scalar times a rotation matrix
[/quote]
I didn't knew you could filter  out the angle preserving mappings. But this is nice, because these are mappings that do not interest me.

[quote author Syntopia]but nearly all combinations are non-conformal - which usually results in fractals which are stretched and loses details when zooming in.[/quote]

I find many of the non-conformal mappings interesting. They certainly have fractal properties, and they are often far away from fractals of complex functions. I like that. I think I have seen enough "brots"and spirals. For some more results it seems more appropriate to post somewhere else. What do you suggest?

Then now for 3D
Take parameter values in the T in my first post, getting
T(x,y,z)=(x2-y2-z2+pyz,2xy+qyz,2xz+ryz) with x2+y2+z2 for the bail out.
This transformation gives for z=0 : (x2-y2,2xy,0) and for y=0:  (x2-z2,0,2xz)
So for starting values in the XY plane it gives the Mandelbrot set in that plane and  for starting values in the XZ plane it gives the Mandelbrot set in that plane. They are part of the prisoner set. It could mean that the prisoner set is just the Mandelbrot set, revolving round an axes. I doubt that. If these Mandelbrots are inside the set, they are part of some internal structure. For instance, cross sections, with a coloring based on z values, can give something interesting. If they, the Mandelbrot sets, are on the boundary, then it can give an interesting bulb. So, I have the question: did you investigate this quadratic form, at least for p=q=r=0?
 « Last Edit: March 19, 2012, 10:22:16 AM by puntopunto » Logged
Syntopia
Fractal Molossus

Posts: 681

 « Reply #14 on: March 20, 2012, 10:42:12 PM »

Take parameter values in the T in my first post, getting
T(x,y,z)=(x2-y2-z2+pyz,2xy+qyz,2xz+ryz) with x2+y2+z2 for the bail out.
This transformation gives for z=0 : (x2-y2,2xy,0) and for y=0:  (x2-z2,0,2xz)
So for starting values in the XY plane it gives the Mandelbrot set in that plane and  for starting values in the XZ plane it gives the Mandelbrot set in that plane. They are part of the prisoner set. It could mean that the prisoner set is just the Mandelbrot set, revolving round an axes. I doubt that. If these Mandelbrots are inside the set, they are part of some internal structure. For instance, cross sections, with a coloring based on z values, can give something interesting. If they, the Mandelbrot sets, are on the boundary, then it can give an interesting bulb. So, I have the question: did you investigate this quadratic form, at least for p=q=r=0?

I don't know if I checked that exact form, but I've created some screenshoots with different p,q,r values. As you say, they contain the Mandelbrot set in the Z=0, and Y=0 plane. The first, the p=q=r=0 form is not very interesting, since it is a revolution object (like the Quaternion Mandelbrot set).

 x0.jpg (51.51 KB, 800x598 - viewed 331 times.)  x1.jpg (45.33 KB, 800x598 - viewed 313 times.)  x2.jpg (53.51 KB, 800x598 - viewed 308 times.)  x3.jpg (54.86 KB, 800x598 - viewed 314 times.) Logged
 Pages: [1] 2   Go Down