N-DIMENSIONAL DETERMINISTIC FRACTAL SETS
(MandelBulb, JuliaBulbs and beyond...)
Jean-François COLONNA
CMAP (Centre de Mathématiques APpliquées), Ecole Polytechnique, CNRS
91128 Palaiseau Cedex
France
[Site Map, Help and Search [Plan du Sîte, Aide et Recherche]]
[The Y2K bug [Le bug de l'an 2000]]
[Do you believe that Real Numbers exist for a computer and that floating point computations are safe?]
[Please, visit A Virtual Space-Time Travel Machine, the place where you can find more than 3320 pictures between Art and Science]
(this page was created on 12/24/2009)
(this page -belonging to the CMAP28 site- was last updated on 03/17/2010 09:35:42 -CET-)
[en français]
Abstract: Is it possible to extend the complexity of bidimensional fractal deterministic sets
in tri- and four-dimensional spaces? What are "MandelBulb" and "JuliaBulb"s?
Is it possible to "mix" deterministic and non deterministic fractal sets?
Iterations are fundamental!
Keywords: Fractal Geometry, Deterministic Fractal Sets, MandelBulb, JuliaBulb.
Contents of this page:
Preliminary remark: These fractal sets are dubbed
deterministic for no random process
is used mathematically speaking (contrary to
non deterministic fractals).
After all, their computations are non linear ones and then are subject to
rounding-off errors that can produce random-like artifacts.
1-BIDIMENSIONAL DETERMINISTIC FRACTAL SETS:
Since many years, bidimensional deterministic fractal sets are well known
for they exhibits wonderful and mysterious structures at all scales.
All these sets are computed iterating functions in the complex plane:
Z = f(Z )
n+1 n
Most of the time, these functions are polynomials of the second degree:
Let's explain in this particular case the meaning of to iterate.
For each point 'C' of a rectangular domain of the complex plane,
one study the evolution of the following set of points:
Z = C
0
2 2
Z = Z + A = C + A
1 0
2 2 2
Z = Z + A = (C + A) + A
2 1
2 2 2 2
Z = Z + A = ((C + A) + A) + A
3 2
2 2 2 2 2
Z = Z + A = (((C + A) + A) + A) + A
4 3
etc...
There are two possibilities: this set of points goes to infinity, or it
stays in the neighbourhood of the origin and then the point 'C' belongs to
the Julia set J(A).
By the way any function can be used
and for example the Riemann Zeta function
.
The colors of each points is chosen according to the number n+1 of iterations done
or again to the argument (the 'thêta' in the following lines)
of the last Z(n+1) computed. Tridimensional rendering can
be done using the number n+1 of iterations as a third dimension
.
2-QUADRIDIMENSIONAL DETERMINISTIC FRACTAL SETS:
Real numbers can be viewed as labels of the straight line points.
Complex numbers can be viewed as labels of the plane points.
A complex number is an ordered set of two real numbers.
For many years mathematicians were looking for new numbers that could have labeled
the tridimensional space: their quest was unsuccessful due to the definition of their product.
William Hamilton discovered it can done "jumping" in the fourth dimension:
the quaternionic numbers
were born and defined as an ordered set of two complex numbers
(by the way, the next step is the eighth dimension...).
In order to generalize the wondeful and mysterious structures of the fractal sets in
the complex plane, it is an obvious idea to use the quaternionic numbers.
It can be done, but unfortunately the results are disappointing: for example,
a tridimensional cross-section inside the quatenionic Mandelbrot set
exhibits a high symmetry and no tridimensional structures at all levels as expected
as can be seen with this zooming in
.
3-"TRUE" QUADRIDIMENSIONAL DETERMINISTIC FRACTAL SETS:
Let's recall the complex number arithmetics. The addition ('+') of two complex numbers
{x1,y1} and {x2,y2} is defined as:
{x ,y }+{x ,y } = {x +x ,y +y }
1 1 2 2 1 2 1 2
The multiplication ('*') is a little more complicated:
{x ,y }*{x ,y } = {x *x - y *y ,x *y + x *y }
1 1 2 2 1 2 1 2 1 2 2 1
If using the polar coordinates instead of the cartesians coordinates
('R' and 'T' meaning 'Rho' and 'Thêta' respectively),
it looks much more simple:
{R ,T }*{R ,T } = {R *R ,T +T }
1 1 2 2 1 2 1 2
with:
x = R *cos(T )
i i i
y = R *sin(T )
i i i
In particular, the square of a complex number is then:
2 2
(R,T) = (R ,2*T)
In the past few years, Daniel White had the great idea to extend this process
in a tridimensional space. Ordered sets of three real numbers (x,y,z) are then defined
as well as their addition and multiplication as follows:
{x ,y ,z }+{x ,y ,z } = {x +x ,y +y ,z +z }
1 1 1 2 2 2 1 2 1 2 1 2
{R ,T ,P }*{R ,T ,P } = {R *R ,T +T ,P +P }
1 1 1 2 2 2 1 2 1 2 1 2
with:
x = R *cos(P )*sin(T )
i i i i
y = R *sin(P )*sin(T )
i i i i
z = R *cos(T )
i i i
('R', 'T' and 'P' being the three spherical coordinates 'Rho', 'Thêta' and 'Phi' respectively).
In particular, the n-th power of such a set of three reel numbers is then:
n n
(R,T,P) = (R ,n*T,n*P)
this formula being the basis of most of the pictures then obtained.
I did generalize this idea in a four-dimensional space for the following reasons:
- All that I have done for quaternionic numbers
can be used; it suffices
to define a new multiplication and to
add a boolean allowing to switch between the theoretical multiplication and the new one.
- A four dimensional space includes bi- and tridimensional spaces.
- At last, this opens doors to metamorphoses as can be seen
later with a Julia set.
This new multiplication (dubbed multiplication for the sake of simplicity)
is defined as:
{R ,T ,P ,A }*{R ,T ,P ,A } = {fR(R ,R ),fT(T ,T ),fP(P ,P ),fA(A ,A )}
1 1 1 1 2 2 2 2 1 2 1 2 1 2 1 2
'R', 'T', 'P' and 'A' being the four hyperspherical coordinates 'Rho', 'Thêta', 'Phi' and 'Alpha' respectively:
x = R *cos(P )*sin(T )*sin(A )
i i i i i
y = R *sin(P )*sin(T )*sin(A )
i i i i i
z = R *cos(T )*sin(A )
i i i i
t = R *cos(A )
i i i
and the four arbitrary functions (as it will be exhibited later)
'fR', 'fT', 'fP' and 'fA' being defined by default with:
fR(R ,R ) = R * R
1 2 1 2
fT(T ,T ) = T + T
1 2 1 2
fP(P ,P ) = P + P
1 2 1 2
fA(A ,A ) = A + A
1 2 1 2
in order to be compatible with the complex multiplication as well as with the Daniel White's results.
This gives birth to pseudo-quaternionic numbers.
With my definitions, the multiplication is the basic process, when the integer exponentiation
is a secondary one. That means that when computing the n-th power of a pseudo-quaternionic number,
the four preceding functions are applied n-1 times. For Daniel White, the integer exponentiation
is a basic process and his equivalent functions are applied only one time. That can lead to very
different results!
It is noteworthy that all these programs are included in a general software
environment that allows the dynamical redefinition of the elementary arithmetical operations used
(for more information -in french-)
thus adding much more flexibility and possibilities.
Here are some examples with the following notations:
- 'q' (=(x,y,z,t)=(R,T,P,A)) denotes a pseudo-quaternionic number,
- 'qA' and 'qC' are respectively a pseudo-quaternionic parameter and the current point,
- a polynomial 'P' of the first degree is written 'P(q) = 1*q + ...' in order to force a multiplication.
:
this Mandelbrot set is a tridimensional cross-section
(using the t=0.1 hyperplane) and was computed with
a polynomial 'P' of the second degree and the following four functions:
2
P(q) = q + q
C
fR(R ,R ) = R *R
1 2 1 2
fT(T ,T ) = 2*(T +T ) + pi
1 2 1 2
fP(P ,P ) = 2*(P +P ) + pi
1 2 1 2
fA(A ,A ) = A +A
1 2 1 2
Its bird's-eye view
looks like a snow flake
with 5 spikes. It was computed using a polynomial 'P' of the second degree.
For polynomials of the third, fourth, fifth and sixth degree,
the numbers of spikes are
13 (=5*2+3),
29 (=13*2+3),
61 (=29*2+3) and
125 (=61*2+3) respectively.
:
this Mandelbrot set is a tridimensional cross-section
(using the t=0 hyperplane) and was computed with
a polynomial 'P' of the eighth degree and the following four functions:
8
P(q) = q + q
C
fR(R ,R ) = R *R
1 2 1 2
fT(T ,T ) = 1*(T +T ) + pi
1 2 1 2
fP(P ,P ) = 2*(P +P ) + pi
1 2 1 2
fA(A ,A ) = A +A
1 2 1 2
:
this Mandelbrot set is a tridimensional cross-section
(using the t=0 hyperplane) and was computed with
a polynomial 'P' of the second degree and the following four functions:
2
P(q) = q + q
C
fR(R ,R ) = R *R
1 2 1 2
fT(T ,T ) = 1*(T +T ) + pi
1 2 1 2
fP(P ,P ) = 2*(P +P ) + pi
1 2 1 2
fA(A ,A ) = A +A
1 2 1 2
:
this Mandelbrot set is a tridimensional cross-section
(using the t=0 hyperplane) and was computed with
a polynomial 'P' of the first degree and the following four functions:
P(q) = 1*q + q
C
8
fR(R ,R ) = (R *R )
1 2 1 2
fT(T ,T ) = 8*(T +T )
1 2 1 2
fP(P ,P ) = 8*(P +P )
1 2 1 2
fA(A ,A ) = A +A
1 2 1 2
:
this Mandelbrot set is a tridimensional cross-section
(using the t=0.7 hyperplane) and was computed with
a polynomial 'P' of the first degree and the following four functions:
P(q) = 1*q + q
C
8
fR(R ,R ) = (R *R )
1 2 1 2
fT(T ,T ) = 8*(T +T )
1 2 1 2
fP(P ,P ) = 8*(P +P )
1 2 1 2
fA(A ,A ) = 8*(A +A )
1 2 1 2
:
this Julia set is a tridimensional cross-section
(using the t=0 hyperplane) and was computed with
a polynomial 'P' of the second degree and the following four functions:
2
P(q) = q + {-0.5815147625160462,+0.6358885017421603,0,0}
fR(R ,R ) = R *R
1 2 1 2
fT(T ,T ) = T +T
1 2 1 2
fP(P ,P ) = P +P
1 2 1 2
fA(A ,A ) = A +A
1 2 1 2
:
this Julia set is a tridimensional cross-section
(using the t=0 hyperplane) and was computed with
a polynomial 'P' of the first degree and the following four functions:
P(q) = 1*q + {-0.5815147625160462,+0.6358885017421603,0,0}
3
fR(R ,R ) = (R *R )
1 2 1 2
fT(T ,T ) = 3*(T +T )
1 2 1 2
fP(P ,P ) = 3*(P +P )
1 2 1 2
fA(A ,A ) = A +A
1 2 1 2
:
this Julia set is a tridimensional cross-section
and was computed with
a polynomial 'P' of the first degree and the following four functions
('Fractal(x,y,z,t)' is a non deterministic fractal function with value
inside [2,12] identical to the ones that are used
to generate and animate mountains and clouds):
P(q) = 1*q + {0,1,0,0}
Fractal(x,y,z,t)
fR(R ,R ) = (R *R )
1 2 1 2
fT(T ,T ) = 5*(T +T )
1 2 1 2
fP(P ,P ) = 8*(P +P )
1 2 1 2
fA(A ,A ) = 11*(A +A )
1 2 1 2
It is an original mixing between deterministic and non deterministic fractals.
:
this Julia set is a tridimensional cross-section
and was computed with
a polynomial 'P' of the first degree and the following four functions
('Fractal(x,y,z,t)' is a non deterministic fractal function with value
inside [2,12] identical to the ones that are used
to generate and animate mountains and clouds):
P(q) = 1*q + {0,1,0,0}
Fractal(x,y,z,t)
fR(R ,R ) = (R *R )
1 2 1 2
fT(T ,T ) = Fractal(x,y,z,t)*(T +T )
1 2 1 2
fP(P ,P ) = Fractal(x,y,z,t)*(P +P )
1 2 1 2
fA(A ,A ) = Fractal(x,y,z,t)*(A +A )
1 2 1 2
It is an original mixing between deterministic and non deterministic fractals.
:
This metamorphosis made of sixteen pictures is obtained using a rotation
in the quadridimensional space of the tridimensional cross-section
inside a Julia set computed with
a polynomial 'P' of the first degree and the following four functions:
P(q) = 1*q + {-0.5815147625160462,+0.6358885017421603,0,0}
2
fR(R ,R ) = (R *R )
1 2 1 2
fT(T ,T ) = 2*(T +T )
1 2 1 2
fP(P ,P ) = 2*(P +P )
1 2 1 2
fA(A ,A ) = 2*(A +A )
1 2 1 2
:
This metamorphosis made of sixteen pictures is obtained using a rotation
in the quadridimensional space of the tridimensional cross-section
inside a Julia set computed with
a polynomial 'P' of the third degree and the following four functions:
2 3
P(q) = 1*q - q + q + {-0.5815147625160462,+0.6358885017421603,0,0}
2
fR(R ,R ) = (R *R )
1 2 1 2
fT(T ,T ) = 2*(T +T )
1 2 1 2
fP(P ,P ) = 2*(P +P )
1 2 1 2
fA(A ,A ) = 2*(A +A )
1 2 1 2
4-ITERATIONS ARE FUNDAMENTAL:
One more time these "experiments" show that the notion of iteration is fundamental
allowing to go from the simple to the complex using elementary rules.
It is a well known thing with the study of
cellular automata or again with the one of the
random walk.
This new family of N-dimensional fractals is here to confirm this fact.
5-PICTURE GALLERY:
5.1-MandelBulbs:
5.2-JuliaBulbs:
5.3-Miscellaneous Sets:
Copyright (c) Jean-François Colonna, 2009-2010.
Copyright (c) CMAP (Centre de Mathématiques APpliquées) / Ecole Polytechnique, 2009-2010.