Title: Escape time kleinian (sort of) Post by: knighty on January 04, 2015, 08:57:19 PM Happy new year everyone!
Here are the first results for rendering kleinian fractals a la "Escape time". The ultimate goal is rendering 3D kleinians at interactive rates (and on GPU if possible) such as those done by Jos Leys. The algorithm outputs for each pixel a value that is zero on the limit set. Its outline follows: 1- Requirements: -- the set of Ford circles that form a fundamental domain for the kleinian: The Ford fundamental domain is defined as the exterior of the union of the isometric circles of all the elements of the kleinian group. If the group is not degenerate only a finite number of them have to be considered. For now, I find such circles manually but there is a pattern. Details later :D. -- The area [outside] that is such that: it doesn't contain the limit set And Contains the fundamental domain: It's the union of some discs That are also found manually for now... but there is a pattern... 2- Processing: for each point P (corresponding to a pixel): --> Repeat until the point is inside the fundamental domain (or max iterations attained): ---->For each transformation corresponding to the Ford fundamental domain: ------>If the derivative of the transformation at P is >1 apply it. When P is inside the fundamental domain there is no transformation such that the derivative is >1 so we have a criteria to stop the algorithm. This idea is cited in indra pearles book. Also if meanwhile, P falls [outside] we already know that it doesn't belong to the limit set. --> color P using some function of it's final position/[outside], the cumulated derivative...etc. A DE could be computed this way but I haven't worked it out yet. Attached a couple of evaldraw scripts. PS: Sorry for the headache. ;D Title: Re: Escape time kleinian (sort of) Post by: Adam Majewski on January 04, 2015, 09:18:50 PM Great. Thx. What is the licence of your code ? Can I run evaldraw only on windows ?
Title: Re: Escape time kleinian (sort of) Post by: 3dickulus on January 04, 2015, 09:34:49 PM Evaldraw runs under Wine on linux, but has problems when executed from the linux desktop directly, open the Wine desktop emulation window first and run the exe file from there through explorer, otherwise the hotkey commands don't work (SuSE 12.3)
PS knighty, I got your polyroot script running on linux :) Title: Re: Escape time kleinian (sort of) Post by: cKleinhuis on January 04, 2015, 10:04:55 PM hui, happy new year as well, starting the year with a new technique? as far as i know kleinian escape time methods are not available until now, they look just awesome, hrhr time to hybridise such ;)
Title: Re: Escape time kleinian (sort of) Post by: knighty on January 05, 2015, 01:44:10 PM Strictly speaking, it is not an escape time algorithm like mandelbrot set for example. The criteria of 'escaping' is different and rely on the derivative instead of the norm of the iterate. It doesn't mean that hybridising is impossible. It would be different (and more involved IMHO):
For example, a Julia set could be seen as a 'group' if we add inverse. The generators would be: f(z)=z²+c and f-1(z)=+-sqrt(z-c) We can't say that we have a group because f(z) have two inverses. A Julia set is symmetric about the origin so we can take one of the inverses provided we add a rotation of 180° around the origin... Anyway... We could add generators as some Möbius stransformations, say, a,b and their ineverses A,B. The whole set of generators will be: f(z)=z²+c f-1(z)=+sqrt(z-c) Rotation of 180° about (0,0) which is it's own inverse. (it is simply a multiplication by -1) a,A,b,B Then the hybrid would be defined as the set invariant under this group. drawing such a set is another story. Moreover, I don't know if my reasonning is correct. @Adam Majewski : I've added a copyright notice (just for the disclaimer). It's derived from zlib license. @ 3dickulus : Thank you for the tip about running evaldraw under linux. Peter Liepa (http://www.brainjam.ca/wp/2011/08/a-non-euclidean-tessellation-and-its-fundamental-domain/), has already drawn tilings of the ordinary set. I think the method he used is not different from mine. Unfortunately, he don't give much details about his algorithms. Edit: Scripts updated. Don't forget to press space bar to change rendering style. :) Title: Re: Escape time kleinian (sort of) Post by: JosLeys on January 06, 2015, 07:57:05 PM We can always count on Knighty for something new!
Title: Re: Escape time kleinian (sort of) Post by: DarkBeam on January 28, 2015, 12:56:04 AM You are my hero Knigty... beautiful mind! :beer:
Title: Re: Escape time kleinian (sort of) Post by: eiffie on January 28, 2015, 04:31:45 PM I'm hoping this quiet time from Knighty means he is working on something amazing!
Title: Re: Escape time kleinian (sort of) Post by: knighty on January 30, 2015, 06:04:50 PM Thanks. :) Unfortunately, It seems that there is not easy to find the fundamental domain. The only methods I found in the net are: - Opti: OPTi’s Algorithm for Discreteness Determination (http://delta.math.sci.osaka-u.ac.jp/OPTi/opti_discreteness021011.pdf) and Creating software for visualizing kleinian groups (http://www.mendeley.com/download/public/8711833/5334610141/5e1deb512beafb2161f31548ca9f1d183f11ea56/dl.pdf). Works only for "punctured tous groups" in "Jorgensen normalisation". I'll try to use it because the python program included in the second article makes the method clear. I don't kow if and how it could be extended to 3D. - "Computing fundamental domains for arithmetic Kleinian groups" (https://hal.inria.fr/hal-00658841/document). It doesn't correspond to the kleinian groups I'm interested in but the method is desribed in detail. Peter Liepa (http://www.brainjam.ca/wp/) have already found a method to draw tilings based on kleinian groups but he doesn't give the details of his methods. It's not easy at all... :sad1: |