Changes from ChaosPro V2.1 to V3.0

Notes:

  • Bug fixed means that the bahaviour was not intended by the author and has been changed.
  • New means the feature is new
  • Changed means the behaviour of ChaosPro has been changed in any way, most of the time in order to make ChaosPro more intuitive.

List of Changes

  • Bug fixed: 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.
  • Bug fixed: 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.
  • Bug fixed: 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.
  • Changed: 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.
  • Bug fixed: 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.
  • Bug fixed: Compiler had a bug: Iteration statements in for loops caused wrong alignment of jumps (==> crash).
  • New: 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.
  • New: 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).
  • New: Fractal type quaternion added.
  • New: 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.
  • New: New fractal type Quaternion uses compiler formulas similar to type “Escapetime”.
  • New: The fractal type “Layered Fractal” was not able to correctly accept 3D images.
  • Bug fixed: 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.
  • Bug fixed: Some predefined variables in compiler transformations were not initialized (x,y, screenpixel).
  • Bug fixed: When loading a “LayeredFractal” the parameter “LeftOffset” was set to “BottomOffset” and “BottomOffset” was set to 0.
  • Changed: 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.
  • Bug fixed: 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).
  • Changed: 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.
  • Bug fixed: IFS-Formulas: Changing the vector of an affine transformation did not work: All changes were applied to the first component (x-component).
  • New: Its now possible to 3D-transform an Escapetime fractal.
  • Bug fixed: Compiler variable numIter was not initialized correctly (constantly counted upwards in each iteration, was never reset to 0).
  • New: 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.
  • Bug fixed: 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).
  • Bug fixed: 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.
  • New: 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.
  • New: 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.
  • Bug fixed: 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.
  • New: Importing of UltraFractal formulas has been speeded up.
  • Bug fixed: Choosing Menu/Fractal/Defaultvalues was dangerous: Sometimes it crashed ChaosPro.
  • Bug fixed: 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.
  • Bug fixed: 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.
  • New: Tip window added: It provides some tips especially for beginners.
  • Bug fixed: 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 ab
    out any network settings.
  • Bug fixed: Converting FractInt parameter file entries of type=formula could crash ChaosPro due to an initialization error.
  • New: 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)
  • Bug fixed: 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).
  • Bug fixed: 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.
  • Bug fixed: 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…
  • Bug fixed: 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.
  • Bug fixed: Saving a parameter to a write protected file crashed ChaosPro (If you copy ChaosPro from a CD, then all files are write protected…)
  • Bug fixed: 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.
  • Changed: Converting 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.
  • Bug fixed: Compiler function “zero” was not implemented correctly and thus did not work.
  • Changed: 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.
  • Bug fixed: exp-function for real numbers had a bug: The compiler returned the wrong number type.
  • New: 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)
  • Bug fixed: 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.
  • Bug fixed: 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.
  • Bug fixed: Adding a fractal of type=Escapetime or Quaternion to an animation crashed ChaosPro.
  • Bug fixed: 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.
  • Bug fixed: 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…
  • New: 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.
  • Bug fixed: On saving parameter files ChaosPro used too few significant digits. This has been fixed.
  • Bug fixed: 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).
  • Bug fixed: Under some circumstances the fractal colortable was not correctly initialized.
  • Changed: 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.
  • Changed: 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).
  • Changed: 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.
  • Bug fixed: 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.
  • Bug fixed: 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)
  • Bug fixed: Saving a fractal parameter folder did not work: The filename in ChaosPro was invalid.
  • Bug fixed: 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.
  • Bug fixed: 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.
  • New: ChaosPro now correctly handles UltraFractal Alpha channels.
  • Bug fixed: Transformations using functions like “exp” could crash ChaosPro.
  • New: Layered Fractals now correctly display calculation progress.
  • Bug fixed: 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.
  • Bug fixed: Import 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.
  • Bug fixed: Setting a default value for user functions
    did not work.
  • Bug fixed: Loading UltraFractal *.upr files which used mixed case variable and function names were not loaded and converted correctly.
  • New: ChaosPro did not implement FastJulia and FastMandel from UltraFractal. Thus fractals using these formulas were not calculated correctly.
  • New: ChaosPro now correctly handles UltraFractal opacity values of solid colors (inside and outside). Opacity value of solid color can now be adjusted.
  • Changed: Calculation routine of Layered Fractals now pays better attention to multi pass calculation.
  • Changed: function “arg(0,0)” now returns -pi/2 instead of 0 (i.e. behaviour adjusted to conform to UltraFractal)
  • Bug fixed: 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.

List of Changes from V2.1 to V3.0