Here by "LRIFS" I mean "Language Restricted IFS" and the idea for the escape-time version is basically the logical extension of Tglad's Mandelbox and renders Buddhi has produced as well as methods like the alternation of formulas.

I'm thinking of writing another type of formula for my wip3D renderer for UF that allows user-selection of multiple transforms with user-definition of how/when these are applied.

So far I'm going to impliment it with the following options/controls for which transforms to apply on a given iteration/depth:

1. Location based choice (essentially as I've applied for the "Simple Sierps" option in my current formula) - based on IFS techniques.2. Iteration depth based choice - a method used in IFS that also allows for the escape-time alternation method.3. Order based choice - again a method taken from IFS, here transform x could be set so it cannot be followed by transform y on the next iteration (this also covers the reverse).4. Consequetive/counted restrictions e.g. such that transform x cannot be repeated consequetively more than n times (maybe also so that transform x cannot be repeated more than n times overall).5.

@dave i am hoping you are planning to use the object model in uf5 , for standard escape fractals i haveincluded a formula which uses the quadrants of the current z value to decide which formula to take.

i like the ordering method although i do not really get what you mean

for the iteration based selection i am recently using a formula like this to decide which formula to take

in this way it is possible to define some variants for the iteration alteration method

the nice thing about using uf5 objects is that it can be easily plugged together, e.g.define the first 500 iterations as normal 1 formula, then between 500 and 1000 use somekind of alternation, and if greater 1000 use another one ...

@dave i am hoping you are planning to use the object model in uf5 , for standard escape fractals i haveincluded a formula which uses the quadrants of the current z value to decide which formula to take.

i like the ordering method although i do not really get what you mean

Am working on a full suite of classes for ray-tracing but I won't be working on it in earnest until I'm happy with the organisation of it - I mean my preliminary design, which is still changing too quickly at the moment as I find new ideas to include - the thing is I don't want to start seriously until I'm happy that it's not going to involve major re-writes at a later stage.So currently I'm concentrating on trying every idea I can think of in the wip3D formula though I think I will add some simple class-based options for the ideas I suggested in this thread

The ordering method is fairly straightforward and all the methods can be implimented fairly simply, on each iteration:

for i=0 to numtransforms-1 if transform is allowed on this iteration based on applicable criteria get decision value for transform i (e.g. distance) if decision value is better than current best then set transformtouse to i endif next i apply transformtouse

For the "ordering" method we just use "lasttransformused=transformtouse" at the beginning of each iteration and check a bitwise flag table in the loop for transform i to see if it is allowed to follow lasttransformused and if not then that transform is not considered for the current iteration. (Note that on initial entry tranfsormtouse would be set to say -1).

I'm happy to see the Order one. For a long time I've been wishing for Markoved Flame fractals - that is, where you can specify, given all the last transforms, what the probability of choosing each one for the next iteration should be. It might not be applicable to this so well, though...

On a more OnT note, I think it would be cool to have a fractal where, say, the first 10 iterations obey one set of rules (say, location restricted, whatever you wish...) and from then on the iteration chooses randomly. One might want three or four points to all go through the process to avoid too much noise, and that would certainly cost computation time... but it would be BALLER!

Logged

Someday, man will understand primary theory; how every aspect of our universe has come about. Then we will describe all of physics, build a complete understanding of genetic engineering, catalog all planets, and find intelligent life. And then we'll just puzzle over fractals for eternity.

I'm happy to see the Order one. For a long time I've been wishing for Markoved Flame fractals - that is, where you can specify, given all the last transforms, what the probability of choosing each one for the next iteration should be. It might not be applicable to this so well, though...

My mmf4.ufm:3D IFS formula (for purely affine IFS) includes all the options I suggested except the location based restriction - in that formula because Hart's method of transforming the viewing ray is applied we can actually check the entire IFS tree per-pixel rather than having to restrict things to one transform per iteration depth - though the location-restriction method has given me some optimisation possibilities for the 3D IFS formula (for certain "regular" IFS types) A truly generic and complete solution is to use the distance estimation method but applying the full IFS tree per-pixel but that's definitely going to be slower - hence my experimentations here http://www.fractalforums.com/3d-fractal-generation/tglad%27s-mandelbox-and-using-the-delta-de-methods-for-rifs/msg13259/#msg13259

Using the principle of location based selection and a particular application of affine transforms you can apply transforms to any fractal generically in a manner such that on each iteration you apply a selected transform, then compute the fractal formula as normal and then apply the inverse of the transform that was used.This method can be used to mix multiple Julias (or Mandelbrots) from the same fornula as below - click image for more details:

Oh, wow, very nice image. I like the variation. Is the color based on the transforms applied or something else?

In this one the colouring is standard orbit trapping to (0,0,0) (i.e. trapping the minimum distance to the origin) and the actual colouring used is based on the 3D angles of the trapped z (triplex) value.