Welcome to Fractal Forums

Fractal Math, Chaos Theory & Research => IFS - Iterated Function Systems => Topic started by: Softology on December 14, 2016, 04:47:07 AM




Title: Searching for "nice looking" IFS and Flame parameters automatically
Post by: Softology on December 14, 2016, 04:47:07 AM
Does anyone have any methods to help weed out "boring" IFS and flame fractals?  Boring as in simple circles and/or a few straight lines.

I usually search for interesting looking results by randomising the coeeficients and seeing what happens.  Unfortunately this leads to many boring results.  So I need some tricks to weed out the plain looking ones so I can focus on the interesting shapes.

So far I test random sets of coefficients by;

1. If any of the calculated/plotted X,Y points go outside +/-100 then it is a no go as the points are likely expanding to infinity.
2. Once 5000 points are plotted I test to see if more than 50 pixels have been hit.  This avoids those tight attractors with only a few pixels.

Any smarter ideas on how to more rigorously test a set of coefficients and weed out more of the unwanted results?

Thanks,
Jason.

Edit: I realised I already asked this 5 years ago without a response
http://www.fractalforums.com/programming/fractal-flames-search-algorithm/msg29329/#msg29329
Maybe this time...


Title: Re: Searching for "nice looking" IFS and Flame parameters automatically
Post by: lycium on December 14, 2016, 03:59:50 PM
Apparently the "classic" way to do this is via the Lyapunov exponent (https://en.wikipedia.org/wiki/Lyapunov_exponent), however it's a bit fiddly to compute and I never got any useful results from some brief experiments with it in Chaotica. In fact I went a step further than what I've seen in the literature and plotted some kind of "Lyapunov exponent spectrum", or histogram of Lyapunov exponents (rather than just computing the average), and tried to visually find some kind of correlation between the graphs and the fractals which were produced... didn't get much out of that unfortunately, and had to move on to other work.

Here is a link to an imgur album with two fractals and their exponent spectrum graphs: http://imgur.com/a/qJd7O

The graphs are centred around zero, so the left half is negative exponents. Values are plotted on a log-scale, since they seem to vary in magnitude a lot. If you have any questions / would like to work on this more please let me know, I also would like to get this working in Chaotica to filter the randomly generated fractals.

Edit: lol, I see you've edited your post to point to a previous post, in which you've linked to an article about Lyapunov exponents. Oh well, at least I finally have a reason to post these tests :)


Title: Re: Searching for "nice looking" IFS and Flame parameters automatically
Post by: claude on December 14, 2016, 05:50:45 PM
You might find this paper interesting, it seems to indicate that flames with fractal dimensions around 1.5 are considered nicer looking than others:

The Aesthetics and Fractal Dimension of Electric Sheep.
Scott Draves, Ralph Abraham, Pablo Viotti, Frederick David Abraham, Julien Clinton Sprott
Quote
Physicist Clint Sprott demonstrated a relationship between aesthetic judgments of fractal images and their fractal dimensions (1993). Scott Draves, aka Spot, a computer scientist and artist, has created a space of images called fractal flames, based on attractors of two-dimensional iterated function systems. A large community of users run software that automatically downloads animated fractal flames, known as “sheep”, and displays them as their screen-saver. The users may vote electronically for the sheep they like while the screen-saver is running. In this report we proceed from Sprott to Spot. The data show an inverted U-shaped curve in the relationship between aesthetic judgments of flames and their fractal dimension, confirming and clarifying earlier reports.
Keywords: Fractal dimensions; electric sheep.

which references this paper which presents a calculation algorithm for the dimension-like correlation exponent (along with an analysis of why Lyapunov exponents aren't really that great):

Measuring the Strangeness of Strange Attractors
Peter Grassberger and Itamar Procaccia
Quote
We study the correlation exponent v introduced recently as a characteristic measure of strange attractors which allows one to distinguish between deterministic chaos and random noise. The exponent v is closely related to the fractal dimension and the information dimension, but its computation is considerably easier. Its usefulness in characterizing experimental data which stem from very high dimensional systems is stressed. Algorithms for extracting v from the time series of a single variable are proposed. The relations between the various measures of strange attractors and between them and the Lyapunov exponents are discussed. It is shown that the conjecture of Kaplan and Yorke for the dimension gives an upper bound for v. Various examples of finite and infinite dimensional systems are treated, both numerically and analytically.

Practically speaking, calculations would combine equation 1.5 from the second paper, with the second half of its Appendix A, using linear regression to calculate correlation exponent v as a proxy for fractal dimension.


Title: Re: Searching for "nice looking" IFS and Flame parameters automatically
Post by: DarkBeam on December 14, 2016, 06:17:34 PM
This discussion is really interesting. :)
My ignorant two cents;
I also found that the scaling factor(s) also matters; the best fractals often have a scale next to 1 (at least this is true for some famous 3d fractals) or in any case <=2.
An exception is the Menger sponge with scale 3
Also people almost always prefer symmetric images over unsymmetric ones
Randomly generated ifs ... never satisfy those requirements? I think.
Also overlapping flames easily tend to look bad...
Stretching can be successfully used by experienced users but it also leads to bad images in most cases.

End of monkey-babbling :dontcare:
(post sticky now)


Title: Re: Searching for "nice looking" IFS and Flame parameters automatically
Post by: claude on December 15, 2016, 01:13:58 AM
I attached a simple implementation of correlation exponent calculation.  Hopefully someone finds it useful.


Title: Re: Searching for "nice looking" IFS and Flame parameters automatically
Post by: Softology on December 15, 2016, 03:11:29 AM
Thanks for the replies.

As other people found, lyapunov doesn't seem to help much.  I tried both Lyapunov methods from
http://technocosm.org/chaos/attr-part2.html source code http://technocosm.org/chaos/lyapdemo.c
http://sprott.physics.wisc.edu/software.htm source code http://sprott.physics.wisc.edu/software/ifs.bas
Both of them do give me lyapunov values, but nothing to say "between x and y are good and between y and z are bad".
I am also getting strange values in the +3 to +9 range for flames.  The first linked article
http://www.ralph-abraham.org/articles/MS%23120.Electricsheep/sheepdim06.pdf
mentions sprott's code should give around 1.5 for aesthetically pleasing images.  I never get close to 1.5.  Probably my translation of the code is wrong somewhere.

(https://c2.staticflickr.com/6/5569/30842094283_6899d45148_o.png)

I also had some old code for box counting fractal dimensions of images, so I tried that on various random flame images and that wasn't too much of a help either.  Using a detected dimension of 1.5 or greater to classify good images does tend to weed out some of the simpler looking flames, but it still skips a lot of interesting results too.

The best selector for aesthetics is still the human using the software.

At least I know I am not missing some obvious magic that others discovered long ago.


Title: Re: Searching for "nice looking" IFS and Flame parameters automatically
Post by: ciric50 on December 15, 2016, 02:33:31 PM
About 5 years ago I conducted a study in which I looked for "interesting" chaotic orbits in a certain family of systems, very similar to IFS. After eliminating orbits that were either bounded or convergent, the best I came up with was looking at the fraction of phase space occupied by the orbit (basically a simple box-counting method). Calculating the correlation dimension https://en.wikipedia.org/wiki/Correlation_dimension (https://en.wikipedia.org/wiki/Correlation_dimension) can also be done, but it's compute intensive and I wanted a fairly quick method.

The physicist Julien Sprott did something similar many years ago which he describes in his book http://sprott.physics.wisc.edu/sa.htm (http://sprott.physics.wisc.edu/sa.htm). He used the Lyapunov exponent to find "interesting" orbits. According to him "The criterion for detecting a strange attractor is somewhat subjective. There will always be borderline cases for which no amount of computing will suffice to distinguish between a strange attractor and a periodic solution with a very long period."

So I think you're on the right track. AFAIK there is no better method that anyone has found yet. I think a lot of people would be interested if a better algorithm could be found.

I wonder if a neural network could be trained to find systems ...? Just a thought.


Title: Re: Searching for "nice looking" IFS and Flame parameters automatically
Post by: dim on March 30, 2017, 04:03:50 PM
Hi!

Freeware software IFStile can search some interesting IFS automatically.

Available for macOS and Windows.

site: ifstile.com (http://ifstile.com)



Title: Re: Searching for "nice looking" IFS and Flame parameters automatically
Post by: youhn on March 30, 2017, 04:24:32 PM
I wonder if a neural network could be trained to find systems ...? Just a thought.

Sure it can, it all comes down to pattern recognition.


Title: Re: Searching for "nice looking" IFS and Flame parameters automatically
Post by: Softology on March 30, 2017, 10:28:09 PM
Freeware software IFStile can search some interesting IFS automatically.

How?

The search is the "Finder" option right?  It seems to search based on the 2 GCX (Geom Complexity) and TCX (Topo Complexity) factors.  How do you calculate the GCX and TCX?

I would like to see if they help with the regular IFS and Flame fractal "interestingness" detection.

Thanks,
Jason.


Title: Re: Searching for "nice looking" IFS and Flame parameters automatically
Post by: dim on March 31, 2017, 05:43:24 AM
The search is the "Finder" option right?  It seems to search based on the 2 GCX (Geom Complexity) and TCX (Topo Complexity) factors.  How do you calculate the GCX and TCX?
Yes, it is "Finder", but you should open existing file or example as prototype before start searching.
If you increase GCX or TCX you will get more scattered fractals with high boundary dimension.

At the moment IFStile can handle regular IFS fractals only, but in any dimension. For example you can build 2D section of the Menger sponge or any 3D section of some 4D IFS.


Title: Re: Searching for "nice looking" IFS and Flame parameters automatically
Post by: Softology on April 02, 2017, 10:53:41 PM
I meant "How?" as in could you share some code that you use to calculate GCX and TCX?

Then I can do some tests to see if it helps my own IFS and Flame detections.

Thanks,
Jason.