IFS, L-Systems in Fractint
Hi Richard (regarding L-systems & IFS types in Fractint, & their future development), Sorry it's taken me so long to respond. I've been away from the internet a good deal this summer, in the high Caucasus mountains of the Republic of Georgia... I've discovered a programme which seems to be the LS equivalent of Apophysis in 2d or XenoDream in 3d: Context Free Art http://www.contextfreeart.org/ I describe it thus because it allows LS programming plus a lot more non-LS work, and because its language is at least related to LS. Are you aware of it? As far as IFS goes... one difference between Apohysis IFS and that of Fractint is a great feature of the latter about which I have not found any literature, so I might as well claim credit for discovering it unless someone else can correct me. This is that if you start off with a shape like a square filled *solid* with holons, and then simply alter the numbers in the 7th column - those which deal with probability - you end up with fantastic fractal textures instead of the solid fill. (These probability numbers should still sum to 1.) I have done a huge number of explorations of squares in this manner, some with triangles, and also discovered new textures for the Dragon Curve and TwinDragon. I was waiting for the new Fractint version to reveal this, but now seems a better time to point it out, in the context of a plea not to do away with such a possibility. (It doesn't seem to work in Apophysis, or at least works differently; I haven't tried it in XenoDream yet.) I don't understand all of the details of your letter below about IFS, but am eagerly awaiting a demonstration of what it all means. Tony Hanmer On 8/1/07, Richard <legalize@xmission.com> wrote:
I'd appreciate input on you regarding the L-systems stuff I posted to the list recently. For L-systems I want the code to ultimately approach the realistic plant rendering capability of Prusinkiewicz's code. We're a long way off from that, but that's the target.
For IFS, right now the code only supports probabilistic 2D/3D IFS. I want to add more IFS types like language restricted IFS. For rendering, I want to use OpenGL to give interactive manipulation of the IFS rendering as well as a design interface that's better than editing transformations coefficients in a text file. I also want to use "point sprite" rendering for IFS which will give them more "body" with fewer iterations and still be interactive. I've also thought about doing a potential rendering technique where rendered iterations define a charge in space and the rendering draws the potential resulting from such a charge. Finally, I want to extend the text file specifications so that you can specify the transformations in a transform language rather than as just raw coefficients. That way you could naturally right s(sqrt(2)/2)*r(180)*t(0.5,0.5) to mean "scale uniformly by sqrt(2)/2, then rotate by 180 degrees about the Z axis, then translate by (0.5,0.5)". I've come across a very nice recursive descent parser framework for C++ -- the spirit module in the boost library -- that will let me make a number of improvements across the board in fractint, both for formula types and for IFS and L-system types. -- "The Direct3D Graphics Pipeline" -- DirectX 9 draft available for download <http://www.xmission.com/~legalize/book/download/index.html>
Legalize Adulthood! <http://blogs.xmission.com/legalize/>
In article <546ce4c30709100035s12c3ff5fte88c585430e5c598@mail.gmail.com>, "Tony Hanmer" <a.hanmer@gmail.com> writes:
I've discovered a programme which seems to be the LS equivalent of Apophysis in 2d or XenoDream in 3d: Context Free Art http://www.contextfreeart.org/ I describe it thus because it allows LS programming plus a lot more non-LS work, and because its language is at least related to LS. Are you aware of it?
No, I wasn't aware of it -- there's lots of fractal programs out there now. I'll check it out.
As far as IFS goes... one difference between Apohysis IFS and that of Fractint is a great feature of the latter about which I have not found any literature, so I might as well claim credit for discovering it unless someone else can correct me. This is that if you start off with a shape like a square filled *solid* with holons, and then simply alter the numbers in the 7th column - those which deal with probability - you end up with fantastic fractal textures instead of the solid fill. (These probability numbers should still sum to 1.) I have done a huge number of explorations of squares in this manner, some with triangles, and also discovered new textures for the Dragon Curve and TwinDragon. I was waiting for the new Fractint version to reveal this, but now seems a better time to point it out, in the context of a plea not to do away with such a possibility. (It doesn't seem to work in Apophysis, or at least works differently; I haven't tried it in XenoDream yet.)
I don't see anything that would preclude this from continuing to work, although I'm not sure what you mean by a "holon", although from the context I infer that you've created an IFS that exactly fills a square in R^2.
I don't understand all of the details of your letter below about IFS, but am eagerly awaiting a demonstration of what it all means.
I can explain any particular part that is unfamiliar if you want to dig into the details. Right now fractint only supports one class of IFS. You give a matrix that defines a contracting transformation and a probability for picking that transformation. Since the initial IFS was introduced into fractint, lots more types of IFS have been created. I would like to extend the IFS types in fractint to encompass these other types of systems. -- "The Direct3D Graphics Pipeline" -- DirectX 9 draft available for download <http://www.xmission.com/~legalize/book/download/index.html> Legalize Adulthood! <http://blogs.xmission.com/legalize/>
By "holon" I mean any element of an IFS; this seems to be standard IFS-speak, at least in XenoDream circles. If you're planning to extend the IFS capabilities of Fractint without removing the way it makes its current IFS types, that sounds great. There are, of course, many (infinitely many) ways to fill an IFS square solid with smaller squares and/or rectangles (these being the holons I mentioned). And altering the probabilities of these leads to the fractal textures I was mentioning. Usually, a change of 0.04 from the original numbers in 2 or more holons is enough - e.g. you add this amount to one holon's probability and subtract it from another's. A greater numerical deviation results in a more contrasty texture. Where it gets more exciting is when you consider the possibilities of ANIMATIONS from one texture to another - an IS square's fractal texture evolving from one form to another. Building interpolation cababilities into Fractint's IFS and even LS types (to animate between 2 keyframes, specifying what can be changed and what cannot,so as to keep the IFS square a square) would be another great leap.
In article <546ce4c30709100925m62962185k85d369b614fa40dd@mail.gmail.com>, "Tony Hanmer" <a.hanmer@gmail.com> writes:
[...] Where it gets more exciting is when you consider the possibilities of ANIMATIONS from one texture to another - an IS square's fractal texture evolving from one form to another.
Yes, fi's animation capability is really close to nil.
Building interpolation cababilities into Fractint's IFS and even LS types (to animate between 2 keyframes, specifying what can be changed and what cannot,so as to keep the IFS square a square) would be another great leap.
To animate L-systems properly, you really need to do much more of the extensions done by Prusinkiewicz. He has produced some wonderful animations this way, but its a long way to there from where fi is today. -- "The Direct3D Graphics Pipeline" -- DirectX 9 draft available for download <http://www.xmission.com/~legalize/book/download/index.html> Legalize Adulthood! <http://blogs.xmission.com/legalize/>
participants (2)
-
Richard -
Tony Hanmer