From cab0e4c6c5420e6253bce50127a0c70fb0cd0552 Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Sun, 15 Feb 2015 15:50:59 +0100 Subject: Improve command line interface Initial arguments-based cli, replacing the three tools -animate, -genome and -render with just one. Still need to get rid of most calls to getenv. --- README.txt | 837 ------------------------------------------------------------- 1 file changed, 837 deletions(-) delete mode 100644 README.txt (limited to 'README.txt') diff --git a/README.txt b/README.txt deleted file mode 100644 index e7a30cc..0000000 --- a/README.txt +++ /dev/null @@ -1,837 +0,0 @@ -FLAM3 - cosmic recursive fractal flames -see the file COPYING for the license covering this software. - -This is free software to render fractal flames as described on -http://flam3.com. Flam3-animate makes animations, and flam3-render -makes still images. Flam3-genome creates and manipulates genomes -(parameter sets). A C library is also installed. - -Note: the following instructions are written for Linux users. Windows -users may install the cygwin package to get the "env" command or set -the envars in your windows command prompt manually. That means -instead of a command like - - env dtime=5 prefix=foo. in=test.flame flam3-animate - -use the following set of commands: - - set dtime=5 - set prefix=foo. - set in=test.flame - flam3-animate - -As usual, to configure, build, and install: - - ./configure - make - sudo make install - -If this has problems, you may need to re-generate some configuration -files. Do the following steps: - - libtoolize - aclocal - automake - autoconf - -and then try to configure and install as above. - -This package depends on development packages for libz, libpng, -libjpeg, and libxml2. - -To test it, run - - flam3-render < test.flam3 - -and it should produce 00000.jpg and 00001.jpg, one image for each - element in the parameter file. To make an animation run - - flam3-animate < test.flam3 - -and it should produce 100 files named 00000.jpg through 00099.jpg that -interpolate between the two elements. - - -envar default meaning -===== ======= ======= -prefix (empty) prefix names of output files with this string. -begin j time of first frame to render (j=first time in input file) (animate only) -end n-1 time of last frame to render (n=last time specified in the input file) (animate only) -time NA time of first and last frame (ie do one frame) (animate only) -frame NA synonym for "time" (animate only) -in stdin name of input file -out NA name of output file (bad idea if rending more than one, use prefix instead) -template NA apply defaults based on this genome (genome only) -dtime 1 time between frames (animate only) -fields 0 if 1 then render fields, ie odd scanlines at time+0.5 -nstrips 1 number of strips, ie render fractions of a frame at once (render only) -qs 1 quality scale, multiply quality of all frames by this -ss 1 size scale, multiply size (in pixels) of all frames by this -jpeg NA jpeg quality for compression, default is native jpeg default -format png "jpg" or "ppm" or "png" -pixel_aspect 1.0 aspect ratio of pixels (width over height), eg 0.90909 for NTSC -seed random integer seed for random numbers, defaults to time+pid. deprecated. -nthreads auto number of threads to use (render and animate) -verbose 0 if non-zero then print progress meter on stderr -bits 33 also 32 or 64: sets bit-width of internal buffers (33 means 32-bit floating-point) -bpc 8 bits per channel of color: only png supports 16 (render/animate) -image filename replace palette with png, jpg, or ppm image -use_vars -1 comma sep list of variation #'s to use when generating a random flame (genome only) -dont_use_vars unset comma sep list of variation #'s to NOT use when generating a random flame. (genome only) -cross0 NA randomly select one genome from this file to genetically cross (genome only) -cross1 NA with one genome from this file (genome only) -method NA method for genetic cross: alternate, interpolate, or union. (genome only) -mutate NA randomly mutate a random genome from this file (genome only) -symmetry NA set symmetry of result. (genome only) -clone NA clone random flame in input (genome only) -clone_all NA clones all flames in file. useful for applying template to all flames (genome only) -animate NA interpolates between all flames in a file, using times specified in file (genome only) -sequence NA 360 degree rotation 'loops' times of each control point plus rotating transitions (genome only) -loops NA number of times to rotate each control point in sequence (genome only) -tries 50 number of tries to make to find a good genome. (genome only) -strip NA strip input, frame and nframes control which one. (genome only) -transparency 0 make bknd transparent, if format supports it (render/animate) -name_enable 0 use 'name' attr in to name image output if present (render only) -nick "" nickname to use in tags / img comments -url "" url to use in tags / img comments -id "" ID to use in tags / img comments -comment "" comment string for tags (genome only) -use_mem auto floating point number of bytes of memory to use (render only) -noedits unset omit edit tags from output (genome only) -write_genome 0 write out genome associated with center of motion blur window (animate only) -print_edit_depth 0 depth to truncate tag structure. 0 prints all tags (genome only) -intpalette unset round palette entries for importing into older Apophysis versions (genome only) -insert_palette unset insert the palette into the image. -enable_jpeg_comments 1 enables comments in the jpeg header (render and animate) -enable_png_comments 1 enables comments in the png header (render and animate) - -earlyclip 0 enables the early clipping of rgb values for better antialiasing and resizing - defaults to 0 for backwards compatibility -flam27 0 flam3 2.7 compatibility mode; ensures generated genomes can be used by flam3 2.7.18 -stagger 0 affects simultaneity of xform interpolation during genome interpolation. - represents how 'separate' the xforms are interpolated. set to 1 for each - xform to be interpolated individually, fractions control interp overlap. -apo_palette 0 set this to 1 to use only the first 255 elements of the palette (apophysis compatibility) - -for example: - - env dtime=5 prefix=foo. in=test.flam3 flam3-animate - -means to render every 5th frame of parameter file foo.flam3, and store -the results in files named foo.XXXX.jpg. - -the flam3-convert program reads from stdin the old format created by -the GIMP and writes to stdout the new xml format. - -the flam3-genome program creates random parameter files. it also mutates, -rotates, and interpolates existing parameter files. for example to -create 10 wholly new control points and render them at normal quality: - - env template=vidres.flam3 repeat=10 flam3-genome > new.flam3 - flam3-render < new.flam3 - -if you left out the "template=vidres.flam3" part then the size, -quality, etc parameters would be their default (small) values. you -can set the symmetry group: - - env template=vidres.flam3 symmetry=3 flam3-genome > new3.flam3 - env template=vidres.flam3 symmetry=-2 flam3-genome > new-2.flam3 - flam3-render < new3.flam3 - flam3-render < new-2.flam3 - -Mutation is done by giving an input flame file to alter: - - env template=vidres.flam3 flam3-genome > parent.flam3 - env prefix=parent. flam3-render < parent.flam3 - env template=vidres.flam3 mutate=parent.flam3 repeat=10 flam3-genome > mutation.flam3 - flam3-render < mutation.flam3 - -Normally one wouldn't use the same file for the template and the file -to mutate. Crossover is handled similarly: - - env template=vidres.flam3 flam3-genome > parent0.flam3 - env prefix=parent0. flam3-render < parent0.flam3 - env template=vidres.flam3 flam3-genome > parent1.flam3 - env prefix=parent1. flam3-render < parent1.flam3 - env template=vidres.flam3 cross0=parent0.flam3 cross1=parent1.flam3 flam3-genome > crossover.flam3 - flam3-render < crossover.flam3 - -flam3-genome has 3 ways to produce parameter files for animation in -the style of electric sheep. the highest level and most useful from -the command line is the sequence method. it takes a collection of -control points and makes an animation that has each flame do fractal -rotation for 360 degrees, then make a smooth transition to the next. -for example: - - env sequence=test.flam3 nframes=20 flam3-genome > seq.flam3 - flam3-animate < seq.flam3 - -creates and renders a 60 frame animation. there are two flames in -test.flam3, so the animation consists three stages: the first one -rotating, then a transition, then the second one rotating. each stage -has 20 frames as specified on the command line. if you want to -render only some fraction of a whole animation file, specify the begin -and end times: - - env begin=20 end=40 flam3-animate < seq.flam3 - -the other two methods are harder to use because they produce files that -are only good for one frame of animation. the output consists of 3 -control points, one for the time requested, one before and one after. -that allows proper motion blur. for example: - - env template=vidres.flam3 flam3-genome > rotme.flam3 - env rotate=rotme.flam3 frame=10 nframes=20 flam3-genome > rot10.flam3 - env frame=10 flam3-animate < rot10.flam3 - -the file rot10.flam3 specifies the animation for just one frame, in -this case 10 out of 20 frames in the complete animation. C1 -continuous electric sheep genetic crossfades are created like this: - - env inter=test.flam3 frame=10 nframes=20 flam3-genome > inter10.flam3 - env frame=10 flam3-animate < inter10.flam3 - -see http://flam3.com/flame.pdf for descriptions & formulas, and -see http://electricsheep.wikispaces.com/Variations for updates. - -The complete list of variations: - - 0. linear - 1. sinusoidal - 2. spherical - 3. swirl - 4. horseshoe - 5. polar - 6. handkerchief - 7. heart - 8. disc - 9. spiral - 10. hyperbolic - 11. diamond - 12. ex - 13. julia - 14. bent - 15. waves - 16. fisheye - 17. popcorn - 18. exponential - 19. power - 20. cosine - 21. rings - 22. fan - 23. blob - 24. pdj - 25. fan2 - 26. rings2 - 27. eyefish - 28. bubble - 29. cylinder - 30. perspective - 31. noise - 32. julian - 33. juliascope - 34. blur - 35. gaussian_blur - 36. radial_blur - 37. pie - 38. ngon - 39. curl - 40. rectangles - 41. arch - 42. tangent - 43. square - 44. rays - 45. blade - 46. secant2 - 47. twintrian - 48. cross - 49. disc2 - 50. super_shape - 51. flower - 52. conic - 53. parabola - 54. bent2 - 55. bipolar - 56. boarders - 57. butterfly - 58. cell - 59. cpow - 60. curve - 61. edisc - 62. elliptic - 63. escher - 64. foci - 65. lazysusan - 66. loonie - 67. pre_blur - 68. modulus - 69. oscilloscope - 70. polar2 - 71. popcorn2 - 72. scry - 73. separation - 74. split - 75. splits - 76. stripes - 77. wedge - 78. wedge_julia - 79. wedge_sph - 80. whorl - 81. waves2 - 82. exp - 83. log - 84. sin - 85. cos - 86. tan - 87. sec - 88. csc - 89. cot - 90. sinh - 91. cosh - 92. tanh - 93. sech - 94. csch - 95. coth - 96. auger - 97. flux - -see http://flam3.com/flame.pdf for descriptions & formulas for each of -these. note that, by default, if a random flame is requested and neither -'use_vars' or 'dont_use_vars' are specified, the following variations are -not used: noise, blur, gaussian_blur, radial_blur, ngon, square, rays, -and cross. - -note: these variations do not use the variation weight to scale their -contributions, and so will not be implemented in flam3: -circlize - - -====================================== - -todo: eliminate all static storage. - -====================================== - -changelog: - -12/29/10 Added --version option to flam3-genome. fixed bug in 16 bpc - png image writing when using strips. xform opacity now affects - calculated width of density estimation filters. Release as 3.0.1. - -10/05/10 Small tweaks. Fuse iterations default to 15 but increase to - 100 when using earlyclip. flux variation added. Release as 3.0. - -12/20/09 Highlight power now interpolates smoothly from old behavior - (-1) to new behavior. flam3-genome 'split' mode was broken, fixed - (thanks Exper.) Die gracefully instead of segfault when very small - estimator_curve values are specified. Version attribute added to - flame tag. Number of iterations used to fuse attractor increased to - 100. Release as 2.8beta7. - -11/24/09 Potential speedup of 5% over prior versions. Many threading - issues identified and resolved when using flam3 shared library as - back end for user interfaces. 14 complex plane variations added. - auger variation added. new flam3_make_strip library function to - generate stripped genomes for external ui strip renders. bug fix: - when rendering strips, use the same random context for each strip - to prevent edge effects where strips butt against each other. flam3 - will now linearly interpolate missing colors in the colormap. - Release as 2.8beta6. - -10/16/09 Non-threadsafe progress tracking code in main iteration thread - replaced with per-render progress storage. Fixed bug where pausing - render during density estimation stage terminated render. Waves2 - variation fixed (thx Joel F). Release as 2.8beta5. - -10/07/09 Fixed bug affecting 'animate' mode with flam3-genome. Changed - estimate_bounding_box to increase discarded iterations if numerous - badvals were encountered during iterations. Exported a few more - functions for Windows DLL. Release as 2.8beta4. - -10/03/09 Changed color_speed range from 0 (no color change) to 1 - (use new xform color). Animate attribute is now 0 for no motion, - 1 for motion. Removed final xform from stagger algorithm. 'oscope' - parameters are now called 'oscilloscope' to match the rest of the - parametric variations (backwards compatible, so old genomes can be - read.) Stagger now affects morphing as well as sheep rotation, but - only using flam3-genome (not flam3-animate). Release as 2.8beta3. - -03/18/09 Major upgrade : - - 28 variations added, mostly from the sourceforge plugins pack - - significant speed optimization of variations - - setting earlyclip env var on commandline will enable an alternate - calculation of color values, resulting in better antialiasing - - 'highlight_power' flame element controls the white highlights in - dense areas, eliminating the hue shift bug - - Apophysis chaos and solo xform/plotmode features have been - implemented. solo/plotmode are promoted to floating point - 'opacity'. opacity and chaos are both interpolatable. - - tag now available for xforms...allows cyclic variation - of any regular xform parameter/coef/post. - - env var 'stagger' affects the simultaneity of xform interpolation - when morphing from one flame to another. set to 0 for existing - behaviour, set to 1 to make each xform interpolate individually - - symmetry has been broken out into color_speed and animate tags - with the same sense (which is confusing and will be fixed in a - future release). - - set the flam27 env var to output backwards compatible genomes - (when possible.) - - passes the consistency test where rendering an image at double - size and filtering it down produces the same results as the - original (modulo quality). - -03/17/09 Added fuzz testing with zzuf to the regression tests. 'Strip' - mode and genomes with the zoom parameter used now break into pieces - properly. insert_palette fixed (broken a few versions ago.) fixed - twintrian variation when small weights are used. various rare - segfaults and memory leaks fixed. 'palette_mode' attribute added to - flame element for smoother palette interpolation in slow animations; - possible values are 'step' and 'linear' ('step' mode is default and - matches previous behaviour.) Release as 2.7.18. - -11/11/08 Add error checking on the numbers in the input genome. Do - not exit on read errors, fail gracefully. Changed sin/cos = tan in - the tangent variation. Added polar to list of variations that use - the inverted linear identity. Bugfix: temporal_filter_exp was not - set properly in template. Apply interpolation attribute in - templates. Add/publish datarootdir with pkg-config so the palette - file is easy to find (for qosmic). Copyright by Spotworks LLC - instead of Spot and Erik. Add fuzz checks to the regression - suite. include LNX/OSX/WIN in the version string. In - flam3-genome animate command, added one to last flame time, so the - end time is inclusive. Release as 2.7.17. - -09/06/08 Added 'clone_all' to flam3_genome to allow application of - template to all flames in a file at once, and 'animate' to write - a full sequence of interpolations out. 'animate' is similar to - 'sequence' except that no control point rotation is performed. - Fixed non-functional 'write_genome' env var for flam3_animate. - Two bugs associated with interpolating from a log interpolation_type - to a non-log interpolation_type fixed (rotate angle reduction and - special inverted identity). when using flam3_rotate in 'spin_inter' - the interp type of the first genome is now used rather than the - current genome's interp type. Enforced upper and lower bounds for - xform color and upper bound for interpolated colormap values - as "smooth" interpolation led to values out of range. If "smooth" - interpolation is specified for all flames in a file, the first and - second-to-last genome is switched to "linear" with a warning. - spatial filters with non-box-filter window functions fixed. - Release as 2.7.16. - - -08/25/08 Added new interpolation types 'old' and 'older', for use in - recreating old animations. 'linear' mode now does not rotate padded - xforms (results in prettier symmetric singularities). switched to - using a 'padding' flag instead of a 'just initialized' flag; padding - flag used for implementation of 'old' and 'older' types. - interpolation_space now deprecated, instead use interpolation_type. - flam3_align is now idempotent (multiple applications do not change - the control points.) Default number of temporal samples bumped to - 1000. Removed CVS headers from source code (now using SVN). - Default interpolation mode now log. Removed 'move' and 'split' vars. - changes to flam3-genome: sequence mode now returns linear - interpolation mode for all control points except first/last of edges - - these cps will use the original interpolation mode; inter and - rotate modes will now return padded genomes for all control points, - all with linear interpolation specified. instead of centering - sometimes reframe by golden mean plus noise. Release as 2.7.15. - -07/21/08 Add configuration option for atomic-ops. bug fix: do not - truncate floating point palettes. new motion blur features: add - temporal_filter_type, can be "box" (default) or "gaussian" or - "exp". Temporal_filter_width and temporal_filter_exp are parms to - it. 'blur' env var no longer used. Small bug fix: iteration - count depends only on the size of the output image, not the padded - image (the gutter). When interpolating, only do -pi/pi adjustment - for non-asymmetric cases. Julian/juliascope variations use the - alternate inverted identity for interpolation (reduces wedge - effect). Add python script for regression and consistency - checking. Add svn revision number to version string (in the - software not of the package). Release as 2.7.14. - -05/28/08 Restored upper limit on particle coordinates. Release as - 2.7.13. - -05/16/08 Added man pages. Removed upper limit on particle - coordinates. fixed FSF address in comments. update to automake - 1.10.1. added eps to denom of perspective fraction to avoid - infinities (thanks fred). Put contents of 'id' env var in png/jpg - comment block. Release as 2.7.12. - -04/05/08 Added 16 bit per channel support to PNG via bpc envar. - isaac.h is now installed with the flam3 headers. Strip indexing - now done with size_t's to fix bug in large images (thanks Paul). - Progress callback now returns ETA, and per-thread verbose flag - functionality fixed. Enumerated spatial filter types now used in - flam3.h, taking the place of function pointers (simplifies the - API). Fix bug by moving precalculation of variation variables to - flam3_iterate (thanks david). Release as 2.7.11. - -03/15/08 fixed interpolation bug when magnitude of rotation/scaling - component of affine transform is 0. replaced secant variation - with more flame-friendly secant2 (eliminates gap in y direction, - scales y-coordinate by weight). warning message now printed when - unrecognized variation is present in an xform. fixed bad - inequality when checking for -pi/pi discontinuity during complex - interpolation. release as 2.7.10. - -02/08/08 non-zero weights for final xforms no longer allowed, and now - have no effect. recompiled windows exes with mingw gcc 4.1 to - take advantage of scalability improvements in flam3 2.7.8 (was - compiling with mingw gcc 3.4 until now). for fedora package - compliance, flam3.pc.in patched by ian weller and moved use of - config.h to c files only. release as 2.7.9. - -01/26/08 better scalability across multiple CPUs by using compare and - swap (from Tim Hockin). fix bug in large images (>2GB). add - flam3_srandom and flam3_malloc/free to better support wrapping - with python on windows, which links with a different C - runtime. add --enable-shared option to configure script (from - Bobby R Ward). release as 2.7.8. - -12/16/07 fixed bug (rare random crash) identified by david burnett. - initialize new xforms with better defaults for parametric - variations (based on interpolated-against xforms). add id envar, - like nick/url. add clone_action envar. return to xform - interpolation based on complex logs, but make consistent decisions - about counter/clockwise rotation across the sheep edges. - interpolation_space attribute to flame element can be set to - "linear" to go back to the simpler method, or "log" to use this - new (default) method. release as 2.7.7 - -10/20/07 fixed action string overflow when many xforms are present. - added 'print_edit_depth' env var to control how many levels of - tags are saved when using flam3-genome. Fixed wrong - placement of random improve_colors code in flam3-genome. go to - five digit filenames. fixed bug in supershape variation. API - cleanup, thanks to david bitseff. release 2.7.6. - -08/14/07 various code updates to assist with compiling under msvc++. - now can specify --disable-pthread or --enable-pthread to configure - to better control compilation. fixed bug preventing renders of - flames with more than 128 xforms. release 2.7.5. - -07/12/07 fixed bug in split variation, now compatible with both - versions of Apo. added insert_palette option. switched density - estimation kernel from Epanichnikov to Gaussian. genetic cross - now crosses palettes rather than selecting one of the parent - palettes. remove noisy variations from random generation if - use_vars or dont_use_vars not specified. fixed metrics calculated - on small test render for genetic operations. reduced memory - requirements for density estimation filters. 64-bit linux distros - now supported. release 2.7.4. - - -06/21/07 flam3 version, rendered genome, some render statistics and - optionally nick/url stored in jpeg/png headers. fixed two bugs - in isaac rng code (strongly affected temporal blur). prevent - final xform rotation for sheep animation. fixed interpolation - when only one flame has final xform. added Supershape, Flower, - Conic, Parabola, Move and Split variations. Shape combined with - Supershape via 'rnd' parameter. flam3-genome now writes 'name' - attribute for rotate and sequence modes. oversample attribute - deprecated; supersample now preferred. new build process for - windows exes using MinGW/MSYS. added 'intpalette' env var to - round floating point palettes to allow older versions of Apophysis - to read them. default image type is now PNG, transparency off. - density estimation code revised to be more consistent between - different supersample levels, which required change to default - de params. limit number of de filters to conserve memory. fixed - julia variation dependency on non-thread-safe random bit function. - removed random number storage for radial blur variation. - release 2.7.3. - 07/26/08: Note, incompat. change made to direction of cp->rotate - (as of 2.7.3, rotates shortest distance instead of clockwise) - -02/09/07 use isaac random number generator to avoid differences - between mac/pc/linux. use multiple threads to take advantage - of multiple CPUs or cores. new variations: disc2, Arch, - Tangent, Square, Rays, Blade, Secant, Twintrian, Cross. - fixed bug reading hex color format - must remove \n prior to - start of colors if present. use EPS in spiral, hyperbolic - and spherical to eliminate black spots. fix numbering of - disc2, change parameter to estimate_bounding_box. made blur - kernel type templatable. removed extraneous 'enabled="1"' in - writing out final xform information (no longer needed). - release 2.7.2. - -12/31/06 fixed bug in waves precalculation code. curl and rectangles - variations from joel faber. remove visibility of - rotation_center attribute, fix strips operator to handle - rotation without it. added motion exponent and gamma lin - thresh to flam3_print. list of variations in the docstring - automatically generated. flam3-genome: envar noedits - suppresses output of edit history. release 2.7.1. - -09/27/06 print out palette as floating point with up to 6 digits - rather than integers (for very slow smooth transitions). - Added optimization to only recalculate the xform distrib - array when necessary (Thanks Joel Faber). Added settable - kernel for downrez. Added XML reading code for new - format for gradients. Functionalized hex gradient read. - Removed color shift experimental feature. New - 'motion_exponent' attribute controls fade of temporal steps. - added gaussian_blur and radial_blur vars from apo. added pie - and ngon variations from joel faber. add rotation_center - attribute. added but disabled image variation from joel. - release as 2.7. - -06/26/06 use new libpng api, handle libpng errors properly (from nix - at esperi.org.uk). print out palette as floating point with - 6 digits rather than integers (for very slow smooth - transitions). - -06/11/06 disable density estimation for 16 and 32 bit buffers because - it doesn't work. Apo team removed "enabled" from final xform - specification, so now it defaults to on. make default - temporal samples be 60 so that motion blur is the default, - but explicitly ignore temporal samples when rendering still - frames. add strip genetic operator to flam3-genome for - breaking a flame into strips for parallel rendering. add - subpixel offsets for antialiasing by averaging multiple - images. release as 2.7b8. - -05/25/06 change attribute name "batches" to "passes" because many old - genomes have it set, and with density estimation it is - harmful. - -04/28/06 remove debugging code, release as 2.7b7. - -04/28/06 add attribute interpolation="smooth" for catmull-rom - interpolation. known bug: some frames come out dark. - release as 2.7b6. - -04/15/06 rename XML attribute "estimator" to "estimator_radius". fix - the progress callback. add use_mem envar. move palette - database to external file. cleanup namespace. add new - variations blur, julian, and juliascope. fix flam3-convert. - add experimental color shifting via "shift" envar. supports - finalxform. can read hex palette format. avoids the "square" - that appears from NaNs. release as 2.7b5. - -01/11/06 unlimited number of xforms per flame. new variations - cylinder and perspective. rename rename de_max_filter to - estimator, de_min_filter to estimator_minimum, de_alpha - to estimator_curve, and jitters to temporal_samples. - release as 2.7b4. - -11/28/05 performance optimization, fix symmetry singularities, added - bubble variation, fixed handkerchief variation, templates - apply to sequence and rotate flam3-genome commands, added - envar "name_enable" to render filenames specified in the - "name" attribute of the flame element, small bugfixes, - release as 2.7b3. - -11/04/05 verbose on by default. Added 'transparency' envar for png - renders without transparency channel. Fixed non-black - background jpeg renders. add improve_colors mutation, - rewrite most of estimate_bounding_box. added new variations - blob pdjd fan2 rings2 eyefish. added '33bit' method for - 32-bit floats. tags track history. alter the gamma - curve to be linear near 0 to avoid singularity and reduce - noise, set with gamma_threshold. release as v2.7b2. - -09/24/05 new density estimator and temporal jitter code from Erik - Reckase (note removal of todo items above :). allow gamma, - vibrancy, contrast, pixels_per_unit, and brightness to vary - as part of the genome rather than as part of the rendering - parameters. flam3-genome does not retry when cloning. ditch - 2nd color coordinates. release as v2.7b1. - -06/27/05 in flam3_dimension, give up and return NaN if 90% or more of - the samples are being clipped. release v2.6. - -06/22/05 add envar to control the number of tries. - -06/06/05 add new form of mutation that introduces post xforms. - -05/20/05 fix memory trashing bug resulting from xform overflow. put - regular xforms before symmetry in printed genomes. enforce - weights non-negative & at least one xform. remove - nan-protection from popcorn variation. truncate xforms with - very small weight. - -05/13/05 fix bug reported by erik reckase where fan variation could - blow up to NaN because the domain of atan2 was not protected. - remove protection from all atan2 calls and instead detect NaN - results and replace them with noise. count really large - values as bad too to prevent blowing up to infinity. enforce - 0<=hue<1, release v2.6b1. - -05/05/05 report choices made during genome generation in notes - attribute. flam3_dimension no longer hangs when most of the - attractor is outside the camera. limit number of variations - produced by genetic operators to 5. reduce rate of - interpolation method of crossover. - -03/17/05 put cloning back in (found by James Rantanen). - -03/08/05 change sawtooth variation (incompatible!). add fan - variation. rename sawtooth to rings. release as v2.5. - -03/01/05 fix rotation when nstrips > 1. add flam3_dimension(). minor - bugfixes. release as v2.4. - -01/25/05 release as v2.3. - -01/18/05 support post xforms (idea from eric nguyen). support camera - rotation. - -12/28/04 release as v2.2. - -12/27/04 preview implementation of image fractalization by adding a - color coordinate. changed how random/default color - coordinates are selected (they alternate 0 and 1 instead of - being distributed between 0 and 1). WARNING: incompatible - format change to samples argument of flam3_iterate. - -12/20/04 allow mutation and crossover from files with multiple - genomes. a random genome is selected for each repetition. - -12/11/04 fix bug printing out interpolated non-built-in palettes. - warn if any images sizes in animation do not match. - -12/01/04 remove debugging code left in flam3-convert, thanks to Paul - Fishwick for reporting this. add cosine variation. add - sawtooth variation. handle nstrips that do not divide the - height. write partial results as strips are computed. fix - old bug where in 32 bit mode one of the terms appeared to be - calculated at 16 bits. release as v2.1. - -10/28/04 fix docstring bug. release as v2.0.1. - -10/28/04 renaming, cleanup, and modularization. now exports - libflam3.a and flam3.h, all names prefixed with flam3_. - binaries named with flam3- prefix, genome files use flam3 - suffix. create and install a flam3.pc pkg-config file. - release as v2.0. - -09/21/04 fix bug where code for integer rounding was left in 64-bit - floating point version. round remaining time up so we do not - say ETA in 0 seconds. do not use static allocation to hold - onto memory, just malloc and free what we need every frame. - enforce positive oversampling. fix bug in hqi on sequences - of images of different sizes. release as v1.15. - -09/17/04 change name of envar to control jpeg compression quality from - "quality" to "jpeg". check for bad nbatches values. release - as v1.14. - -08/23/04 add about 600 cmaps from Jackie, Pat Phillips, Classylady, - and BTomchek. use 64-bit (double) sized buffers. remove - white_level. add new variations: exponential & power. fix - bug where hue_rotation was left uninitialized. add clone - option to pick-flame which just applies template to the input - without modifying genome. random_control_point can now put - multiple variations in one xform. remove altivec code because - it is incompatible with 64-bit buffers. verbose (progress bar - on stderr) from Jon Morton. control random number seeds via - seed envar. support buffer sizes 16, 32, or 64 bits with - three versions of rect.c included into libifs.c. - -03/28/04 fix bug interpolating between flames with different numbers - of xforms introduced by the new de/parsing. add modified - version of the popcorn variation from apophysis. fix small - bug in waves variation. make distribution of variations - even. add altivec code from R.J. Berry of warwick.ac.uk. - release as v1.13. - -03/26/04 add wave variation. allow negative variational coefs. do - not truncate filter width to an integer. add fisheye - variation. make variations print by name instead of using a - vector, that is say spherical="1" instead of var="0 0 1" or - var1="2". it should still read the old format. - -03/07/04 fix bug printing out result of interpolating between - symmetries. release as v1.11. - -03/03/04 add new means of crossover: a random point between the - parents as defined by linear interpolation. in all kinds of - crossover, reset the color coordinates to make sure they are - spread out well. somehow lost part of the extra_attributes - patch, so put it in again. add pixel_aspect_ratio envar. - decrease filter cutoff threshold. the edges of the filter - were almost zeros, so making the filter smaller saves time - with almost no effect on the results. do not print out the - attributes of control points that have default values. - release as v1.10. - -02/26/04 remove prefix argument to print_control_point, and add - extra_attributes. allow any value for vibrancy parameter. - allow variation blending coefs to have any values. do not - normalize them. on windows nstrips is computated - automatically to fit within memory (leaves at least 20% - unused). support png image format and if output is png then - compute & output alpha channel. release as v1.9. - -02/01/04 add julia variation, and put bent variation back in. change - how colors are computed in presense of symmetry: xforms that - come from a symmetry do not change the color index. this - prevents the colors from washing out. since an xform may be - interpolated between a symmetry and not, this this is a - blending factor. add more documentation. add function to - compute lyapunov coefs. allow control over symmetries - produced by pick-flame. release as v1.8. - -07/20/03 cleanup, update documentation, release as v1.7. - -07/15/03 fix bug in interpolation where in last frame when going from - non-symmetric to symmetric it left out some xforms. drop - support for "cmap_inter". add var1 as a abbreviation to var - in xml output, and do not print trailing 0s in var string. - -07/09/03 change matrix interpolation to be linear rather than complex - log to avoid the discontinuity at 180 degrees. this was - causing jumpiness in the C1 continuous algorithm. this means - that rotation has to be handled with pick-flame. put direct - support for symmetries in the de/parser to make control - points smaller and easier to understand. support - combinations of bilateral & rotational symmetry. - -06/22/03 bug in colormap interpolation. release as v1.6. - -06/20/03 fix some bugs, in particular remove sorting of the xforms - when control points are read. they are only sorted when they - are generated. updated dates on copyright notices. added - time parameter to anim, shorthand for begin & end being the - same. added a fairly terrible hack to allow palettes to be - specified as blending of two basic palettes. this requires - much less bandwidth than sending 256 rgb triples. in - pick-flame change default to be enclosed xml output. - -06/09/03 add C1 continuous interpolation to pick-flame (suggested by - Cassidy Curtis). added new variations from Ultra Fractal - version by Mark Townsend. added symmetry xforms. - -06/02/03 add convert-flame which reads the old file format and writes - the new one. release as v1.5. - -03/22/03 fix bug in hqi & anim. somewhere along the way (prolly jpeg) - nstrips was broken. add qs and ss params to hqi. - discontinue strips for anim because the implementation is a - bit problematic (animating zoom??). bump version to 1.4. - -03/05/03 add pick-flame.c to the project, and extend it with mutation - and crossover capability. add parse_control_points_from_file - (and use it). rename non-xml variants of de/parsers to *_old - and rename xml variants to remove _xml. add - rotate_control_point. bump version to 1.3. - -02/10/03 increase CHOOSE_XFORM_GRAIN by 10x and use chars instead of - ints. remove extra -ljpeg from Makefile. lose hack that - ignored density xforms after interpolation. what was that - for?? it makes a difference, and just makes interpolation - less smooth as far as i can tell. bump version to 1.2. - -01/17/03 release as v1.1. - -01/16/03 support output in jpeg format; this is the default. support - win32. - -01/08/03 by default don't render the last frame so that animations - dove-tail and loop - -01/06/03 fix how too many xforms are detected so that one more xform - is allowed. - -12/22/02 first release as independent package. release as v1.0. -- cgit v1.2.3