FAE Fractal Animation Engine v2.10b (public release) Copyright 1995 by Brian Towles ** This program uses Wesly Loewer's bignum arbitrary precision library Fractal Animation Engine (previously Fractal Animator) is a utility for creating animations using Fractint version 19 or greater. It "compiles" simple script files that provide flexible output and excellent control of animations. Since FAE is heavily based on Fractint, a working understanding of how to use Fractint makes using FAE much easier. >> IDEAS BEHIND FRACTAL ANIMATION ENGINE << The whole idea for Fractal Animation Engine originated when I needed to created a series of single images, using Fractint, and capture them frame-by-frame to video tape. I had a few zooming utilities for Fractint, but their output was disappointing. So I wrote small C programs to make giant batch files to control Fractint via the command line, which worked well, but it was somewhat complex. I've simplified all the things that I've learned about fractal animation into a easy to use command line tool. FAE solves these problems presented in other zooming utilities I've seen: - The command line length is limited from a batch file because of DOS, so image information is stored in Fractint .PAR files, for greater precision and more options - A substitute for the linear zooming formula, which creates a slow to fast zoom speed; FAE's "power" formula creates a smooth zoom, and keeps the aspect ratio intact - Multiple input and output options, for real control of what is written to the .PAR files - Many helpful functions are provided: zooming, panning, rotation, .PAR input, parameter functions, .MAP file input, palette transition, color cycling and additional .PAR file input for custom animations - Arbitrary precision for deep zooming >> USING FRACTAL ANIMATION ENGINE << To create an animation you first need to create a script file for FAE. The file must contain the animation name followed by braces that enclose the animation information: SAMPLE.FAE: my_animation { information more information } The simplest animation would have just an initial condition: my_animation { initcm = 0.5/0.5/1 } The initcm command tells FAE the initial window for the animation (in center-mag style). A final condition could be added with finalcm in the same manner -- FAE will automatically create the transition between the windows. Several other commands could also be included at this point, which are described in the next section. The following command line would create the animation: FAE SAMPLE.FAE/my_animation >> FRACTAL ANIMATION ENGINE COMMANDS << initial = xmin/xmax/ymin/ymax[/x3rd/y3rd] final = xmin/xmax/ymin/ymax[/x3rd/y3rd] - Fractint style corners with optional rotation parameters, defining the initial and final windows respectively (this style cannot be used if the image requires arbitrary precision). initcm = xcenter/ycenter/mag[/xmag/rotation/skew] finalcm = xcenter/ycenter/mag[/xmag/rotation/skew] - Fractint style center-mag with optional transformations, defining the initial and final windows respectively initpar = PARfile/module finalpar = PARfile/module - Fractint PAR file containing initial or final animation information; parameters, windows, and colors are read from the files initparam = #[/#.../#] finalparam = #[/#.../#] - Up to ten values separated by backslashes (/), defining the initial and final parameters for the animation initmap = MAPfile finalmap = MAPfile - MAP file containing the initial or final color palettes angle = formula - A function used to describe the angle of the window in radians; an increasing value results in clockwise rotation, and a decreasing in counter-clockwise param-[name] = formula - A function used to describe the given parameter name or number. Parameters that contain mulitple parts can be separated by backslashes, ex: param- potential=255/500*r+200/1000*r. A numbered param refers to an entry in the Fractint command "params=", ex: param- maxiter=5000+5000*r, param-1=sin(2*p*r) colorcycle = formula - A function that tells how far to cycle the palette for each frame, ex: colorcycle=256*r will rotate the palette once over the entire animation. pan = linear | power zoom = linear | power - The formulas used to calculate transitions between initial and final windows (default is linear). Pan refers to transitional movement of the window, zoom refers to the window size. Setting zoom=power will create smooth, apparently linear zooms. Pan=power only works best on slower zooms, and doesn't work for fast zooms. steps = # - The number of animation frames to create (default is 30) batname = filename parname = filename - The names of the output BAT and PAR files respectively, the default values are the first eight letters of an animation's name excludelast = yes | no - Yes to exclude the last frame in calculations, useful for linking more than two frames together to create an animation (default is no) dist = # - Splits the animation BAT and PAR files into # of groups for distributed processing (default is one) extra = text - Other information to include in each PAR file entry; extra info must be quoted if it contains spaces video = videomode - The Fractint video mode to use (default is F3, 320x200x256) type = fractaltype - The Fractint fractal type to use (default is mandel) >> FRACTAL ANIMATION ENGINE FUNCTIONS << Functions and constants supported by Fractal Animator are: +, -, *, /, ^(power), cos, sin, tan, e, and p(pi). Constant values are also acceptable arguments. Here are the basic rules: no implied multiplication: ex. 3r+3 is invalid; all trig functions are followed by a set of parentheses: ex. sin(r). The only variable is r, which is always the ratio of the current frame over the total number of frames. >> A FEW COMMON QUESTIONS << Q: Why do the frames seem to be random, and unrelated? A: Your trying to cover to much ground. Try adding more steps, changing the zoom or pan formula, moving the frames closer together, or lessening the magnitude of parameter functions. Q: How do a test an animation to see if it is what I wanted? A: Simply load the .PAR file created by FAE into Fractint, and view a couple of single frames (type @ from the main menu and then press F6 to load a new .PAR file). Q: Why do frames begin shutter or wiggle when animated? A: Try extra="float=yes passes=1". Parameter functions might also need to be smoothed or lessened in magnitude. Q: Why don't formula fractals (from .FRM files) work when loaded from a .PAR file? A: FAE version 2.10b doesn't detect all the necessary formula information needed to create the .PAR file, so this information must be included with extra=. Q: When do I need arbitrary precision? A: FAE will automatically detect the necessary precision for every animation, however arbitrary precision is only needed on very deep zooms. >> EXAMPLE ANIMATION FILES << Here are some animation files with basic techniques: To create a spiraling zoom-in (fract.par/image1 is zoomed out): spiral { initpar=fract.par/image1 finalpar=fract.par/image2 angle=4*p*r } To create a swirling effect: swirl { initpar=fract.par/image1 param-1=2*sin(r*2*p) param-2=2*cos(r*2*p) } Also included are several example animations (examples.fae). >> THANKS << Thanks to Fractint, which my entire program is based on. Thanks to Borland and their C compilers. Also, thanks to Tim Wegner for his advice on the advancement of the program and to Wesly Loewer for the bignum arbitrary precision library. >> HISTORY << 1.0: 7/18/94 - first release 1.0a: 8/3/94 - functions can have spaces, command-line files can contain blank lines, partially draw images can be loaded, output can be in scientific notation for greater precision. 1.1: 8/20/94 - Added new switches /e, /u, /q and /!. Now support center-mag output for Fractint v19. 2.03: 4/29/95 - Total rework of the entire program: new script file format, arbitrary precision, all output in center-mag style, palette information included in .PAR files, distributed processing feature added. 2.10: 5/22/95 - Improved the calculation performance and got rid of the prec= command. Added colorcycling and reworked the pan=power formula. Fixed arbitrary precision bug for zooms when mag > 10e30. 2.10b: 6/3/95 - Bug fixed in pan=power formula, new command line syntax. >> LEGAL JAZZ AND MONEY << Disclaimer: This program was designed to help people get into fractal animation, thus the name of the program. I take no responsibility for what the program does, so use Fractal Animation Engine at your own risk. Distribution: This program claims to be Shareware, so feel free to distribute it as you will, but for no charge. Do not bundle it with other products, and distribute it in original form (with all files: FAE.EXE, FAE.TXT, REGISTER.TXT, and EXAMPLES.FAE). If you are one of those Shareware Houses or want to distribute this program for a small charge, you must first contact me in person and get my okay, before doing so. Finally Registration and Support: The program is Shareware, but I urge you to register your copy of the program. Please see REGISTER.TXT for more information. A lot of work went into planning this program and trying to make it as comprehensive as possible. If you write with any technical questions or bugs, I'll try to respond. I'm also interested in adding support for other fractal programs, so if you know any good ones, please tell me! Thanks: Brian Towles 8109 Running Cedar Trail Raleigh, NC 27615 e-mail: towlesb@ncssm-server.ncssm.edu (until 9/95) towlesb@nando.net (soon another account at Georgia Tech)