Quantum Fractal Generator

[unstoopid_include ids=”374″]

By Arkadiusz Jadczyk & Jason

Sept 10, 2013 Work in progress: Added no–log/log10 option. Implemented Frobenius-Perron algoritm for “para”, added experimental “Make 3D” (works best with Frobenius-Perron and resolution ca. 100. Otherwise it is buggy). These new options are not yet explained in the User Guide.

User guide (preliminary):

1) Select the algorithm: “Chaos Game” or “Frobenius Perron

2a) For Chaos Game set the number of Iterations (or accept the default to get the idea)
2b) For Frobenius-Perron set the level (level 3 and beyond may take lot of time). Level 0 produces constant color. Level 1 produces vertices. Level 2 produces their children, level 3 – grandchildren etc. Experimental and still with bugs: If you select Frobenius-Perron Fractal Algorithm, and if you have a multi-core processor, you can set the number of parallel threads to work on the problem.

3) Choose Fractal Type (each consecutive fractal type offers more vertices)

4) Choose display type: either spherical or stereographic (on the plane). If you choose stereographic, set XY limit. It sets the dimension of the central square on the (X,Y) plane that you will see. Points on the sphere that stereographically project beyond this square will be discarded (for Chaos Game) or not computed (Frobenius-Perron). For the Chaos game to get sufficiently
many points in the square you will have to increase the number of iterations).

4) Set Alpha. Alpha close to 0 produces a uniform noise. Alpha close to 1.0 produces only the vertices.

5) Decide on resolution and canvas width

6) Generate Observe the progress bar (several bars for multithreading).

7) Once the image is generated, you can experiment changing the Color Scheme and then using Redraw.

8) Once the image is ready you can copy or save it as a file.

Comment: Frobenius-Perron is not yet implemented for “para”.


Quantum fractals live on the sphere of radius 1. That is where we plot them in the simplest version. Only the North hemisphere is drawn, viewed from above.

Each fractal is generated using a family (finite number) of Lorentz transformations used in Special Relativity. They act on the sphere as Möbius transformations. Every Lorentz matrix can be decomposed into a boost and a rotation. (There is a subtle difference between a “transformation” and a “matrix”. Transformation affects space-time points. Matrix represents a given transformation in a fixed reference frame). Boost is characterized by its direction and its velocity. Rotation is characterized by its direction and the angle of rotation around this direction. Interesting fractals are generated only at the velocities close to the speed of light. Therefore, in order not to play with parameters like 0.9997 c, another parameter is being used: alpha, also between 0 and 1, so that interesting fractals arise somewhere between 0.5 and 0.9. It is then translated into velocity in the uneditable velocity box.

For Platonic fractals family we have transformations with the same velocity, but different directions (towards the vertices of the corresponding Platonic solid)

For “para” family we have 24 boost directions (binary octahedral group symmetry), but after each boost there follows rotation with respect to the axis that is perpendicular to the boost direction and the rotation angle is automatically determined by the boost velocity. The corresponding transformation is parabolic. Thus the name “para”.

Platonic quantum fractals: quantum tetrahedron, octahedron, cube, icosahedron and dodecahedron have the symmetry of the corresponding Platonic solid.

Platonic solids

For the Chaos Game, the algorithm generating the fractal works as follows (we take the tetrahedron as the example): We have four vertices of the tetrahedron inscribed into the sphere. Each of these four vertices defines a certain transformation that shifts the points of the sphere towards this vertex. So, given a point on the sphere, it will move closer to the active vertex. Random algorithm selects the active vertex with equal probabilities = 1/4 (in the case of the tetrahedron). The point moves (jumps). Then the next random choice is being made. And so on – the number of iterations is the number of jumps. Some regions of the sphere will be visited more often than other. That is how the coloring is done.

The shape of the transforming functions depends on the value of the parameter alpha. For alpha = 0 we have identity transformation. For alpha small, points almost do not move. As the result a chaotic pattern is generated. For alpha close to 1 they are strongly attracted by the vertices, The image becomes concentrated very close to the vertices. Interesting patterns arise somewhere between the two extremes.

Number of vertices (transformations in the IFS): tetra(4), octa(6), cube(8), ico(12), dode(20).

“Velocity” box simply translates the value of alpha into relativistic velocity corresponding to the transformations:

v = 2 alpha / sqrt( 1 + alpha^2 )

Velocity 0.99 means “relativistic aberration” (shift of position) corresponding to 0.99 of the speed of light”.

„Para” stands for the „Parabolic quantum fractal”. It is different. It is based on 24 transformations selected randomly, but the transformations involve not only the attraction but also rotations.

Remark: For a while “para” is insensitive to the value of alpha. It will be fixed.

Frobenius-Perron stands for a different way of generating a smooth (rational function) approximation to the fractal attractor (more precisely: to the invariant fractal measure). It using deterministic recursion (specified in recursion level) instead of random iterations.

The term “quantum” comes from the fact that an alternative interpretation of these fractals (alternative to the relativistic light aberration interpretation) is in terms of spin 1/2 quantum measurements and quantum jumps on the Bloch sphere.

To be continued.

Leave a Reply