Fractales et inversions de sphères

Mon ami artiste-développeur Eric Wenger vient de m’envoyer une vidéo d’images de fractales en trois dimensions basées sur l’inversion de sphères. C’est réalisé avec VQuartz, son nouveau logiciel qui sera distribué bientôt ; il a composé la musique avec le MetaSynth, un autre logiciel développé par lui il y a quelques années.

4 réponses
  1. Eric Wenger
    Eric Wenger dit :

    2D Fractals generated by circles inversions are often invariant under a Kleinian group, hence the title of the film.
    http://www.hiddendimension.com/F...
    In our case I used the 3D equivalent by inverting spheres instead of circles.

    I used the following algorithm to generate the first set :

    Offset & Invert the space so that the tiled plane xz becomes a sphere.
    Space inversion is defined by v/ length(v)^2  or ( x /M ,y / M , z / M ) with M=(x^2+y^2+z^2)

    Tile the space in x,z by D=2

    Recursively apply 6 spheres inversions  of radius M = 0.7382  at coordinates
     (0., -1.,0.)   (0., 1.,0.)   (-1., 0.,0.)  (1., 0., 0.)  (0., 0.,-1.) (0., 0.,1.) );

    A sphere inversion centered at p of radius R is defined by

    v.xyz-= p; //move the space so that origin is at 0
    v =v/R; //scale the space so that unit sphere is at R
    r2=v.x*v.x+v.y*v.y+v.z*v.z;
    if(r2<1.){ //invert the space when inside unit sphere
    v*=(1./r2);
    }
    v*=R;
    v.xyz+= p;

    After the space transform just render a zero centered sphere of radius 0.2689 (colored spheres)
    + an inverted sphere when (Norm(V)>8)  (white spheres)
    + 3 infinite cylinders on each axis.

    With the global space inversion and the recursive spheres inversions infinite lines are transformed to circles orthogonal to the spheres.

    The rendering uses Distance Field Ray Marching to converge to the surface and was done in GPU using a GLSL patch in Quartz composer.

    Other sets uses similar techniques but with various position for the sphere inversions and various tilings /or reflections folding.

    Répondre

Laisser un commentaire

Rejoindre la discussion?
N’hésitez pas à contribuer !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *