Wada Basins

Wada Basins are fractal patterns that emerge from repeated reflections between closely nested spheres. The simplest and most well known version is to use 4 spheres stacked into a pyramid shape (3 forming the base triangle supporting the 4th sitting on top of them). When you look into one of the gaps you get Wada Basin patterns.

This sort of setup is ideal for ray tracing. I recently started to code up a simple ray tracer and this is the initial result of simulating a Wada Basin setup. 4 reflective spheres colored red, green, blue and white with a single point light source.

Ray traced Wada Basins

Paul Bourke has more information and samples here.
Miqel.com also has some nice images of both real and raytraced Wada Basins here.

Next Christmas, grab 4 sphere shaped ornaments off the tree and make your own fractal patterns.

Jason.

3D Strange Attractors

After some experimenting, I came up with the following 5 new formulas for generating 3D strange attractors. They all use SIN and COS like Cliff Pickover did when he was creating strange attractors.

All of these formulas were found by trial and error of changing and trying new formulas. In the future it would be interesting to use a genetic/evolutionary system of randomizing formulas and trying to find interesting results automatically.

The x,y and z variables are intialized to 0. Newx, newy and newz are temporary variables to hold the new x,y and z values until the new point is calculated. The parameters in italics a to i are floating point values in the range of -1 to +1 that alter/control the resulting image.

These sample images contain up to one billion plotted points to smooth them out. Each pixel is an average of a super sampled 3×3 grid to help remove aliasing (this is similar to rendering the image at 9 times the size and then downsizing it in an image processing application). The first two samples of each formula are rendered using a z-buffer technique to give them a solid appearance. The third sample of each formula is rendered using an accumulation buffer that shades the pixels based on the number of times each pixel is hit which allows you to see the internal structure of the attractor.

Rampe1 Attractor
newx=z*sin(a*x)+cos(b*y)
newy=x*sin(c*y)+cos(d*z)
newz=y*sin(e*z)+cos(f*x)

rampe1_01

rampe1_02

rampe1_05

Rampe2 Attractor
newx=z*sin(a*x)+arccos(b*y)
newy=x*sin(c*y)+arccos(d*z)
newz=y*sin(e*z)+arccos(f*x)

rampe2_01

rampe2_02

rampe2_03

Rampe3 Attractor
newx=x*z*sin(a*x)-cos(b*y)
newy=y*x*sin(c*y)-cos(d*z)
newz=z*y*sin(e*z)-cos(f*x)

rampe3_01

rampe3_02

rampe3_03

Rampe4 Attractor
newx=x*sin(a*x)+cos(b*y)
newy=y*sin(c*y)+cos(d*z)
newz=z*sin(e*z)+cos(f*x)

rampe4_01

rampe4_02

rampe4_03

Rampe5 Attractor
newx=y*sin(a*x)+cos(b*y)+sin(c*z)
newy=z*sin(d*x)+cos(e*y)+sin(f*z)
newz=x*sin(g*x)+cos(h*y)+sin(i*z)

rampe5_01

rampe5_02

rampe5_03

All of the above images were created using Visions Of Chaos.

Jason.