April 11
The "Clear" command in the Draw menu now works again.


January 13
A warning message is now displayed when the scale for the fractal window is frozen and an attempt is made to change the scale.

The delete button will now only clear the fractal window and will work even if the fractal window is not active. The shortcut for deleting a background picture has been removed from the design menu.

Fixed a bug when canceling the swap transformations window that caused the color of the first function in the IFS to be changed to black.

Fixed a bug that caused the program to crash if a 31st IFS was added to the list of fractals. A warning message is now displayed if there are already 30 IFSs in the list and an attempt is made to add another IFS.


April 11:
Minor bug fix


June 27:
An observant user noticed that the comment symbol in the IFS window still appeared after editing to remove all comments. Now fixed.
Also fixed an issue when specifying a number of maps smaller than the current value but then clicking outside that textbox rather than pressing the Enter key.


May 28:
At the request of a user, the "Draw this many..." dialog box now also allows for specifying how many iterations to plot in the deterministic method.


August 7:
Some bug fixes.


August 26:
An observant user noticed that the recursion preview in the Line Fractals design window was not updating when points in the design were snapped to the grid. It is now.

August 1:
In the Line Fractal design, there are now four choices for oriented segments mimicking ideas from turtle Logo. These are replacing a line segment with the generator on the left side in the forward direction, on the right side in the forward direction, on the left side in the backward direction, and on the right side in the backward direction. In addition, it is no longer possible to move the last point at (1,0) to insure that the iterations are continuous curves as intended.

Fixed a problem with the colors in the deterministic mode using the IFS color scheme when images from different functions would overlap. Now in the final image, the color used for a point that is the image under several functions in the IFS will be the color for the function with the smallest index.

Bug fixes.

February 20:
Several changes based on feedback from users.
The "Draw this many..." dialog has been modified so you can choose to draw either an additional fixed number of points or to draw until a specified number of points have been plotted.
There is an option in the Symmetric Binary Tree design example to allow the creation of non-symmetric trees.
Recursion can be used to draw binary trees starting with any initial line segment, not just a vertical unit line segment.

The help file has been updated. Also includes some bug fixes.

January 4:
Rewrote parts of the program to avoid the use of several Microsoft support files that no longer come with Windows 7 and Windows 8. However, the file mscomctl.ocx is still needed. If you start the program and receive an error message about this file being missing or not registered, look in the Installation Issues section of the website for instructions on how to download and install the file.


June 24:
Several changes based on feedback from users.
The initial polygon is now drawn with dashed lines rather than dots in the design window. This helps to see the initial polygon if the grid is displayed (which is shown with dots).
When drawing in deterministic mode and choosing a fill color for an initial rectangle, triangle, circle, or polygon, if you right click on the color box or the fill color button, the line color for the boundary will automatically be set to be the same as the fill color chosen. No longer necessary to choose the same color twice.
When drawing in random mode, points for functions that have the same color as the background color for the fractal window will be computed but not plotted. This helps to draw just part of a fractal.
You can now set the size of the points used in tracing an orbit from the Draw\Trace menu.

Bug fixes.

May 22:
Fixed a silly mistake that prevented some math expressions in the symmetric fractal design dialog box from being evaluated.

Deleting IFS items from the Fractal menu list will no longer make any changes to the IFS window.

April 2:
A new design example has been added to draw symmetric fractals. These are created using either the cyclic group Zn of order n or the dihedral group Dn of order 2n. To design a symmetric fractal you start by either defining a contractive affine transformation to use as the base or by selecting an IFS from the list in the Fractals menu. The attractor for the new IFS will have the symmetry corresponding to the symmetry group used.

Since the IFS for symmetric fractals can have a large number of functions, the maximum number of functions for an IFS was increased to 100. This necessitated some changes in the color palettes which had to be increased from 64 to 100 colors. It also required a new way to select a particular IFS in the design window when there were more than 20 functions. IFS functions 1 to 9 are selected by typing the appropriate number. IFS functions 10 to 99 are selected by holding down the shift key and typing the two digits.

At the request of a power user you can now have different grid sizes for the x and y axes in the fractal window, mimicking the behavior that was already possible for the design window.

More bug and interface fixes.

February 5:
An image can now be used in the fractal window as a background image during the drawing of a fractal using the deterministic method.

In the deterministic mode when selecting the design polygon, line, triangle, regular polygon, or circle as an initial set, you can specify the line thickness and line color that is to be used in drawing the initial set as well as the fill color.

There is now an option to plot a specific number of points using the random algorithm. This number can be set by the user.

When saving a fractal transformation movie as an animated gif, it is now possible to specify the size of the animated gif frames. You can also create at the same time an animated gif movie of the transformation in the design from the initial fractal to the final fractal. The fractal window and design window in the fractal transformation window can now each be zoomed and shifted independently of each other.

Bug and interface fixes.


October 26:
Several changes based on user feedback.

You can specify a different scale for the x and y axes when setting the grid size in the Design window and the line fractal design window. This helps in designing initial polygons and line fractals by making it easier to snap the location of points to specific positions during the design stage.

It is now possible to specify an initial arbitrary line segment or triangle to use in the deterministic drawing mode.

The segments in the design of a line fractal can now be oriented as "forward" or "backward". Each segment is replaced by the basic motif to that the motif appears to the left of the oriented segment it is replacing. The default status is to have all line segments going "forward". Because of this option, I have added oriented horizontal and vertical unit lines to the list of initial polygons for the Design window.

The option to use a pedal triangle has been added to the Sierpinski Triangles design example. You can also specify the size of the triangle by giving the values of the three angles.

Fixed a bug that may have prevented tiling during deterministic drawing from working correctly. Also fixed a bug that was causing the fractal image to flash while shifting the image in the fractal window.

September 17:
The use of a range of gradient colors when draw a fractal has been expanded. You can now choose from 2 to 7 base colors to create the gradient range. Several new gradient coloring options have been added, including coloring a pixel based on how many times that pixel has already been drawn in the fractal (pixel counting). Because of these changes, all the gradient coloring options have now been collected into one dialog box rather than as separate menu items.

You can right click the color box for the first IFS in the functions window to simultaneously set the color for all the functions to whatever is selected for that first one.

Some bug fixes and fixes to interface issues are also included in this new version. If you find other strange behaviors or bugs, please let me know.


September 15:
Some recent changes in the program caused problems when the program tried to read a corrupted ini file or a corrupted ifs file. Those problems have hopefully been fully addressed, but if not, please let me know. If the program crashes or becomes unresponsive upon start, try deleting the ifs.ini file. A new one will be created the next time the program is run.

August 31:
You can now create an animated gif file consisting of a sequence of iterations of an IFS using the deterministic method (called a Deterministic Fractal Movie).

Some tweaking was also done with the Fractal Movie Viewer (for displaying the animated gifs). For example, holding down the ctrl key while changing the frame rate will increase or decrease the rate by 100 ms/frame rather than the default 10 ms/frame. The Viewer window will also resize to fit the movie that is being displayed. Some bugs with the Fractal Movie Viewer were fixed that became noticed when movies were played at slow frame rates.

July 11:
At the request of a user, you now have more control over the placement and size of an image that is pasted into the design window or fractal window (either as a background image for the random method or as the initial set for deterministic method.)


September 13:
Added a mathematical expression parser so you can now enter mathematical expressions in many of the textboxes. The main exception are the textboxes in the IFS window where you must first press ctrl-alt-E to bring up an evaluation dialog box. Copy and paste should also work in textboxes. These changes necessitated a considerable amount of code rewriting, so if any errors or odd behavior slipped by, please let me know.

Completed the new design example for drawing line fractals (see July 2 below). The fractals can be drawn quickly with recursion if that option is selected. Line fractal designs can be saved to a file and read back into the program. Also modified the Koch curve with n-gon design example to use recursion. See the program help for additional details.

Fixed an assortment of bugs and interface issues.

July 2:
When adding the ability to enter fractions in textboxes for designing fractals derived from complex bases, I inadvertently dropped a negative sign that caused the design to generate an incorrect IFS. That has been corrected.

I have also included in this release a beta version of a new design example for drawing line fractals. A line fractal is obtained by dividing a horizontal or vertical line into a number of individual segments that are then oriented as desired. That design is then used as a generator. The fractal is obtained by iteratively replacing each segment with a scaled copy of the generator. This is an example of an L-system or turtle type fractal. While there are still some things I want to incorporate into the program for this design example, the basic features are now working.

June 18:
A new design example has been added to allow investigation of Koch curves with n-gons. Choose a number c with 0 < c < 1 that defines the length of a removed subinterval from a line of length 1, and an integer n ≥ 3 that defines a regular n-gon that replaces the removed segment. This produces the (n, c)-Koch curve. This example is based on a paper by Tamás Keleti and Elliot Paquette in the American Mathematical Monthly, Vol. 117, No. 2 (February 2010).

At the suggestion of a user, a status bar has been added to the bottom of the main window to show the full path of files listed in the "Open Recent" submenu when you move the mouse over them. Please send suggestions for other uses for this status bar.

You can now enter fractions in many text boxes that handle numerical (non-angular) values. There is limited error checking, however, so if there is a problem parsing the numerator, the value of the numerator is set to 0, and if there is a problem with the denominator, the value of the denominator is set to 1.

In the functions window, pressing the Escape key while entering a new numerical value in a text box (but before pressing the Enter key or moving to another text box) will restore the original value.

There are submenus under the File menu to save the images in the fractal and design windows to a file. For images in design examples dialog boxes for box fractals, triangles, Sierpinski triangles, Koch curves, tilings with integer matrices, and Pythagorean trees, you can now right click on the image to access a contextual menu to copy the image to the clipboard or save the image to a file.

All dialog boxes for opening or saving images should now be able to handle images in gif, png, jpg, or bitmap format.

Holding down the shift key when making a square selection rectangle in the fractal window had gotten broken somehow. Should be fixed now. Also fixed some other stray user interface issues and inconsistencies, hopefully without creating additional ones.

May 28:
The program has been re-written to avoid the use of common dialog commands in the comdlg32.ocx file. This should eliminate the problem about this component or one of its dependencies being not correctly registered or missing. However, you still must have the file comdlg32.dll in your system32 folder. All versions of Windows should have that installed automatically. You must also have the file mscomctl.ocx in your system32 folder. If you get an error message when you start the program about this file being missing or not correctly registered, see the section on the download page about installation issues.

An "Open Recent" submenu item has been added to the File menu to allow you to quickly re-open ifs or chaos game files. Up to 6 recently opened files will be displayed.

The program will show at most 30 iterated function systems in its Fractals menu. It should now better handle attempts to open files with more than 30 systems or to append items that would extend the list beyond 30.

May 3:
Zoom out and zoom in buttons have been added to the toolbars in the fractal and design windows.

Zoom requests are now handled immediately. So if a fractal is being drawn with the random algorithm and you click on zoom out or zoom in, the window scale will be adjusted and the fractal will immediately start to redraw from the beginning. The same thing will happen if you press the Home key to restore the window to its default scale. In the deterministic algorithm mode, the fractal window will revert back to the initial set after the zoom operation is performed.

April 26:
On the suggestion of a user, a toolbar has been added to the fractal window with buttons to draw the fractal. This button changes to a "stop" button while the fractal is being drawn. Additional buttons on the toolbar allow you to show or hide the axes, fixed points, and/or the grid in the fractal window.

There is now a menu item to show/hide the tool tips for the main toolbar and the toolbars in the fractal and design windows. This choice is saved in the program's ini file and thus is preserved for the next time the program starts.

Changes to the color palette are now reflected immediately in the design window and in the preview window if displayed.

April 20:
A programming error has been fixed that caused the program to crash when selecting "Design Initial Polygon" from the Design menu.

February 8:
The design example "Irregular Sierpinski Triangles" has been re-named to just "Sierpinski Triangles". There are now more options in modifying the classical Sierpinski triangle construction with equilateral triangles. In particular, you can now draw twisted Sierpinski triangles in which at each iteration the new vertices are moved a small amount in a random direction.

Changes made in the design window after creating a symmetric binary tree or a Pythagorean tree were not being handled correctly. They should be now.

January 19:
Some additional improvements to working in the design window. When one of the functions is selected, the cursor will change as you move it over different parts of the design or the bounding squares to indicate the operations that can be performed to modify the design (move, scale, shear, or rotate). The design toolbar can now wrap to a second row if the design window is resized smaller than the toolbar. Finally, at the request of a user, the background color for the design window and the color of the axes can be modified just as with the fractal window.

Changing the line style in the design window would occasionally make the axes or grid lines also become thicker. That should no longer happen.

January 5:
Several changes have been made to the design window on the basis of feedback from a user. First, the design window now has its own toolbar to quickly handle some of the basic operations while working with the design of an IFS. These toolbar buttons can substitute for menu or keyboard commands. Second, you can now set three line styles (thin, medium, thick) for the display of an IFS design. The thick style may be helpful for display in a large room. Third, the dialog box for adjusting the moves in a chaos game design has been tweaked to allow the user to enter a scaling factor or a rotation angle in a textbox rather than just using a slider.

The program should now better handle attempts to open an incorrectly formatted ifs or chaos game file.


August 3:
At the request of a user, you can now resize an image that had been loaded from disk or pasted from the clipboard into the fractal window to be used as an initial set for drawing a fractal with the deterministic method. This is done by clicking on the image with the right mouse button after the image is loaded or pasted (currently selected, so surrounded by dashed lines). The image can be re-selected later so that it can be moved or resized again by pressing the Esc key before any iterations are done in drawing the fractal. This also works for images loaded or pasted into the design window.

July 13:
Added a new design example to draw Pythagorean tree fractals. These are best drawn using the deterministic method.

Also made some modifications in how symmetric binary trees are drawn under the deterministic method to mimic the techniques for the Pythagorean trees.

June 26:
You can now choose a coloring IFS whose attractor is a filled unit square when using the color stealing scheme to color a fractal (see the June 17 entry below). This choice will use all the colors available in the input image, and is the default choice when color stealing is chosen as the IFS coloring scheme.

Also took the opportunity to correct a few bugs with the implementation of the color stealing algorithm in the initial design.

June 17:
A new coloring scheme for drawing the fractal has been added. This scheme is based on the idea of "color stealing" developed by Michael Barnsley and works only with the random algorithm. The color used to plot a point during the random iteration for the drawing IFS is determined by iterating a second coloring IFS on top of an input image in sync with the drawing IFS. The color of the point where the coloring IFS lands on the input image is used to plot the current point for the drawing IFS. The colors for the drawing IFS are "stolen" from the input image. A default input image of colorful fall leaves is provided, but you can use any image you want. A folder of possible images is included with the download.

A line of code had been inadvertently deleted at some point with the consequence that trying to resize a design along the bottom edge of the bounding box would actually resize along the top edge. That line has now been put back so resizing should now work correctly.

May 18:
At the request of a user, the number of points plotted in the preview window can now be increased or decreased. Use the plus/minus keys on the keyboard to increase or decrease the number by 500 points.

Updated the Help file to reflect some of the recent changes.

May 13:
An overlooked bit of missing code in the swap transformation routine could sometimes cause the program to crash when quitting. I believe that has been fixed.

May 8:
A major change has been made to how designs can be created or modified in the Chaos Game mode. A dialog box is now available that allows the user to specify moves for the fixed points. Sliders are provided for adjusting the scaling factor towards a fixed point and rotation around a fixed point. With the Preview window displayed you can watch the fractal evolve as you change the slider.

Added a menu item that allows you to swap the position of two maps in the iterated function system. This is primarily of interest when creating a fractal movie to match up the maps in each IFS that you want to be averaged as the frames of the movie are created.

Hopefully corrected some bugs and design flaws without creating new ones!

February 9:
Added two options to the Fractal Movie Creator. You can now select to "cycle back to the beginning" when creating a movie. This will interpolate from the initial IFS to the final IFS , then repeat going backwards to the first IFS, so you start and end with the same fractal image. When you choose the same IFS for the initial and final fractal, you can also choose whether to rotate counterclockwise or clockwise when creating successive frames in the fractal movie.

February 2:
You can now create a fractal movie that consists of a sequence of movie frames that evolve from the fractal of an initial IFS (first frame) to the fractal for a final IFS (last frame). The individual frames can be saved to the disk, or you can save the movie as an animated gif. A Fractal Movie Viewer is provided to view a movie saved as an animated gif. Please let me know if you encounter any problems with this new feature.

A new design example is provided for constructing irregular Sierpinski triangles. These allow you to choose points located anywhere along the three sides of a triangle, not just at the midpoints of the side (as in the traditional Sierpinski triangle).

Images in the fractal and design windows can now be saved in gif, png, or bitmap format. Saving in gif or png format requires that the FreeImage.dll file be located in the same folder as the IFS Construction Kit program (or in the windows/system folder). FreeImage.dll will be downloaded in the same zip file as IFS Construction Kit for easy installation.

Fixed a few minor design issues and bugs.


November 28:
An alert user noticed some issues with deleting items from the IFS list in the Fractal menu. These have been resolved.

October 20:
Improved the algorithm for scaling the fractal window when choosing "scale to fit" (ctrl-W). This should make the window scale behave more consistently.

You can now press the Escape key when loading a file or pasting an image into the Design or Fractal window to finalize the position of the image. You can also press the Escape key when a polygon is selected in the Design window in the IFS mode or when a fixed point is selected in the chaos game mode and that polygon or fixed point will be deselected.

You can now press ctrl-alt-G to bring up a dialog box where you can enter your own grid size for the Design or Fractal window.

Fixed some issues with undo in the Design window.

Several changes to the Chaos Game mode. The default is now to use proportional probabilities when drawing the fractal based on the design in the chaos game. Changing the Functions window to the matrix or rotation form while in the Chaos Game mode should lock the form so changes cannot be made. That was not working correctly but should now be ok. The one exception is that you can still change the probabilities in those forms.

You can now save the chaos game moves to a file with extension ".chg", and can open files with that extension while in the Chaos Game mode. When the program is started it will check first for a "default.ifs" file. In no such file is found, it will check for a "default.chg" file and if that file exists, the program will begin in the Chaos Game mode and load the chaos game moves found in the default file. If you register the ".chg" extension, you can also double click on a .chg file to start the program in Chaos Game mode and load that file.

You can now click on the reference point in the chaos game to move the point to another location while holding down the left mouse button. Press the shift key to snap the point to the nearest grid point if the grid is turn on in the Design Window.

You can select a fixed point and move it by holding down the shift key and pressing one of the arrow keys (in addition to being able to move the fixed point with the mouse.)

August 15:
When an image is loaded from a file or pasted from the clipboard, it can now be positioned where desired in the design or fractal window. As long as the image is surrounded by a dotted line, you can move it with the mouse to a different location. Click anywhere outside the image to make it part of the window. This is particularly useful when using the image as the initial set for the deterministic method in the fractal window.

You can now zoom in when using the random method in the fractal window.

July 11:
Images drawn in the fractal window will now shift without being redrawn when the arrow keys are used to shift the fractal viewing window. Zooming the viewing window, however, will still cause the image to be redrawn from scratch.

Once the .ifs extension is registered to IFS Construction Kit, double clicking a file with .ifs extension will start IFS Construction Kit with that file.

Help buttons have been added to the windows for the various example methods for constructing iterated function systems, and for the tiling options window. These will open the help file directly to that topic.

Tiling can now use all four IFS color schemes. Also fixed a bug in trying to tile in the deterministic method.

The selection rectangle will no longer disappear if the fractal window is covered by another window. Also fixed a bug in copying a selected region in the fractal window.

June 26:
You can now play what I call the Sierpinski Triangle Game, which is based on the Chaos Game at Bob Devaney's website http://math.bu.edu/DYSYS/applets/chaos-game.html. The game presents a number of subtriangles coming from the iteration of the functions defining the Sierpinski triangle. A target subtriangle is colored red and the goal of the game is to move a dot from a corner of the original triangle into the interior of the target triangle in as few moves as possible. Other variations of the game allow for one or three of the iterations to involve rotations around a fixed point.

You can now display a grid in the design and fractal windows. The grid comes in four sizes: 0.05, 0.1, 0.125, and 0.25. You can use the grid to help design an initial polygon in the design window, or to create or move fixed points in the chaos game mode. When the grid is displayed, new design vertices or fixed points will snap to the nearest corner of the grid. In addition, the plus/minus keys will rotate through the four available grid sizes.

An option has been added to allow the initial figure in the deterministic method to consist of the current design polygon filled with a color of the user's choice.

The program will now start in the same state as when last quit in terms of whether the functions, fractal, and design windows are visible or hidden.

Fixed some issues in drawing initial sets in the deterministic method and some inconsistent scaling in the design window in the chaos game mode. Also, the ability to manually change the design window view got turned off for some reason during previous work. That has been fixed. There is also some better error checking on the numbers entered for the fractal and design window views.

February 11:
In addition to displaying the functions in an IFS in a compact matrix form as a single row (the way the program has always worked), you can now also display them in a standard matrix function format, with the matrix shown in 2x2 format and the translation vector shown in 2x1 format.

The IFS fractal is drawn in an image pane that is part of the fractal window. This image pane is resized as the fractal window is resized. Now you can specify a fixed size for the image pane and that size will not change if the fractal window changes. If the fractal window is too small to contain the image pane, scroll bars will be added. The image pane can be as large as 12 inches by 12 inches. This is really only useful if you want to copy the fractal image into another program (e.g. a graphics program) rather than just viewing it on screen.

Holding down the shift key when selecting one of the corners of a design rectangle will restrict the scaling to be proportional in both directions.

Some inconsistencies in the user interface have been corrected, and other bugs squashed. Hopefully no new bugs have been created, but please let me know if any problems occur.

January 17:
You can now open a Preview window (from the Design menu) that displays a quickly drawn approximation to the IFS image (about 2000 points). As you modify an IFS design in the Design window, either by using the mouse to make changes, or using keyboard shortcuts, or using a command from the Draw menu, the preview will update simultaneously (well, at least if you have a relatively fast computer) to reflect the design changes. This also works with Chaos Game designs. You can also use the Preview window to see a quick preview of an IFS chosen from the Fractal menu. Let me know if there is anything that doesn't work quite right with the previews.

January 4:
Color palettes of up to 64 colors (used for drawing the IFS) are now saved and read with colors given in RGB format (red, green, and blue values). Palette files are saved with the extension "map" and are compatible with Fracint map files. Since these are just text files, you can create your own map files containing the RGB colors you want to use. The old "ifp" palette files (which stored the colors as Visual Basic long integers) can still be read by the program. There are also now more ways to modify the colors in the color palette from within the program.

In attempting to make some of the error messages the program displays more useful, I inadvertently created my own error. Also overlooked one area that needed changing when increasing the number of functions from 20 to 64. Both of these should now be fixed.


December 17:
At a user's request, the maximum number of functions in an IFS has been increased from 20 to 64. As a result, the IFSkit.ini file from previous versions will no longer be valid. The first time you run the new version, the default values will be used and a new ini file will be created when the program exits.

The color palette for drawing fractals now consists of 64 choices. In addition, the number of rows used to construct box fractals and triangle fractals has been increased from 5 to 8.

Fixed a few other minor issues discovered while making these changes. But the change from 20 functions to 64 functions had more repercussions than I anticipated, so if I overlooked something please let me know.

December 11:
When drawing the ifs using the deterministic method, you can now use a regular polygon with from 3 to 9 sides as the initial set. The polygon can be drawn as an outline or as a filled solid. The program will make an attempt to scale the fractal window so that the polygon and all iterates will fit in the window, but you may still need to zoom out or shift the window. Let me know if you encounter any errors or bugs while trying to use this new feature.

November 12:
An earlier change caused polygons to be incorrectly drawn when choosing from the Design menu to use an initial polygon in the design window. That error has been fixed.

Fixed a bug where fixed points were not redrawn in the fractal window when a design was modified and the new fractal was drawn.

May 21:
Each function in the IFS can be drawn in a specified color. You can now save that color palette to a file, load a color palette from a file, and edit the current color palette.

January 24:
An alert user noticed that the fractal window was not being rescaled when creating a new IFS for a symmetric binary tree after having done one already with the choice of the deterministic drawing algorithm. Should be fixed now.

I discovered that a Microsoft security update changed the way the compiled html help files are treated by Internet Explorer in various "security zones", sometimes preventing them from being displayed. If you try to access help from within the program and get the message "Navigation to the webpage was canceled" in your browser window, do the following steps:
1. Right click on the IFS Help.chm icon and choose Properties.
2. In the general tab, look at the bottom section. If you see a button that says "Unblock", click it.
In case this does not work or the file is already unblocked, I added an option to the Help menu to load the help pages from this website in the user's default browser.

January 22:
The design for symmetric binary trees now has options to choose the deterministic or random algorithms for drawing the trees. Each option produces a slightly different IFS. Also fixed a few coding errors that had been overlooked.

Modified the design dialog boxes to add a Close button. The Cancel button had not always restored the previous IFS correctly. Should be better now.

January 18:
A new design example has been added to draw symmetric binary trees. The program can compute the unique scaling ratio necessary to construct a self-contact symmetric binary tree.

Users now have the option of several coloring schemes. You can color the IFS fractal based on each function in the IFS, or you can use a gradient color scheme based on each point's y-coordinate, distance from the center of the fractal window, or relative position to the fixed points. The gradient scale can be set by the user.

You can freeze the scale used for the fractal window. This makes it easier to draw several IFS fractals in the same window so that a consistent scale is used when drawing each image.

Fixed several interface bugs and issues.


May 17:
The programming code for the Chaos Game mode has been rewritten to simplify the design of an IFS based on chaos game moves. You can now ctrl-click with the mouse to create a new fixed point at the mouse location. When you switch from the IFS mode to the Chaos Game mode, your fractal list under the fractal menu will remain intact, but disabled. You can save your IFS from a chaos game design to the fractal menu list and switch back to IFS mode. If you later switch back to the Chaos Game mode, any IFS created in this mode will still be enabled and display the chaos game moves. However, if you save such an IFS to a file, only the IFS code will be saved so if you want to remember the chaos game moves used, include them in a comment.

If you forget some of the mouse and keyboard shortcuts to use with fixed points in the chaos game mode, you can move the mouse pointer over the picture box in the lower right corner of the design window (where the number of the selected transformation is displayed). The pointer will switch to a question mark. Hold down the mouse button over this picture box to view a pop-up window containing the shortcuts. The window will disappear when you release the mouse button.

The same mouse trick can be used in IFS mode to remind you of the mouse and keyboard shortcuts for working with the selected polygon in the design window.

You can now "zoom in" with the design window.

Several bugs and interface issues were fixed.

May 2:
At a user's request, you can now shift the viewing window for the fractal and design windows using menu selections or the arrow keys. This is particularly useful when using the deterministic algorithm and trying to see the entire initial picture.

Tweaked the interface design a bit. If you are working with an IFS that already has a name, and you make a change to the IFS code, an asterisk will be appended to the end of the name in the IFS window as a visual reminder that a change has been made. Also, when selecting a new IFS from the fractal menu or loading a new ifs file, the focus will remain on the current active window and not automatically jump to the IFS window. "Zoom to 100%" in the Draw/Zoom menu has now been replaced by a "restore" menu item. This can be used for restoring the viewing window to its original dimensions after either shifts or zooms. Let me know if there are problems with any of these design choices.

Fixed a few bugs with appending new IFS codes from a file to a list already in the fractal menu.

April 25:
A user pointed out that shortcut keypresses were sometimes not being accepted for the fractal window. Should be fixed now. Also added, at a user's request, a small popup help screen about tracing when you hold the mouse down on the "trace on/off" box in the lower left corner of the fractal window.

Fixed a few issues with drawing, loading, and saving an initial polygon in the design window.

April 24:
The box fractal design now allows for a 2x2 size (four boxes).

Added a triangle fractal design option under the examples. This allows you to take an equilateral triangle of 2, 3, 4, or 5 rows and subdivide it into equal subtriangles, then create a design by removing selected subtriangles. For example, using 2 rows (4 subtriangles) and removing the middle subtriangle produces the usual Sierpinski Triangle fractal.

Added an initial polygon for the design window that is an oriented equilateral triangle.

When using the deterministic drawing method, you must start with an initial picture in the fractal window. At a user's request, the first time you choose the deterministic method, the initial design polygon will be used as the picture. You can then change the picture if you want something else. There is a new option to use a triangle (equilateral or right, outlined or filled) as the picture. In addition, if you choose to load a picture from a file, the default coloring scheme will be to use the image colors when iterating as this usually produces the best results. You can still change to the coloring scheme that uses the ifs colors if you prefer.

In the design window, equilateral triangles are now rotated around the centroid of the triangle. All other polygons are rotated around the center of the bounding box.

During some earlier revision of the program, I inadvertently turned off the Overlay option when using the deterministic method. That has now been fixed.


June 24:
Some of the zoom out options were not working correctly in the Fractal window. Should be ok now.

June 19:
A third example design has been added based on the article "Number Systems With a Complex Base: A Fractal Tool for Teaching Topology" by Daniel Goffinet, American Math. Monthly, March 1991. This allows you to construct an IFS determined by a complex number with modulus less than 1.

When doing a trace in the Fractal window, it is now possible to specify the exact x and y coordinates of the initial seed.

Corrected an error in the Chaos Game design mode that resulted in the wrong probabilities being associated with each function in the IFS.

May 28:
A few more tweaks in the user interface. Resizing the fractal and design windows has hopefully been improved to eliminate the annoying flickering. I have disabled the maximize button for the IFS, fractal, and design windows since maximizing one window made all windows maximized, and this was sometimes not helpful. So instead I added a maximize and restore item to the Windows menu that mimics the behavior of the maximize/restore button. This is a bit non-standard for Windows programs so I would be interested in any comments about how well this works (or if it doesn't work.)

When trying to tile the plane with a fractal design, you can now measure Δx and Δy between any two points in the fractal window. This might help in deciding on what vectors to use in the Tiling Options window to describe the translations that form the tiling. Hold down the ctrl key and click at the first point. While holding down the left menu button, move the cursor to the second point. The Δx and Δy values are displayed in the lower left corner. Those values and the line will vanish as soon as you release the mouse button.

May 21:
A "Tiling Options" menu item has been added to allow one to tile the plane with an appropriately designed IFS. This is based on translating copies of the IFS fractal in directions given as linear combinations of two specified vectors. Two coloring schemes are available.

Several user interface issues were addressed.

May 4:
One can now create an IFS design that tiles the plane using integer matrices. This is based on ideas in the papers

Comments, suggestions, and bugs are greatly appreciated.

The two design options using Box Fractals and Tilings with Integer Matrices are now listed as submenus under "Examples" in the Design Menu.

March 15:
A user reported that the program would crash if one tried to open an IFS file while the IFS window was closed, or if one tried to draw to the Fractal window while it was closed. Both problems should now be fixed. I also took this opportunity to add to the Help menu a link to this website and an email link to make it easier to report bugs or problems.

January 10:
Added the ability to set the background color of the Fractal window and the color of the axes in the fractal window.

Added an IFSkit.ini file that will save the current locations and sizes of the three main windows, the colors used to represent each function in the IFS, the background color of the Fractal window, and the color of the axes in the Fractal window. This file must be in the same folder as the IFS Construction Kit program. If the program encounters an error when trying to read the ini file, or if the file does not exist, then the default values will be used and a new ini file will be created when you quit the program. Please let me know if you run into any problems. Corresponding changes have been made to the help files.


August 16:
Fixed a small bug that prevented fixed points displayed in the fractal window from being updated automatically when the user toggled between colored points and black points.

June 1:
Fixed a few bugs including with adding comments and creating a rectangle to use as an initial set with the deterministic algorithm.

Added the ability to print the images in the fractal and design windows, and the IFS code in matrix form, scaling and rotation form, or in terms of chaos game moves. The IFS codes may be "printed" to a text file.

Added a "How to..." section to the online help file.

April 24: Initial Release