After getting the Ducks Fractal algorithm working, I tried some variations to see what other kinds of images can be prduced using similar methods.

Using the info from Algorithmic Worlds the basic code within each pixels iteration loop is as follows;

if z.y>0 then z.y:=-z.y;

z.x:=z.x+c.x;

z.y:=z.y+c.y;

z:=Cln(z);

The first line converts Z into its complex conjugate if the imaginary component is greater than 0.

The next 2 lines add the constant C to Z.

The last line takes the log of Z.

Those steps result in z = log(Iabs(z)+p) as stated in the Algorithmic World’s blog post linked above and result in images like the following.

Variation 1 uses the following code;

if z.y>0 then z.y:=-z.y;

z.x:=z.x+c.x;

z.y:=z.y+c.y;

z:=Cln(CSin(z));

CSin is complex Sin.

Here are a few example images from using this method.

Variation 2 uses the following code;

if z.y>0 then z.y:=-z.y;

z.x:=z.x+c.x;

z.y:=z.y+c.y;

z:=Cln(Csub(z,CSec(z)));

CSub is complex subtraction and CSec is the complex cosecant.

Here are a few example images from using this method.

Variation 3 uses the following code;

if z.y>0 then z.y:=-z.y;

z:=CSin(z);

z.x:=z.x+c.x;

z.y:=z.y+c.y;

z:=Cln(z);

Here are a few example images from using this method.

Variation 4 uses the following code;

if z.y>0 then z.y:=-z.y;

z.x:=z.x+c.x;

z.y:=z.y+c.y;

z:=Cln(CSqr(z));

CSqr is the Z squared.

Here are a few example images from using this method.

All of the above images can (and really need to) be seen in much more detail high resolution images in my flickr gallery.

Ducks Fractals are now included with Visions Of Chaos.

Jason.