link to this article

4k

ntropy2k7: a 4k flame fractal renderer

2007-07-22


http://phresnel.org/./gen-image/4k/ntropy2k7/universalix_0001.jpghttp://phresnel.org/./gen-image/4k/ntropy2k7/universalix_0002.jpg

abstract

I proudly finished my first 4k. It's a flame-fractal [0] 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 [1]). 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 [0].

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 beautyful 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.

At the moment of writing, 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)

    # ls -l fourk0001
# strip -R .note -R .comment -R .eh_frame -R .eh_frame_hdr -s fourk0001
# ls -l fourk0001

four k

    # ls -l ntropy2007
-rwxr-xr-x 1 smach smach 4096 2007-07-15 14:25 ntropy2007



Thanks to Thierry Berger-Perrin ([2][3]), here's an embroided dump of the binrary. And, of course, thanks to Thomas Ludwig ([4]), for teaching me ifs (even if some time has passed by, I want to thank him because this is my first released ifs-prod).

http://phresnel.org/./gen-image/4k/ntropy2k7/ntropy2007_0001.jpghttp://phresnel.org/./gen-image/4k/ntropy2k7/universalix_0003.jpg

references

0: The Fractal Flame Algorithm, http://flam3.com/flame_draves.pdf, Scott Draves
1: Wikipedia Article on Iterated Function Systems, http://en.wikipedia.org/wiki/Iterated_function_system
2: Thierry Berger-Perrin (tbp), http://ompf.org
3: The disassembly prettifier "Embroider", http://ompf.org/stuff/embroider/
4: Thomas Ludwig (lycium), http://lyc.deviantart.com