I am so jealous now.

I went to Elbrus not long ago, and swore I’d come back and walk over to Svanetia.

What a fantastic place. Have a great time Tony

 

From: fractint-bounces+padski=padski.com@mailman.xmission.com [mailto:fractint-bounces+padski=padski.com@mailman.xmission.com] On Behalf Of Tony Hanmer
Sent: Friday, April 20, 2007 7:42 AM
To: Fractint and General Fractals Discussion
Subject: [Fractint] Squares

 

(I was intending to make this announcement with the next full release of Fractint.  But I am likely to be moving soon from the capital of the Republic of Georgia, Tbilisi, to Georgia's (and Europe's) highest village, Ushguli, a place which does have good electricity but has no easy or cheap internet solutions.  I'll be accessing the internet solely through my cellphone, and leaving my desktop computer behind to be used for scanning my huge collection of 35mm negatives.  So there's no time like the present.)

Ah, the rich inner life of a humble square...
Am I really the first person to discover this feature of IFS?

If one begins with an Iterated Function System (IFS) which simply fills in solid, there may seem nothing further to do to alter this uninteresting result.  But boredom can sometimes lead to experimenting, with unexpected results.  In 2001, I discovered that if a square IFS is divided into several holons with no space between them, they will simply fill the square solid.  But a bit of play can give the square an infinite variety of rich fractal interior textures.  This is done solely by altering the number corresponding to the proportion of each holon of the square - for Fractint IFSs, the last of 7 numbers on each line.  Make your solid-filed IFS, save the .ifs file (for Fractint), then change the numbers in a text editor.

I was amazed at the richness and variety of the patterns I was seeing - truly an infinite set, as the numbers can be made arbitrarily different.  The best results seem to happen when these proportion numbers still sum up to 1, as is normal, and the alteration is from 0.04 to 0.06, subtracting and adding the chosen amount from an equal number of numbers to leave the total unchanged.  Contrast can be varied as well, by choosing alterations outside this range, the texture fading in from the solid square (or other initial shape) to an extremely high-contrast pattern.

Two or more sets of solid squares can be superimposed and then altered.  The idea works for other shapes as well, but it can be tricky to get to a solid filled shape if the angles are not all 90 degrees:  either very careful calculation is needed, involving trigonometry, or a snap-to feature when drawing the holons.

Further, *animations* from one texture to another are implied, by incrementing numbers sufficiently smoothly between the desired start and end textures.  Only the numbers need to be altered; or the whole group of holons may be varied; one or more of these may be gradually added or subtracted, even flipped or rotated.  In each case, one can make an animation to show the transition.

I first stumbled across the idea of varying IFS proportion numbers while seeking ways to make the well-known Dragon Curve (DC) and Twindragon (TD) more interesting by giving them fractal-textured fills, as I had learned to do with these 2 and other tiles in L-system programming.  I achieved what I was aiming for easily enough - but the same idea, applied to filled-in squares and other regular polygons, was a complete surprise and delight.

ANIMATION
Any IFS can be incrementally altered into any other for an animation, with the intervening steps arbitrarily many, as many as required.  If the 2 IFSs have the same number of holons, and the elements in one IFS have each a counterpart in the other IFS as far as orientation, the process is simply a matter of incrementing the size and location of all holons between the two.  If orientations are not matched, or numbers of holons are not equal, there is an extra step.  An extra holon is introduced for each additional required holon or change in orientation, initially of zero thickness or width.  These extra holons are gradually increased in thickness - and if the total number of holons must remain constant, as in performing a change in orientation only, the holon being replaced is gradually reduced in thickness simultaneously, until it has been fully replaced.  If an actual addition of one or more holons is required, they are enlarged from zero thickness until they occupy their needed positions.  This process is crying out for some automation... with the added optional constraint, especially for textured squares, of keeping all the animation frames within the start and end squares' size and shape.

To run the pars below:
1.  Cut, paste and save the par entries in a text editor as squares-.par, putting it where your other Fractint .par files are.
2.  Cut, paste and save the ifs entries in a text editor as squares-.ifs (squares.ifs is already being used), putting it where your other Fractint .ifs files are.
3.  Finally, run the first par.  Save its colour map as firecode.map where your other .map files are, and then you can run the remaining pars.

For much more of my IFS work, see HANMERIFS_01.ZIP, at http://spanky.triumf.ca/pub/fractals/formulas/

Par entries start

Sq0002d            { ; 23:29.99, 1.3 GHz PIII
                     ;  Fractint Version 2004 Patchlevel 2
  reset=2004 type=ifs ifsfile=sqs04.ifs ifs=Sq0002d passes=1
  center-mag=0/5/0.1666667 params=0 maxiter=57000
  viewwindows=1/1/yes/0/0
  colors=000006<3>00800900A<9>K04M04O03<2>U01W00W00<10>d00e00f00<14>u70v70\
  w80x80z90<79>zm0zm0zn0<43>zx0zy0zy0zy0zy0<68>zzz
  }

Sq0022e            { ; 27:01.79, 1.3 GHz PIII
                     ;  Fractint Version 2004 Patchlevel 2
  reset=2004 type=ifs ifsfile=sqs04.ifs ifs=Sq0022e passes=1
  center-mag=0/5/0.1666667 params=0 maxiter=62000
  viewwindows=1/1/yes/0/0
  colors=@firecode.map
  }

Sq0022q            { ; 25:21.76, 1.3 GHz PIII
                     ;  Fractint Version 2004 Patchlevel 2
  reset=2004 type=ifs ifsfile=dcs01.ifs ifs=Sq0022q passes=1
  center-mag=0/5/0.1666667 params=0 maxiter=58000
  viewwindows=1/1/yes/0/0
  colors=@firecode.map
  }

Sq0023d            { ; 23:57.51, 1.3 GHz PIII
                     ;  Fractint Version 2004 Patchlevel 2
  reset=2004 type=ifs ifsfile=sqs04.ifs ifs=Sq0023d passes=1
  center-mag=0/5/0.1666667 params=0 maxiter=59000
  viewwindows=1/1/yes/0/0
  colors=@firecode.map
  }

Sq0025k            { ; 24:35.15, 1.3 GHz PIII
                     ;  Fractint Version 2004 Patchlevel 2
  reset=2004 type=ifs ifsfile=sqs04.ifs
  ifs=Sq0025k passes=1 center-mag=0/5/0.1666667
  params=0 maxiter=58000
  viewwindows=1/1/yes/0/0
  colors=@firecode.map
  }

Sq0025v            { ; 24:18.55, 1.3 GHz PIII
                     ;  Fractint Version 2004 Patchlevel 2
  reset=2004 type=ifs ifsfile=sqs04.ifs
  ifs=Sq0025v passes=1 center-mag=0/5/0.1666667
  params=0 maxiter=59000 sound=off
  viewwindows=1/1/yes/0/0
  colors=@firecode.map
  }

Sq0027a            { ; 25:45.06, 1.3 GHz PIII
                     ;  Fractint Version 2004 Patchlevel 2
  reset=2004 type=ifs ifsfile=sqs04.ifs
  ifs=Sq0027a passes=1 center-mag=0/5/0.1666667
  params=0 maxiter=61000 sound=off
  viewwindows=1/1/yes/0/0
  colors=@firecode.map
  }

Sq0027d            { ; 25:48.74, 1.3 GHz PIII
                     ;  Fractint Version 2004 Patchlevel 2
  reset=2004 type=ifs ifsfile=sqs04.ifs
  ifs=Sq0027d passes=1 center-mag=0/5/0.1666667
  params=0 maxiter=62000 sound=off
  viewwindows=1/1/yes/0/0
  colors=@firecode.map
  }

Squ576a            { ; 27:42.83, 1.3 GHz PIII
                     ;  Fractint Version 2004 Patchlevel 2
  reset=2004 type=ifs ifsfile=sqs03.ifs ifs=squ576a
  center-mag=0/5/0.1666667 params=0 float=y maxiter=32000 sound=off
  viewwindows=1/1/yes/0/0
  colors=@firecode.map
  }

Squ995t            { ; 24:22.44, 1.3 GHz PIII
                     ;  Fractint Version 2004 Patchlevel 2
  reset=2004 type=ifs ifsfile=sqs03.ifs ifs=squ995t passes=1
  center-mag=0/5/0.1666667 params=0 maxiter=55000
  viewwindows=1/1/yes/0/0
  colors=@firecode.map
  }

Squ925u            { ; 25:39.00, 1.3 GHz PIII
                     ;  Fractint Version 2004 Patchlevel 2
  reset=2004 type=ifs ifsfile=sqs03.ifs ifs=squ925u passes=1
  center-mag=0/5/0.1666667 params=0 maxiter=60000
  viewwindows=1/1/yes/0/0
  colors=@firecode.map
  }

Par entries end

IFS entries start

Sq0002d {; Anthony Hanmer 18/12/2003, Designed with BRAZIL
; One of my best Squares
0.3330000 0.0000000 0.0000000 0.3330000 -4.0020000 -0.6670000 0.1108890
0.3330000 0.0000000 0.0000000 0.6670000 -4.0020000 3.6630000 0.2921110
-0.6670000 0.0000000 0.0000000 0.3330000 1.9980000 -0.6670000 0.1521110
-0.6670000 0.0000000 0.0000000 -0.6670000 1.9980000 10.3330000 0.4448890
}

Sq0002e {; Anthony Hanmer 18/12/2003, Designed with BRAZIL
0.3330000 0.0000000 0.0000000 0.3330000 -4.0020000 -0.6670000 0.1108890
0.3330000 0.0000000 0.0000000 0.6670000 -4.0020000 3.6630000 0.2921110
-0.6670000 0.0000000 0.0000000 0.3330000 1.9980000 -0.6670000 0.2221110
-0.6670000 0.0000000 0.0000000 -0.6670000 1.9980000 10.3330000 0.3748890
}

Sq0022q {; Anthony Hanmer 22/12/2003, Designed with BRAZIL
; One of my best Squares
0.3330000 0.0000000 0.0000000 0.3330000 -4.0020000 -0.6670000 0.0508890
0.3330000 0.0000000 0.0000000 0.6670000 -4.0020000 3.6630000 0.2821110
-0.6670000 0.0000000 0.0000000 -0.3330000 1.9980000 2.6630000 0.1621110
0.6670000 0.0000000 0.0000000 -0.6670000 1.9980000 10.3330000 0.5048890
}

Sq0023d {; Anthony Hanmer 23/12/2003, Designed with BRAZIL
; One of my best Squares
-0.3330000 0.0000000 0.0000000 0.3330000 -4.0020000 -0.6670000 0.1108890
0.3330000 0.0000000 0.0000000 0.6670000 -4.0020000 3.6630000 0.2921110
-0.6670000 0.0000000 0.0000000 -0.3330000 1.9980000 2.6630000 0.1521110
0.6670000 0.0000000 0.0000000 -0.6670000 1.9980000 10.3330000 0.4448890
}

Sq0025k {; Anthony Hanmer 23/12/2003, Designed with BRAZIL
; One of my best Squares
0.3330000 0.0000000 0.0000000 -0.3330000 -4.0020000 2.6630000 0.1108890
0.3330000 0.0000000 0.0000000 0.6670000 -4.0020000 3.6630000 0.1421110
-0.6670000 0.0000000 0.0000000 -0.3330000 1.9980000 2.6630000 0.2221110
0.6670000 0.0000000 0.0000000 -0.6670000 1.9980000 10.3330000 0.5248890
}

Sq0025v {; Anthony Hanmer 23/12/2003, Designed with BRAZIL
; One of my best Squares
0.3330000 0.0000000 0.0000000 -0.3330000 -4.0020000 2.6630000 0.0808890
0.3330000 0.0000000 0.0000000 0.6670000 -4.0020000 3.6630000 0.1921110
-0.6670000 0.0000000 0.0000000 -0.3330000 1.9980000 2.6630000 0.1921110
0.6670000 0.0000000 0.0000000 -0.6670000 1.9980000 10.3330000 0.5348890
}

Sq0027a {; Anthony Hanmer 23/12/2003, Designed with BRAZIL
; One of my best Squares
0.0000000 0.3330000 -0.3330000 0.0000000 -5.6670000 0.9980000 0.1808890
0.3330000 0.0000000 0.0000000 0.6670000 -4.0020000 3.6630000 0.1521110
-0.6670000 0.0000000 0.0000000 -0.3330000 1.9980000 2.6630000 0.2221110
0.6670000 0.0000000 0.0000000 -0.6670000 1.9980000 10.3330000 0.4448890
}

Sq0027d {; Anthony Hanmer 23/12/2003, Designed with BRAZIL
; One of my best Squares
0.0000000 0.3330000 -0.3330000 0.0000000 -5.6670000 0.9980000 0.1108890
0.3330000 0.0000000 0.0000000 0.6670000 -4.0020000 3.6630000 0.2921110
-0.6670000 0.0000000 0.0000000 -0.3330000 1.9980000 2.6630000 0.1521110
0.6670000 0.0000000 0.0000000 -0.6670000 1.9980000 10.3330000 0.4448890
}

squ576a {; Tony Hanmer 21/7/2003, Designed with BRAZIL
; One of my best Squares
-0.5 0 0 -0.5 -3 4.5 0.22
0.5 0 0 0.5 3 -0.5 0.22
0.25 0 0 0.5 -4.5 5.5 0.095
0.25 0 0 0.5 4.5 5.5 0.095
0 -0.5 0.5 0 2.5 8 0.37
}

squ925t {; Tony Hanmer 9/12/2003, Designed with BRAZIL
; One of my best Squares
-0.5 0 0 -0.5 3 10.5 0.2
-0.5 0 0 -0.5 3 10.5 0.2
0 0.5 0.5 0 0.5 2 0.2
0 -0.5 1 0 -0.5 5 0.4
}

squ925u {; Tony Hanmer 9/12/2003, Designed with BRAZIL
; One of my best Squares
-0.5 0 0 -0.5 3 10.5 0.1428571
0 0.5 0.5 0 0.5 2 0.1428571
0 -0.5 1 0 -0.5 5 0.2857143
0 -0.5 1 0 -0.5 5 0.2857143
0 0.5 0.5 0 0.5 2 0.1428571
}

IFS entries end