You are here

Iterated Function System (IFS)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0
Rate this item!

This IFS plugin does exactly what it says - applies an iterated function system over an image, finitely, making it fractal-like. Since images are worth a thousand words:

The above image was created from this one:

Then, by navigating to Filters, Misc, IFS, we get the following dialog:

Increasing the number of iterations, while taking more processing time, does make images pretty close to real fractals, and we still see small Wilber's when zooming in:


  • Choose from many IFS's, including Sierpinsky Triangle, Pythagoras Tree, Hex Flake, Cantor Dust, and more;
  • Option to enable or disable supersampling (makes resized images nicer);
  • Modifiable number of iterations (and of course, you can re-apply the filter for some more iterations);
  • Combinable fractals: run the plugin with a IFS for a few iterations, and then again with another IFS;
  • Choose target image size so that if you want a big image, calculations will be made to optimize the image quality.

I had originally planned many more features for the plug-in (such as a preview and more IFS's to choose from), but honestly I grew bored of programming it, so there it is. There are probably a few bugs (notably, the target size is always an estimation and is sometimes plainly incorrect, for example when used with the Pythagoras Tree IFS), and there are a few console warnings I couldn't get rid of. However, it is still very much usable.

Included as attachments:

  • IFS.c - C source code (custom license is basically: use as you please but give credit)
  • IFS.tar.gz - Linux binary, compiled on Ubuntu
  • - Windows binary, just extract to your GIMP plug-ins directory to install.

Thanks for reading! :)

IFS.c30.51 KB
IFS.tar.gz11.36 KB
IFS.zip115.41 KB
GIMP Version: 
Code License: 


Very easy to compile for Windows, Photocomix. Takes only seconds.
The only issue is that the first lines of the source contain illegal characters, so you must remove them before, else you will get the message:
IFS.c:1: error: stray '\239' in program
IFS.c:1: error: stray '\187' in program
IFS.c:1: error: stray '\191' in program
Maybe it is better to edit the text and copy-paste to a new file without the header, because the nasty characters are rather tricky to remove.
I can provide you with another binary for Windows if you need it: it is already built.

Does exactly what its supposed to, great job! I'm having alot of fun with this. My only gripe is it adds another category to the filters menu. I really think it should use an existing one. Maybe the Map or Render group?

Map should be the best

It is so easy modify the registry path in the source
..but less easy recompile at least for windows

Just finished playing with the filter; pretty cool. Thanks for sharing. :)

Subscribe to Comments for "Iterated Function System (IFS)"