ntropy2007
a 4k flame fractal renderer
Sebastian Mach
email: seb at greenhybrid.net
homepage: greenhybrid.net
The first image is a demo capture, as you can grab when running on your box. The three big ones a are hardcoded and big renders, you can make such, too, if you tweak the code a bit.
abstract
I proudly finished my first 4k. It's a flame-fractal [1] sampling program (some also say fractal-flame or fractal-flame-renderer or whatsoever; I am unsure which one is the correct; besides, the whole thing is of course based on a special form of iterated function systems, or IFS [2]). While it does not produce the most pretty fractals of all times due to a lot of kludges in the code (e.g. I kicked out the variation weight normalization), I managed to pop in all of the 16 variations of [1]. The package contains four binaries:
- ntropy2007: full random. prettyness comes with low probability.
- ntropy2007.horseshoes: focuses on the horseshoe variation.
- ntropy2007.linear: focuses on linear variations (a renderer that supports linear xforms only could btw be crunched into less than 2k, btw).
- ntropy2007.sjd: focuses on the spiral, julia and diamond variation. In my humble opinion it produces the most beatyful images.
I reduced the resolution to 640x480, so the renders are not to noisy.
linkage
controls
Only two keys: [Enter/Return] to jump to next fractal. [Esc] to leave.
sys requirements
Should run on every GNU/Linux with SDL installed (ya, I used SDL. I don't really see an idealistic problem with it since I only used it for pixel-dumping. but feel free to tell me via mail why it's bad). You must have the SDL and libc libraries installed.
My box is:
- Debian GNU/Linux Etch, kernel 2.6.18.3 (32 bit)
- AMD Athlon XP 1800+ (32bit, 1-core)
- gcc 4.1
- SDL + libc 6 libraries
compile
Step A is to get the source, it is here. Then, from within the directory where you have downloaded the tarball to, type tar -xvvf ntropy2k7.tar.gz or use your principal packaging tool. Then:
(from within src directory, I made no makefile)
# gcc main.c -o fourk0001 -Os -mfpmath=387 \
-mfancy-math-387 -fmerge-all-constants -fsingle-precision-constant \
-fno-math-errno -Wall -ldl -ffast-math -nostartfiles -nostdlib \
-fno-unroll-loops -fshort-double
After that massage the file:
# ls -l fourk0001
# strip -R .note -R .comment -R .eh_frame -R .eh_frame_hdr -s fourk0001
# ls -l fourk0001
(the working title was fourk0001)
four k
# ls -l ntropy2007
-rwxr-xr-x 1 smach smach 4096 2007-07-15 14:25 ntropy2007
Thanks to Thierry Berger-Perrin (ompf.org) here's an embroided dump of the binrary: click here. And, of course, thanks to Thomas Ludwig (lyc.deviantart.com), for teaching me ifs (even if some time has passed by, I want to thank him because this is my first released ifs-prod).
license
copyright: (C)2007 Sebastian Mach
email: seb at greenhybrid.net
homepage: http://greenhybrid.net
released under the terms of the GNU General Public License, Version 3
references
[1] The Fractal Flame Algorithm, http://flam3.com/flame_draves.pdf, Scott Draves
[2] Wikipedia Article on Iterated Function Systems, http://en.wikipedia.org/wiki/Iterated_function_system