History of ChaosPro

Click the link to skip the following informational text in order to go directly to the History of Changes below.


Where did it start?

I started programming on ChaosPro in December 1992. A rather long time since then. The reason why you most probably did not hear anything from ChaosPro was, that I owned an Amiga. And thus, ChaosPro was written for the Amiga. It took about half a year for the first version, which of course was crap: The typical fractal program in those times: One computer, thus one program, thus one window, thus one fractal.
Who should need more than one window? More than one fractal? Nonsense! Real people use one computer, one task, real people use MS-DOS 4.01! You ask for a GUI? Crap! Only text based systems are professional systems! Images and graphics are just for weenies!

Those were the times. And they are gone...

I then saw programs using multitasking and multiwindowing (which was a normal feature on an Amiga computer) and I thought myself: "A fractal program using that technique would be really nice, it would be ... well, lets just program and see it !"

And I threw away the whole code and wrote a complete new version, with multitasking, multiwindowing, real time effects etc. It took about 1 additional year to finish it. In June 1994 I let it test a few people and the debug phase took another 4 months.
The Amiga magazine (a german computer magazine for Amiga computers) decided to publish that program, and so, finally, in January 1995 ChaosPro 1.0 was released as Public Domain.

I then added some more features, network support, 24 bit, more fractal types, speed ups, etc. upto ChaosPro 3.0 in September 1996, which was the last version for the Amiga (which was now a dead-end system).

Knowing that the real world out there was using PC's, I also bought a PC. I had a look at the fractal generators available on the PC and found out, that there is nothing comparable (consider the time: 1996!) to the fractal generators on the Amiga. And of course I decided to port ChaosPro.

The first version of ChaosPro was made using the IBM Visual Age for C++ compiler, using the IUICL, the so called "IBM User Interface Class Library". And it was bad! The class library was designed to the principle "write once, compile and run everywere (better: nowhere)", the IBM compiler and its class library were attempts to distribute a system which makes it possible to write code on one system and compile it on either OS/2, Win95/NT, or AIX. But the class libraries were designed especially for OS/2, so ChaosPro for Win95/NT seemed to be not system conform: The file requesters were non standard, the MDI was not standard, almost all GUI elements were self made by IBM, and not Windows standard.
The (beta-test) users were not lucky with that version, and again, I decided to completely throw away the whole code, to start from scratch, not using any stupid class library, writing an application just for Win95/NT, just based on the naked Win32 API, no MFC or any other (maybe non standard, slow) class library.

And that is the real beginning of the version presented here, it started in June 1997.

The first version of the "new" ChaosPro was ready about December 1998, uploaded to simtel.net. It has been replaced in June 1999 by ChaosPro V2.0, and that version has been replaced by ChaosPro V2.1 in October 2000.

And so lets list the history of changes from V1.0 to V3.0 :

History of Changes

The first cell of each row in the table lists the version which first fixed the bug or introduced a feature.
The second cell of each row in the table contains the type of change made to ChaosPro.
It can be one of the following:

BugThis means, that a bug has been fixed. Bug means some behaviour which was not intented by the author.
ChangedMeans that the behaviour of ChaosPro has changed to be more user friendly (in my opinion)
FeatureMeans that a new feature has been added.



Version Type Description
3.02Bug Default Property did not work always.
3.02Bug Creating animations could produce duplicate images or corrupt images or corrupt animations: This was due to the animation system continuing with the next frame before the current frame was saved.
3.02Bug Stop/Resume did not work for Layered Fractals. Menu item added.
3.02Bug Pasting a parameter set with fractal type != LayeredFractal did not work.
3.02Bug Hints specified for of checkboxes and function did not work. Hints specified for formulas assigned to quaternions did not work.
3.02Bug Compiling some formulas crashed ChaosPro due to a stack overflow (too many if-clauses). The stack overflow check routine contained a bug: Normally in such cases the stack increases, and this "increase" routine was buggy.
3.02Bug Cloning a compiler formula using the toolbar button cloned the formula *and* deleted the current project due to a missing stop command.
3.02Bug Deleting a formula now asks for confirmation.
3.02Bug In some rare cases starting a fractal calculation could crash ChaosPro.
3.02Bug Changing task priority did not work. Additionally the menu item did not display the current settings.
3.02Bug Pressing F1 did not bring up the help file if you just used the number picker button or a slider.
3.02Bug Removing a coloring formula from a Quaternion did not work. Default formula was not correctly restored.
3.02Bug If you tried to assign a formula to a fractal for which it was not written (i.e. a quaternion formula to an escapetime fractal or vice versa), ChaosPro got confused. This has been changed: ChaosPro now complains if you want to assign a wrong formula to a fractal.
But notice: If there is a formula which has been written for "Escapetime" and can be used with Quaternions, then you can assign it to a quaternion. ChaosPro only complains if the formula then would produce compiler errors.
3.02Bug Loading and saving the config file skrewed up the entries "AnimPath" and "PicturePath" if the path contained a white space.
3.02Bug The configuration file calculated the size of the main application window wrong: Whenever the config file was written, the window size was 1 pixel too small.
3.02Bug If you edited a numberic value in an entry field and pressed return, the fractal is recalculated. If the entry field then lost focus, the fractal was recalculated again. This has been fixed: ChaosPro now checks whether the entry field actually changed its value since the previous recalculation.
3.02Bug Quaternion constants were not initialized correctly.
3.02Bug Compiling quaternion formulas containing constant subexpressions of type quaternion were not handled correctly by the compiler. Additionally, when a subexpression referenced a predefined variable it did not work correctly.
3.02Bug On some systems ChaosPro crashed on exit.
3.02Bug Sometimes (especially Win98) tooltips appeared *behind* the window...
3.02Bug If you had a fractal which used a formula and you rapidly changed formula parameters then ChaosPro sometimes crashed: Reason: You interrupted the calculation thread when it was compiling the formula. This left the compiler in an undefined state. Normally it does not matter because at the beginning of a formula compilation the compiler gets reset. Unfortunately some internal stacks were not reset...
This bug occured especially when rapidly changing formula parameters on complex formulas (because on complex formulas it is more likely that the interruption occurs during compilation and not after that in the fractal calculation...). And of course it occurred especially on slower systems (300Mhz and below).
3.02Bug Zoom animations were calculated wrong: Sometimes the fractal flipped upside down: Reason: When interpolating using Spline interpolation a corner gets interpolated without looking at another corner. Fixed: Now only the radius gets interpolated...



3.0Bug At program start ChaosPro tried to find out the IP adress of the computer it was running on (in case the user wanted to use the network calculation feature). Although this feature has temporarily disabled, the code was still there and on some systems automatically an Internet connection was established (when you use dynamic IP adresses (DHCP), you get your final IP adress when connecting to the provider). Now that code has been completely removed. Under no circumstances any secret data transmissions have been done by ChaosPro.
3.0Bug While scanning for convertable UltraFractal or FractInt formulas ChaosPro often tried to convert formulas which already had been converted. This happened because ChaosPro compared the file names (name of original file and name of already converted file) case sensitive, and sometimes this produced wrong results. So ChaosPro did not find the converted file and wanted to convert it again.
3.0Bug On several computers ChaosPro either crashed when saving an animation frame or the whole animation was corrupt. The exact behaviour varied. On some systems it was nearly impossible to create any AVI files, on some systems a few codecs worked. I think I have found a bug in ChaosPro. Now on my system all codecs work. Let me know if you encounter problems with the animations created by ChaosPro.
3.0Changed Image Manipulation feature did not work on 3D images (Smooth, AntiAlias, Enhace Detail etc.). This has been changed: They now work correctly with 3D images.
3.0Bug Compiler had a bug: Under some circumstances the wrong operation has been taken, "<=" instead of ">=", "b^a" instead of "a^b". This happened in complex formulas where operations were "hanging" and some floating point registers had to be unloaded to perform a complex operation.
3.0Bug Compiler had a bug: Iteration statements in for loops caused wrong alignment of jumps (==> crash).
3.0Feature Quaternion number type added.: Escapetime fractals can now declare variables as "quaternion". Please note: No transcendental functions are supported, only addition, subtraction, multiplication, division and all other elementary functions.
3.0Feature Functions added: Given a quaternion q=(qr,qi,qj,qk) "hiquat(q)" returns (qr,qi) as a complex number. "loquat(q)" returns (qj,qk) as a complex number. Given a complex number c=(cr,ci) "hiquat(c)" returns quaternion (cr,ci,0,0). "loquat(c)" returns quaternion (0,0,cr,ci).
3.0Feature Fractal type quaternion added.
3.0Feature Formula option flag QUATERNION added: When placed as an option after the formula identifier the formula is considered to be used with quaternions. Thus the predefined variables z and pixel are quaternion instead of complex. The formula compiler uses other icons in the compiler window for such formulas.
3.0Feature New fractal type Quaternion uses compiler formulas similar to type "Escapetime".
3.0Feature The fractal type "Layered Fractal" was not able to correctly accept 3D images.
3.0Changed On slow computers often a "Deadlock assumed" message box appeared: In order to avoid dead locks in the communication between the main thread and a calculation thread a timeout is defined. On slow systems the timeout value was too small, so often the box appeared. Fixed: Timeout is set higher.
3.0Bug Some predefined variables in compiler transformations were not initialized (x,y, screenpixel).
3.0Bug When loading a "LayeredFractal" the parameter "LeftOffset" was set to "BottomOffset" and "BottomOffset" was set to 0.
3.0Changed Exception handling implemented: Upto ChaosPro 2.1 software exceptions simply crashed ChaosPro so all unsaved work was lost. Exception handling now lets you continue your work. If a null pointer exception occurs during fractal calculation then the fractal is still there, but cannot be calculated. There is a chance that it will work if you undo your last change.
3.0Bug Compiler formulas got saved only when the user choosed the appropriate command or collapsed the folders. But ChaosPro did not save them when you changed a formula, compiled it and then exited the program. This has been fixed: Now as soon as you click onto "Compile" the formula gets saved (either when you choose the command, or when you collapse the folder, or when you close the compiler window, or when you close ChaosPro).
3.0Changed Windows can be resized only when the window really "supports" it, i.e. adjusts itself and its content to the new size. If it is not able to adjust itself, then resizing is disabled. Animation window and formula windows now can be resized.
3.0Bug IFS-Formulas: Changing the vector of an affine transformation did not work: All changes were applied to the first component (x-component).
3.0Feature Its now possible to 3D-transform an Escapetime fractal.
3.0Bug Compiler variable numIter was not initialized correctly (constantly counted upwards in each iteration, was never reset to 0).
3.0Feature Data-View tab to Escapetime fractal added: You may select a variable to display: When moving the mouse over the fractal the value of that variable will be displayed. Great for examining fractals, and great for creating your own formulas or colorings: You do not only see a fractal, you also can examine the direct output of your coloring formula.
3.0Bug Adding new formulas and cloning formulas contained a bug: If you compiled the formula, ChaosPro crashed due to non initialized variables. It only worked if you collapsed the formula file (the file then gets automatically saved!) and expanded it again (the file gets loaded, the load routine was ok).
3.0Bug Cut, Copy & Paste worked only in the compiler window. If you pasted anything into another window, chaospro crashed, if the compiler window was not open.
3.0Feature Comment can now contain some special variables which are evaluated when the file gets saved. This allows you to insert the save date, the calculation time and the resolution into the comment.
3.0Feature Alpha Channel added to Escapetime fractal: The compiler has an additional predefined variable (applies to transformations, formulas and colorings of Escapetime and Quaternion fractals). The result of this variable is stored as the alpha-value of the pixel.
3.0Bug 3D parameter window: "Suggest"-button could produce an invalid mapping: If ChaosPro thought that a linear mapping was the best (most simple case), then the resulting mapping was not valid.
3.0Feature Importing of UltraFractal formulas has been speeded up.
3.0Bug Choosing Menu/Fractal/Defaultvalues was dangerous: Sometimes it crashed ChaosPro.
3.0Bug In 8 bit palette mode an uninitialized color (=black) was used where the palette wrapped around (due to a "round" bug). This has been fixed.
3.0Bug Creating animations using a fractal type other than Compound, Julia24, Mandel24, Escapetime and LayeredFractal produced wrong results, because a parameter has not correctly been interpolated.
3.0Feature Tip window added: It provides some tips especially for beginners.
3.0Bug On some systems ChaosPro crashed on startup if no internet connection has been established. This was due to the initialization of the network feature. The network feature has now completely been disabled, so ChaosPro should not care about any network settings.
3.0Bug Converting FractInt parameter file entries of type=formula could crash ChaosPro due to an initialization error.
3.0Feature On startup ChaosPro now registeres its file types, if the file types are not already registered with another application (*.frm, *.par, *.map, *.ifs, *.l, *.ctr, *.cfm, *.ccl)
3.0Bug If there were different compiler formula files in different folders having the same name then ChaosPro correctly assigned only formulas from the first file found (i.e. if you had two versions of dmj.ccl in different folders, and if the second file had additional coloring formulas, then ChaosPro was not able to correctly assign formulas from the second file).
3.0Bug Closing the Compilerwindow could crash ChaosPro, because your current selection was not resetted, and thus during the close function the invalid current selection has been accessed.
3.0Bug Microsoft Visual C++ optimizer sometimes produces buggy code if "optimize" is chosen. Because optimizing reduces file size by about 20% and speeds up the routines, I only partially switched off the optimization. If you encounter crashes or other mysterious behaviour, it could either be my fault or the optimizers fault. Just let me know...
3.0Bug ChaosPro did not implement ceil, floor, round, trunc and cabs functions in the old formula parser. Thus using FractInt formulas with the formula parser in ChaosPro sometimes did not work (ChaosPro did not load that formula due to that unknown operation). This does not apply to the formula compiler: Importing such a *.frm file worked ok.
3.0Bug Saving a parameter to a write protected file crashed ChaosPro (If you copy ChaosPro from a CD, then all files are write protected...)
3.0Bug Sometimes changing a formula did not refresh all referencing fractals:
If you loaded FractInt parameter files and then allowed ChaosPro to convert them, then the formula file names did not have the proper ending, thus ChaosPro did not recognize them as referencers.
3.0ChangedConverting a fractal of type=Formula (old formula parser) always asked the user whether to convert the fractal. Menu item "Settings/Confirmation/Formula Fractal Conversion" lets you switch on/off this message box. If switched off, the fractal gets converted automatically.
3.0Bug Compiler function "zero" was not implemented correctly and thus did not work.
3.0Changed If ChaosPro wants to convert an old fractal of type=Formula, and during the conversion process the formula file is not there, ChaosPro tried to find the original formula file (*.frm-file) and converts it silently (leaving the old file unchanged, placing the converted file in directory \formulas\compiler): It was annoying that ChaosPro offered to convert a fractal, but did not warn about a non existant converted formula file.
3.0Bug exp-function for real numbers had a bug: The compiler returned the wrong number type.
3.0Feature FractInt formulas have been speeded up: In order to use the speed up you need to re-import FractInt formulas: ChaosPro now detects the fastest number type (FractInt only knows number type complex)
3.0Bug If you opened the online help file from within ChaosPro and there were several topics to choose from and you then did not click onto any topic, then ChaosPro was blocked forever: You were not able to do anything with ChaosPro and you were not even able to select a topic ==> deadlock.
3.0Bug Sometimes the help window did not show up: In order to correctly perform palette manager functions it is possible to adjust the focus to NULL. If the focus does not get restored, then all keyboard input, including "F1" for help, was sent to nirwana.
3.0Bug Adding a fractal of type=Escapetime or Quaternion to an animation crashed ChaosPro.
3.0Bug During import of UltraFractal formulas some predefined symbols were not recognized (especially pi and e). Thus these formulas were imported wrong. You need to reimport Ultra Fractal formulas.
3.0Bug On import of UltraFractal formulas ChaosPro created variables where it is not necessary: If it encountered the number "1e20", it imported it as 1e20 and created a variable named "e20". The formulas worked ok, but the variable just wasted space...
3.0Feature The optimizer in the compiler in ChaosPro now tries to detect whether a faster variable type can be chosen: It does not automatically choose it, but the message window will inform you about that: It will tell you that a variable named "foo" of type "complex" can be changed to "real". Check if it is really correct and then change it.
3.0Bug On saving parameter files ChaosPro used too few significant digits. This has been fixed.
3.0Bug A color model conversion routine contained a bug: Under some circumstances the conversion from a HSL color to a RGB color produced wrong results. You saw the bug if you created a Layered Fractal and merged two layers using HSL-Addition, Saturation or any other HSL coloring mode (especially when converting black the error was visible).
3.0Bug Under some circumstances the fractal colortable was not correctly initialized.
3.0Changed Drawing Layered Fractals has been changed: It is not faster, but it seems to work faster: The final image gets drawn starting from the middle of the window going up and down completely.
3.0Changed ChaosPro allowed you to specify complex constants as (1/3) instead of (1,3) or (1+3i). This is in conflict with another meaning: (1/3) could be 0.3333333, too. ChaosPro now interprets (1/3) as 0.33333333333 (and thus conforms to UltraFractal).
3.0Chnaged The compiler function "^" (power) was not implemented correctly: If you calculated 3^4 it returned (12,0) as a complex number instead of 12 as a real number.
3.0Bug If a compiler formula contained several user functions and some user functions were inside an if clause which could be eliminated because the condition always evaluated to false, then the user functions did not work properly.
3.0Bug If you loaded UltraFractal *.upr parameter files and the gradient of a layer had knots lying directly beneath each other, then it was possible that ChaosPro lost a knot (due to a rounding error, ChaosPro only has about 250 knots, UltraFractal allows 400 knots)
3.0Bug Saving a fractal parameter folder did not work: The filename in ChaosPro was invalid.
3.0Bug If you imported an UltraFractal parameter file which did not use any coloring then it was imported wrong: The default coloring methods in ChaosPro and UltraFractal are different. This has been changed: Such UF-fractals now get assigned a special coloring formula.
3.0Bug If you wanted to deassign any coloring formula from a fractal (by pressing the "Clear"-button) then the parameter and function list was not updated to reflect the change.
3.0Feature ChaosPro now correctly handles UltraFractal Alpha channels.
3.0Bug Transformations using functions like "exp" could crash ChaosPro.
3.0Feature Layered Fractals now correctly display calculation progress.
3.0Bug Import Modul for UltraFractal formulas contained a bug: If a variable with the same name was used as a variable and a parameter, then ChaosPro did not recognize the parameter (which has the prefix @). Instead, it throught, it has already been defined.
3.0BugImport module for UltraFractal formulas did not adjust user functions: In ChaosPro compiler formulas (and all variables and functions) are case sensitive, in UltraFractal not. Thus during conversion all variable names and all function names must be converted to lower case. And this did not work for user functions.
3.0Bug Setting a default value for user functions did not work.
3.0Bug Loading UltraFractal *.upr files which used mixed case variable and function names were not loaded and converted correctly.
3.0Feature ChaosPro did not implement FastJulia and FastMandel from UltraFractal. Thus fractals using these formulas were not calculated correctly.
3.0Feature ChaosPro now correctly handles UltraFractal opacity values of solid colors (inside and outside). Opacity value of solid color can now be adjusted.
3.0Changed Calculation routine of Layered Fractals now pays better attention to multi pass calculation.
3.0Changed function "arg(0,0)" now returns -pi/2 instead of 0 (i.e. behaviour adjusted to conform to UltraFractal)
3.0Bug When you assigned a different formula to a fractal and the formula contained a variable with the same name as a parameter from the previously assigned formula, then ChaosPro got confused.



2.1Bug Bug fixed: New memory management system in ChaosPro detected several bugs, where the program accessed invalid memory (this memory management system will be removed in the final version):
  • Fixed: Opening the formula editor window could produce a crash
  • Fixed: Deleting an animation key frame could produce a crash
  • Fixed: Loading a fractal could crash ChaosPro
  • Fixed: Opening a file requester could produce a crash (even at startup of ChaosPro, where the file requester structures were initialized)
  • Fixed: Calculating a formula fractal accessed invalid memory (could have caused crashes)
  • Fixed: Compound fractal could crash on calculating.
2.1Bug Subtype of fractals (formula, Julia/Mandel, etc.) has not been saved.
2.1Changed Toolbar now has tooltip hints
2.1Changed Toolbar now is a system conform object and can be adjusted using the system toolbar configuration dialog.
2.1Changed Edit Controls with positive range (minimum>=0) do not show '+' signs in front of numbers
2.1Feature Elimination and Periodicity checking logic added to Julia24/Mandel24/Julia/Mandel (makes calculation faster)
2.1Feature atan2 function added to formula parser
2.1Bug Pressing the tab key did not take care of invisible windows, i.e. pressing the tab key could activate an invisible window. Therefore deactivating that invisible window could produce a crash. So if you encountered crashes soon after pressing the tab key (and nothing visible was activated), then perhaps it was this bug.
2.1Bug Mystery solved: Activating a window in ChaosPro did not bring all application windows to front, instead, they remained at the z order position where they were...It all depended on an invisible popup window (the popup window on all entry fields) created at startup of the program.
2.1Bug Message boxes in ChaosPro did block only input into the main window, but not input into any other window.
2.1Bug ChaosPro could crash, if the fractal coloring algorithm produced strange values (e.g. Julia24, Palette mode=interpolated, Coloring=DEM, Bailout=1 ==> crash)
2.1Bug Deleting a fractal did not update the fractal specific parameter windows. Instead, you had to select another fractal manually.
2.1Bug Renaming a fractal did not update the window titles.
2.1Bug Saving a fractal image (as *.png) did not work, except you saved any parameter file before... ChaosPro simply crashed.
2.1Feature ChaosPro now can save images additionally in BMP and JPEG format. Loading images is supported only for PNG and JPEG images, because only these formats allow storing parameters inside the image.
2.1Bug Double clicking an animation folder (Fractal Tree Window) crashed ChaosPro.
2.1Feature Compiler added: Unlike the formula parser the compiler additionally compiles the formula (in native machine code), therefore the formula normally runs at least as fast as if it would have been compiled using a C/C++ compiler.
When I say "at least", then I mean, that most of the time the formulas run even faster, which is not a mystery, because the compiler in ChaosPro of course "knows" all about complex numbers, whereas a standard compiler does not know anything and thus the user has to code the operations using double numbers...
2.1Feature Compiler Window added to administer compiler formulas: There are three types of formulas: Transformations, iteration formulas and coloring formulas.
2.1Feature Fractal Type Escape Time added: Uses compiler formulas, replaces type="Formula"
2.1Feature Import parser for Ultra Fractal formulas (transformations, formulas, colorings) added. Ultra Fractal formulas, transformations and colorings can be loaded into ChaosPro. They are converted on the fly into the ChaosPro-syntax.
2.1Bug Animations did not work most of the time: The resulting AVI-file was bad. Mainly this was due to the fact that a codec silently produces crap if the input format is not suitable (for example, the Microsoft codecs can only handle 8 bit input ==> AVI file is crap if a 3D image is selected). Additionally, the Intel Indeo 3.2 and the Cinepak codec won't work at all (don't know why). ChaosPro cannot hide these codecs (the codec selection window comes from the operating system). But now ChaosPro warns the user if a wrong codec is selected. If the codec can only handle 8 bit images, then ChaosPro suggests to automatically dither the images (if necessary).
2.1Feature Palette interpolation added (upto version 2.0 only linear interpolation of palette knots was possible)
2.1Bug Moving interpolation knots in palette editor could produce undesired additional knots.
2.1Bug ChaosPro did not release threads, once allocated. Thus each time a fractal was calculated, about 16 KB of memory got wasted. The number of threads so constantly increased.
2.1Changed Toolbars now cannot be put in separate windows. Menu items for those actions have been removed.
2.1Changed Network support has been disabled. Because the code needs to be rewritten and I have not enough time the code has been temporarily removed. The next version will be able to use this feature again.
2.1Feature Fractal Type "Layered Fractal" added: Supplements the "Compound Fractal" from V2.0, which is still there but should not be used any more.
2.1Feature Import feature for UltraFractal parameter files (*.upr-Files) added: ChaosPro can load Ultra Fractal *.upr-files (i.e. parameter files). They get converted to fractal type "Layered Fractal". Please note that you will need to download the Ultra Fractal formula compilation in order to use Ultra Fractal *.upr files.
2.1Feature Fractal type Escapetime and Layered Fractal can be animated (thus *.upr-files from Ultra Fractal can be animated).
2.1Changed Palettes now are not "referenced" any more: previous versions of ChaosPro stored only references to palettes, i.e. if you had three fractals, all using palette "Matisse", and you then changed this palette, ChaosPro adjusted all three referencing fractals. In other words: Each fractal had a parameter called "palette name", and then there was a list of palettes where each element is identified by its name. Now palettes are only presets: Each fractal has an anonymous palette, and you can change each color using the palette editor window. All changes affect only the current fractal.
Basically nothing has changed. But now you do not end up with thousands of palettes. You can have thousands of fractals where each fractal has its own specific palette, and the number of palettes in the palette drop down box stays the same...
2.1Changed Fractal type Compound removed. Although all routines and windows still are there, you cannot directly choose this type. Please use the fractal type "Layered Fractal". For compatibility you can load old parameter sets from ChaosProV2.0. On load the fractal type Compound will be created.
2.1Changed Fractals which use type=formula get automatically converted to type=Escapetime. FractInt *.frm and old ChaosPro *.frm formula files get automatically converted to compiled formulas. The converted fractal then automatically uses the converted formula. You should not use the fractal type "formula" any more...
2.0Bug I spent much time in programming the formula editor. And what happened? I added another window with another feature, so that a multiline edit field can be read only. But I did not test the other MLE's. So suddenly the multiline edit field, where you should type in your formula, was read only, too. I did not recognize that :-(
Btw: The same bug appeared in the comment window, so you were not able to change the comment of a fractal.
2.0Changed Animation windows now are in a single window: You can switch between them using a Tab control.
2.0Bug ChaosPro crashed, if you manually entered a value into the offset field of the palette editor window and closed that window while the entry field still was activated (because ChaosPro updates the offset value as soon as the entry field looses its focus: So if you close the window, the color display fields are deleted, after that the entry field is deleted, thus it looses the focus, thus ChaosPro wants to set the new offset, but the color display fields already are deleted...)

Note: For the same reason the size window crashed, if you entered a number and closed the window.
2.0Changed On loading a PNG image ChaosPro always added scrollbars to a window. Changed. Now ChaosPro only adds scrollbars if necessary (i.e. if image to be loaded would be too big to fit into a window).
2.0Bug If you loaded a PNG fractal image and then redraw the fractal (NOT recalculated), then the fractal was single coloured. Fixed: Fractal now will be completely recalculated.
2.0Changed If you move an animation key frame outside the animation keyframe timeline, then mouse moves are still accepted. This enables you to move the last animation key to a later position.
2.0Changed Animation Smooth button removed. It had no function assigned.
2.0Feature If you add the first animation key to an animation, then the animation name automatically is set to the name of that fractal. You can change it afterwards, if you like.
2.0Changed If you add an animation keyframe, then always the animation width and height are initialized to the current fractal values (i.e. animation size = size of fractal to be added as animation frame). You can change it right before actually calculating the animation, but I think, if you add a fractal of size 480x360 to the animation system, then you expect the animation to be in the same format...
2.0Changed If you start an animation in AVI mode, then the file name in the "Save As" dialog already shows a *.avi extension, if not existant in the animation name itself...
2.0Changed Animation system now checks whether recalculation of animation fractal frame is needed. So for example you can create a palette morphing animation, where only the first frame will be calculated, after that only the next palette is applied.
2.0Bug If you started an animation and during the initialization routine an error occurred, then ChaosPro crashed.
2.0Bug If there were more than one fractal calculated and you added (or removed) a scrollbar from one fractal window, then suddenly the other fractal was activated. Fixed now, switching to scrollbar mode does not change the currently activated fractal. (reason for this behaviour: "Add/Remove a scrollbar" means: Close the window, open the window with/without scrollbars ==>
When closing the window, automatically another window gets the focus, thus ChaosPro thinks that another fractal has been activated. The message loop thread then activates the other fractal, while the original routine continues opening the window of the other fractal with/without scrollbars...)
2.0Bug Switching to/from scrollbar mode doesn't redraw the fractal any more. Minimizing/Restoring a fractal image does not redraw the fractal any more, too.
2.0Bug Due to an unknown reason I always added 1 to the vertical height whenever calculating the client area of a window. This resulted in fractal images being one pixel too heigh whenever calculating them.
I don't know why I added that pixel, but I do know, that there was indeed a reason. If you now encounter some windows, which seem to be one pixel too small, please let me know...
2.0Changed Size window now contains some more default sizes, 2048x2048 has been removed from the list (just to keep the window small...)
2.0Bug Palette animations did not work with Tiera_Julia and Tiera_Mandel: The algorithm used the normal palette in the fractal itself, which does not change, instead of the palette being calculated by the animation system. (fixed now)
2.0Bug Reloading a saved animation parameter file did not work.
2.0Bug Converting an animation to fractal pictures (using Convert-button) did not create palettes. Now palettes get created. This may result in many palettes appearing in Palette combobox...
2.0Changed Animation system used HSV coloring model for palette interpolation. Although this model is great if you want to calculate a smooth range from one color to another, it is a bad idea if used for palette morphing:
Example:
Palette frame 1Index 153red=0green=178blue=228
Palette frame 10Index 153red=231green=0blue=3
 
Palette frame 1Index 154red=0green=174blue=232
Palette frame 10Index 154red=235green=0blue=0

What happens, if you interpolate the two colors, lying directly beneath?
  • Index 153 should interpolate between a H-value of about 185 degree to 0 degree
  • Index 154 should interpolate between a H-value of about 175 degreee to 0 degree
So normally index 153 would be calculated as follows, producing a smooth range (note that 360 degree =0 degree):
frame #... ... ... 10 
Hue185194203212...... ...3510
Index 154 would interpolate as follows:
frame #1234.........910
Hue175166157148...... ...90

So both colors start with a similar color and end up with a similar color, but the interpolation takes totally different ways to each end color...

So an interpolated palette most of the time had sudden jumps in it, which look unnatural...
Now simple RGB interpolation is used. Interpolated colors may look unnatural (i.e. if you interpolate pure blue and pure yellow, an in-between palette will show grey:
RGB=(0/0/255) to (255/255/0) increases R and G, and decreases B, so after half of the steps you have (128/128/128) (==grey), which for a human being looks unnatural: For human eyes there is no grey between blue and yellow...
2.0Changed If you deleted a palette, then the first palette was selected.
Changed now:
If you delete a palette, then the previous palette gets selected (better if you have 50 palettes you want to delete (created by Convert from the animation system): Simply select the last palette and click onto delete...)
2.0Bug Choosing another font did not work properly with the new tabs in Animation window and 3D parameter windows.
2.0Bug If you chose another font which contained spaces, then the font was not saved/loaded correctly. So you were not able to choose e.g. Arial Narrow. Fixed: Config file now recognizes fonts with spaces correctly if enclosed by ", e.g. "Arial Narrow"...
2.0Bug Animations created by ChaosPro could not be loaded by the ActiveMovie Control. Don't know why. All other players were able to read those files. So I switched to another way of creating AVI files, and now they can be loaded by ActiveMovie...
2.0Changed Compression Manager settings (Animation 2 window) removed. The compression manager dialog gets automatically opened as soon as an AVI file should be saved.
2.0Feature Slider to Animation window added, which lets you specify the frames per second of the resulting AVI file.
2.0Feature Colormapping window now has two more controls, which let you specify the range of the speed and accelerator sliders.
2.0Bug If you switched to Scrollbar mode back and forth very fast, the window size could change, as the routine accessed a not fully initialized window.
2.0Bug A minimized fractal window showed a size of 4x1 pixels in the status bar. Fixed: Correct size is shown in the status bar.
2.0Changed Closing a fractal window activated the fractal belonging to another opened fractal. Quite annoying if the other fractal belongs to another folder, which then gets activated.
Fixed now: Closing a fractal window does not influence the currently activated fractal. So if you close a fractal window, then after closing it, the same fractal stays selected...(although maybe the window of another fractal may have the keyboard and mouse focus...)
2.0Bug Errors appearing during creation of an AVI file were not handled. Fixed: Error text now should give some hints about whats wrong...
2.0Bug Status bar did not show the correct fractal type for Plasma fractal.
2.0Bug Fractal Selection Window did not work with Tiera_Julia and Tiera_Mandel fractal types.
2.0Feature Fractal Tree Window added. Because it seems to be quite uncomfortable having two combo boxes, the one containing fractal projects, the other containing the fractals itself, I added a window, which shows a hierarchical view of the projects and fractals. This way you can reorganize the fractals, i.e. remove them from one folder, adding them to another folder (simply by drag and drop). Double clicking (or pressing return) on a fractal starts the calculation.
2.0Bug Again, I checked the routines for setting the fractal size and removed an unconsistency, which could have lead to fractals calculated at 640x481, but displayed in a window, whose size was 640x482...
2.0Feature Fractal Type Compound added:
This type is not a new fractal. If you create an instance of that type, then you get an empty fractal, which does not show anything.
But:
Each instance of this fractal maintains a list, which you can see in parameter window 1. And you can add other fractals contained in the current folder to this list: By using the Fractal Tree Window you can easily take a fractal from another folder and drag/drop it into the same folder as the compound fractal...

And what happens?
As the name implies, it combines all fractals, which have been added to its list.
Now, how does it combine the fractals?
There are some possibilities:
First of all, it can combine the fractals by using transparency, i.e. the first fractal defines the background, the second fractal defines the first layer, etc. You can define the transparency of layer 1 by changing the factor of layer 1. If you reduce this factor, you'll see, that the frontmost fractal gets transparent and the background fractal (the first in the list) gets visible. (Same effect as with PaintShopPro by using Layers and changing the transparency...)

As you can imagine, several other merge types are possible. One can simply add the iteration values of each fractal in the list (or, to be more general, add the buffer values), one can subtract the buffer values, multiplicate, divide, take the maximum, minimum, average.
Or the effect of merging can be applied one step later, after the color of each fractal has been calculated. So the resulting compound fractal gets the maximum of each red, green and blue component, the average, or whatever.

To allow you more merge types, the formula editor has been invoked. The last two merge types let you define a formula. 10 variables are available (L0 upto L9), specifying the value of the corresponding layer.
So if you choose merge type Buffer(formula) and specify the formula L0+sin(L1)+L2/L3, then the resulting compound fractal is computed pixel by pixel as follows:

for x=0 to width loop
    for y=0 to height loop
       in each layer take buffer value at position (x/y)
       For each layer you have the buffer value, store that value in L0 for layer0, in L1 for layer1, in L2 for layer2, etc.
       Calculate L0+sin(L1)+L2/L3 ==> result for compound fractal.
       Normal coloring parameters get applied to this value in order to calculate an RGB value
    next y
next x

If you choose merge type=RGB(formula), then you can specify a formula for each color component. It this case of course the color palette for the compound fractal has no effect (the colors are taken from the layers in the layer list, and then they are combined in some way).

And last but not least: The animation system is capable of animating a compound type.
How about a compound fractal containing a Julia set and a Mandelbrot set, using merge type "Transparency". Then you can calculate an animation, where the Mandelbrot set vanishes and the Julia set smoothly appeares (by animating the transparency), and additionally you can zoom into the Julia set. Looks quite funny: A smoothly appearing Julia set zoom in fractal in front of a Mandelbrot set.
2.0Feature Compound type enhanced: Each layer now can have its own position within the compound fractal.
Additionally you can specify for each layer, which buffer value to take. Most fractals only have a single buffer, so there is nothing to change. But fractal type Tiera_Julia and Tiera_Mandel have three separate buffers, and now you can change, which buffer you want to take. If you add the same Tierazon fractal three times to a single compound fractal and if you specify another source buffer for each layer, then you should get a compound fractal quite similar to the original fractal, but now you have the chance to mix the buffers just as you like (and not only those few mixing modes ChaosPro offered you within the Tiera_Julia and Tiera_Mandel types...)

Note: A Compound fractal is always a 24 bit fractal. You cannot color cycle such a fractal.
2.0Feature Fractal type IFS (iterative function scheme, iterative function system or whatever it is called) added.
It is compatible to FractInt, so you can load FractInt formula files (for example FractInt.ifs from the FractInt distribution).
ChaosPro is able to accept formulas for each element, making it much more powerful than FractInt (to be honest, not more powerful, but rather more comfortable)...
Parameter window 1 for this type contains four parameters, which you can refer to in each formula element. For example, you could write 'p1' instead of '0.04' for an element, or you could write 'p1+sin(p2)' for another element.
Each fractal you then create takes its own parameters p1 to p4 and so calculates the resulting formula on the fly.
Formula editor for this fractal type will be added in future (currently you have to edit that formula file by hand and restart the program, just as in FractInt...)
2.0Feature Fractal type LSystem added, compatible to FractInt, so you can load FractInt.l formula files.
2.0Feature Formula editor for IFS added, so you do not need to open a text editor in order to edit a formula as you have to do in FractInt.
2.0Feature Formula editor for LSystem added, so you do not need to open a text editor in order to edit a formula as you have to do in FractInt.
2.0Changed Compound fractal: When adding a new layer to a compound fractal, it gets automatically selected (thus mergetype and factor are initialized).
2.0Changed Compound fractal: When adding a new layer or when calculating a compound fractal, it is always placed in front of the layers (and not behind all of them).
2.0Bug New memory management system in ChaosPro detected several bugs, where the program accessed invalid memory (this memory management system will be removed in the release version)
2.0Bug Opening the formula editor window could produce a crash
2.0Bug Deleting an animation key frame could produce a crash
2.0Bug Loading a fractal could crash ChaosPro
2.0Bug Opening a file requester could produce a crash (even at startup of ChaosPro, where the file requester structures were initialized)
2.0Bug Calculating a formula fractal accessed invalid memory (could have caused crashes)
2.0Bug Compound fractal could crash on calculating.