Visions Of Chaos 2D Strange Attractor Tutorial

Strange Attractors are plots of simple formulas. They are created by repeating (or iterating) a formula over and over again and using the results at each iteration to plot a point. The result of each iteration is fed back into the equation. After millions of points have been plotted fractal structures appear. The repeated points fall within a basin of attraction (they are attracted to the points that make up these shapes) rather than truly being random points over the image.

If you were to plot the results of these repeated calculations as a series of numbers they would appear almost random, but once visualised as a plot to the screen, you can see the complexity these very simple equations can produce.

For the more mathematically inclined there is more detail here.

When you start the 2D Attractors mode in Visions Of Chaos the Attractors dialog has an Attractor Type dropdown at the top of the dialog. The following sections detail the formula types listed and the various options each of them has.


Fractal Dreams

Fractal Dreams Strange Attractor

The algorithm for this attractor comes from the book "Chaos In Wondeland" by Cliff Pickover. The default attractor shown above is the "Kings Dream" fractal.

The formula used to calculate the new x and y points is

xnew=sin(y*b)+c*sin(x*b)
ynew=sin(x*a)+d*sin(y*a)

The parameters a, b,c and d in the above formula control the shape the attractor will form. The values for a and b can be any floating point value between -3 and +3. The values for c and d can be any floating point value between -0.5 and +1.5. Within these ranges a virtually limitless variety of attractor shapes can emerge as the following images show.

Fractal Dreams Strange Attractor

Fractal Dreams Strange Attractor

Fractal Dreams Strange Attractor

Visions Of Chaos includes a Formula Style dropdown that modifies the original formula by Pickover by changing the sin values in the formula. These result in new attractor types.

The cos sin cos sin option changes the formulas to

xnew=cos(y*b)+c*sin(x*b)
ynew=cos(x*a)+d*sin(y*a)

Fractal Dreams Strange Attractor

Fractal Dreams Strange Attractor

Fractal Dreams Strange Attractor

The cos cos cos cos option changes the formulas to

xnew=cos(y*b)+c*cos(x*b)
ynew=cos(x*a)+d*cos(y*a)

Fractal Dreams Strange Attractor

Fractal Dreams Strange Attractor

Fractal Dreams Strange Attractor

The sin cos cos sin option changes the formulas to

xnew=sin(y*b)+c*cos(x*b)
ynew=cos(x*a)+d*sin(y*a)

Fractal Dreams Strange Attractor

Fractal Dreams Strange Attractor

Fractal Dreams Strange Attractor

The Random Parameters button randomly selects values for the a, b, c and d parameters. Not all of the random parameters make a pleasing looking image, so if you get a boring image, click Random again to try a new set of values.

Tip Tip: Click the Random Parameters button at least once so it has the default focus on the Attractors dialog. Then hold F3 and F4 with your left hand and the Enter key with your right. Pressing F3 stops the fractal image being generated, F4 is the same as clicking the Play button so it shows the options dialog and pressing Enter clicks the focused Random Parameters button. So you can use the sequence F3 F4 Enter to cycle through random values until you see an attractor shape you like. This same sequence can be used in any of the modes that have a random button.

Gingerbread Man

Gingerbread Man Strange Attractor

The Gingerbread Man attractor (named for the obvious gingerbread man like shape it creates) is a simple example that does not have any parameters to change.

The formula to create this attractor is

newx=1-y+abs(x)
newy=x

The initial x value is set to -0.1 and the initial y value is set to 0.

Gumowisk-Mira

Gumowski-Mira Strange Attractor

The Gumowski-Mira equation was developed in 1980 at CERN by I. Gumowski and C. Mira to calculate the trajectories of sub-atomic particles. It can also be used to create attractor images.

The formula to create these attractors is

t=x
xnew=b*y+w
w=a*x+(1-a)*2*x*x/(1+x*x)
ynew=w-t

The initial values for x and y can be any floating point value between -20 and +20. The a parameter can be any floating point value between -1 and +1. The b parameter should always stay close to 1. The t and w values in the formula are temp values and are not parameters to change the shape.
Here are a few more sample images of what this formula can produce.

Gumowski-Mira Strange Attractor

Gumowski-Mira Strange Attractor

Gumowski-Mira Strange Attractor

The Gumowski-Mira option also has a Random button to automatically try random values to create different attractors and shapes.

Henon

Henon Attractor

The Henon attractor is another simple example attractor without parameters to be set. It creates a folded like image that shows more folds and details the more you zoom into it.

The formula to create this attractor is

xnew=y+1-(1.4*x*x)
ynew=0.3*x

The initial value for both x and y is 1.

Here are a few sample images zooming into the above Henon attractor.

Henon Attractor

Henon Attractor

Henon Attractor

Hopalong

Hopalong Strange Attractor

The Hopalong attractor was discovered by Barry Martin.

The formula to create these attractors is

xnew=y-1-sqrt(abs(b*x-1-c))*sign(x-1)
ynew=a-x-1

The initial values for x and y are 0. The parameters a, b and c can be any floating point value between 0 and +10.
Here are a few more sample images of what this formula can produce.

Hopalong Strange Attractor

Hopalong Strange Attractor

Hopalong Strange Attractor

The Hopalong option also has a Random button to automatically try random values to create different attractors and shapes.

Ikeda

Ikeda Attractor

The Ikeda attractor is another simple example attractor without parameters to be set.

The formula to create this attractor is

temp=c1-c3/(1.0+x*x+y*y)
sin_temp=sin(temp)
cos_temp=cos(temp)
xt=rho+c2*(x*cos_temp-y*sin_temp)
ynew=c2*(x*sin_temp+y*cos_temp)
xnew=xt

The initial value for both x and y are 0.1.

Here are a few sample images zooming into the above Ikeda attractor.

Ikeda Attractor

Ikeda Attractor

Ikeda Attractor

Lorenz

Lorenz Attractor

Edward Lorenz came up with these formulas when trying to simulate a simplified model of the weather. When he changed his initial values by a few decimal places (something like a difference of 0.000001) he found the results after a short time varied significantly from his original results. This showed how in iterated systems a minute initial change will rapidly change the results (sensitive dependency on initial conditions). This is also how the term butterfly effect came about. The Lorenz attractor is plotted in a different way to the previous attractors. At each stage of the iteration a line is drawn between the last and new point. This results in the double-looping shape you see above. The looping pattern can repeat for ever and will never cross the same previous path. It seemingly at random loops between the two halves.

The formula to create this attractor is

dt=0.015
newx=x-(a*x*dt)+(a*y*dt)
newy=y+(b*x*dt)-(y*dt)-(z*x*dt)
newz:=z-(c*z*dt)+(x*y*dt)

The initial value for x, y and z are 1. Only the x and y values are used to plot the 2D image of the plot to the screen.

Here are a few sample images of the Lorenz Attractor.

Lorenz Attractor

Lorenz Attractor

Lorenz Attractor

The Lorenz Attractor really needs to be seen as the image plots. Still images do not show the way the plot varies between the two sides of the attractor.

The Lorenz dialog also has a checkbox for Plot Graph Points. This allows you to watch how the values change as the formula is iterated.
Popcorn

Popcorn Attractor

The Popcorn attractor also comes Cliff Pickover.

The formula to create these attractors is

newx=x-h*sin(y+tan(tangentfactor*y))
newy=y-h*sin(x+tan(tangentfactor*x))

Each point on the display area is used for the starting X and Y values. The xnew and ynew values are repeated for a number of iterations. The tangent factor value changes the detail of the images created.

Here are a few more sample images of what this formula can produce.

Popcorn Attractor

Popcorn Attractor

Popcorn Attractor

QuadrupTwo

QuadrupTwo Attractor

The formula to create these attractors is

newx=y-sgn*sin(ln(abs(b*x-c)))*arctan(tmp*tmp)
newy=a-x

The initial values for x and y are both 0. For the above image a=34, b=1 and c=5. These parameters can be changed to make other attractors as in the following samples.

QuadrupTwo Attractor

QuadrupTwo Attractor

QuadrupTwo Attractor

Rossler

Rossler Attractor

The Rossler attractor is plotted in the same way as the Lorenz Attractor. Lines are drawn between the successive points during iteration.

The formula to create these attractors is

xDelta=Step*(-y-z)
xNext=x+xDelta
yDelta=Step*(x+a*y)
yNext=y+yDelta
zDelta=Step*(b+z*(x-c))
zNext=z+zDelta

The initial values for x, y and z are 0.1. The a, b and c parameters can be changed to create new plot shapes.

Here are a few more sample images of what this formula can produce.

Rossler Attractor

Rossler Attractor

Rossler Attractor


Symmetric Icons

Symmetric Icon Attractor

These attractors came from the book "Symmetry in Chaos" by Michael Field and Martin Golubitsky. They give symmetric results to the attractors formed.

zzbar=sqr(x)+sqr(y)
p=alpha*zzbar+lambda
zreal=x
zimag=y
for i=1 to degree-2 do
begin
za=zreal*x-zimag*y
zb=zimag*x+zreal*y
zreal=za
zimag=zb
end
zn=x*zreal-y*zimag
p=p+beta*zn
xnew=p*x+gamma*zreal-omega*y
ynew=p*y-gamma*zimag+omega*x
x=xnew
y=ynew

The initial values for x and y are 0.01. The Lambda, Alpha, Beta, Gamma, Omega and Degree parameters can be changed to create new plot shapes.

Here are a few more sample images of what this formula can produce.

Symmetric Icon Attractor

Symmetric Icon Attractor

Symmetric Icon Attractor

Symmetric Icon Attractor

Symmetric Icon Attractor

There is also a Random button to look for new shapes and a Preset Rules dropdown that covers the main samples in the book.

Tinkerbell

Tinkerbell Strange Attractor

The Tinkerbell Attractor is another example of a strange attractor. The origin of the name may have come from the shape that Tinkerbell makes at the start of Disnety movies.

The formula to create these attractors is

xnew=sqr(x)-sqr(y)+(a*x)+(b*y)
ynew=(2*x*y)+(c*x)+(d*y)

The initial values for x and y start at 0.01. The paramaters a, b, c and d change the shape of the attractor.

Here are a few more sample images of zooms into the above image.

Tinkerbell Strange Attractor

Tinkerbell Strange Attractor

Tinkerbell Strange Attractor

Other Paarmeters

For all the attractor types there are a few settings at the bottom of the dialog that effect all the attractors.

Black and White Display Mode - This results in the attractor points being black and the background being white. Shows no shading within the structure.



Color Palette Display Mode - Uses the color palette to shade the image by the number of times each attractor point is hit. The problem with this is that certain points within attractors are hit more than others, so it results in areas of high hits losing details.



Log Scale Palette Display Mode - Uses the color palette to shade the image by the number of times each attractor point is hit, but then scales the hit counts logarithmically. This gives the most accurate results and is the default display mode for all the attractor types.



Points Per Update - Sets how many hits the image gets before updating the display. For most types the default of 1,000,000 is fine. For the Lorenz and Rossler you may want to drop this to 1 or 10 to be able to see the plots as they are created.

Create AVI Frames - Saves each update of the display as a movie frame file that can then be combined into an AVI movie.

Tip Tip: The best color palettes to use to render attractors are smooth shades between black and another shade. Good example palettes of this style are the ifs01 etc color palettes.