Acceuil




Ecrivez-moi :
raphael dot pasquier at free dot fr

Mise à jour le 2 octobre 2006













Tutorial du programme Qifs



Qifs est un programme qui permet de construire des attracteurs IFS en abrégé (Iterated Functions System), commme par exemple Apophysis, Glito ou Brazil mais de façon inédite .
En effet Qifs utilise pleinement la théorie des fractales IFS et permet de construire ses propres fractales de façon naturelle.
Contrairement aux autres logiciels, il n' y a pas de touche "random" pour générer ou modifier aléatoirement des fractales. Il faudra que l'artiste retrousse ses manches et libère son imagination.
Qifs a quand même un point commun avec les autres programmes : il permet de déformer l' attracteur à l' aide de fonctions programmés comme celles d' Apophysis.
Pour connaître la belle théorie mathématique, vous êtes invité à lire par exemple le livre de Michael Barnsley mais pour se servir de Qifs il suffit seulement de comprendre le principe de construction de ces fractales et ce principe est extrêmement simple.
J' ai écris ce programme pour les artistes que nous sommes et j' espère qu' il pourra vous apporter l' outil que vous cherchiez pour vous exprimer.
Vive l' art !

Enfin je tiens à remercier les auteurs des sites qui m' ont aidé :
flame 3
apophysis
Nicolas Janey
Robert Ferréol
Charles Vassallo

Sommaire :

  1. Premier exemple : le triangle de Sierpinsky
  2. Deuxième exemple : la fougère de Barnsley
  3. La coloration
  4. Conclusion



  1. Premier exemple : le triangle de Sierpinsky

    Commençons par un peu de théorie en étudiant un exemple. La figure en forme de triangle, ci-dessous, est l'exemple le plus fameux d'attracteurs IFS, ou IFS en agrégé. C 'est le triangle de Sierpinsky (tiré du site ???).


    En observant sa forme, on s' apperçoit que le tout est composée de trois parties semblables au tout mais réduites (voir ci-dessous). C 'est donc une fractale et c'est cette propriété qui nous servira à la construire.


    Mais comment peut-on construire pareille chose aussi complexe ?
    En fait, c' est très facile.
    Pour cela, lançons le programme Qifs.
    Vous devriez voir quelque chose qui ressemble à cela :


    Le programme vous demande de choisir une image au format bmp. Sélectionner fanion6.bmp .
    Qifs se compose de trois fenêtres, une qui contient l'image fractale, une qui regroupe les menus et commandes et une autre pour visualiser l' image obtenue.
    Construisons notre fractale.
    Sélectionner la fenêtre de la fractale.
    On remarque une petit rectangle bleu contenant une miniature.

    Déplacer-la vers le haut en appyant simultanément sur la touche F1 , en cliquant sur le bouton droit et en déplaçant la souris.
    L' objectif est de recouvrir le petit triangle du haut avec cette miniature. Visiblement elle est trop petite. Aggrandissez-la en appuyant sur la flêche du haut de votre clavier. La flêche du bas permet de la réduire. Faites lui subir une translation via la touche F1 pour la replacer correctement. En principe lorsque la miniature et le petit triangle du haut sont parfaitement superposés les deux devraient disparaître. En pratique Qifs utilise un algorithme simple qui ne permet pas encore cette possibilité.

    En tout cas, le principe fondamental est le suivant :

    IL S' AGIT DE RECOUVRIR TOUT LA FRACTALE AVEC DES COPIES REDUITES (ET SOUVENT DEFORMEES)


    Lorsque vous êtes satisfait du résultat, appyez sur la touche D du clavier pour créer une copie de la minuature sélectionnée et déplacez-la sur le petit triangle du bas.
    Réappuyez sur la touche D et recouvrez le petit triangle du bas.


    Quand tout cela est fini, appyez sur la touche F9 pour lancer le calcul.
    Dans la fenêtre de visualisation, vous pouvez voir votre fractale qui est une copie (plus ou moins parfaite) de la fractale initiale.


    Remarque : on peut revenir sur la fenêtre de la fractale de départ et modifier la miniature sélectionnée puis relancer le calcul (touche F9) pour voir les conséquences.
    Pour changer de miniature, utilisez la touche tabulation.



  2. Deuxième exemple : la fougère de Barnsley

    Cet exemple est plus complexe car les "réductions" sont parfois déformées.
    Sur les images ci-dessous, on voit les quatre parties semblables au tout.


    La deuxième miniature n' est plus une simple réduction de la fractale initiale et donc il faudra aussi tourner les miniatures, les aggrandir ou les réduire suivant une direction ou les cisailler.
    Ces différentes tarnsformations seront expliquées suivant les besoins.
    La quatrième miniature est la tige de la fougère et elle est obtenue en applatissant la fougère jusqu' à obtenir une fine ligne.

    Ouvrez la nouvelle image, fougere_barnsley.bmp, avec la commande Open image du menu File.

    Il faut encore recouvrir la fougère avec les 4 miniatures et pour cela, je vous présente les cinq transformations possibles et trois commandes suplémentaires:

  3. La translation (touche F1). On clique en même temps avec le bouton droit n' importe où dans la fenêtre et on bouge la souris.
  4. La rotation (touche F2). On clique en même temps avec le bouton droit n' importe où sauf au centre du parallelogramme de la miniature et on bouge la souris. Pour la version actuelle, on ne peut faire varier l' angle entre -90 et 90° par rapport au point de départ.
  5. réduction/aggrandissemnt suivant un sommet(touche F3). On clique en même temps avec le bouton droit sur un des quatre carrés aux coins du parallélogramme et on déplace la souris.
  6. cisaillement (touche F4). On clique en même temps avec le bouton droit sur un des quatre côtés et on bouge la souris.
  7. réduction/agrandissement proportionnel (touche F5 ou les flêches haute, bas, suivant précédent). On clique en même temps avec le bouton droit n' importe et on déplace la souris ou on presse une des quatre touches sachant que les transformations sont plus rapides avec les touches suivant et précedent.
  8. Conseil pratique : commencer par les réductions/agrandissements proportionnels et les translations avant de vous lancer dans des transformations plus complexes.

    Et les commandes indispensables :
  9. Création (touche C). Créer une miniature au milieu.
  10. Duplication (touche D). Duplique la miniature sélectionnée et la place au centre.
  11. Suppression (touche S). Supprime la miniature sélectionnée.
  12. Sélection (touche tabulation). Change la miniature sélectionnée.
  13. Après avoir bien mouillé sa chemise à recouvrir la fougère on obtient une approximation :


    Il manque le haut !
    Allez dans l' onglet Frame est changez yMax. Augmenter aussi le champ iteration pour améliorer la qualité de l' image (mais attention ! cela augment aussi le temps de calcul).



  14. La coloration (comme la coiffure ;-)

    Pour pouvoir mettre des couleurs il faut comprendre ce que l' on veut peindre.
    Cela vous choquera sûrement mais l'image ci-dessus est la représentation d'un tableau de nombres entiers et plus précisément d' un tableau de 512 lignes avec 512 nombres par ligne... cela en fait beaucoup !
    En mathématique, on appelle cela une matrice 512,512.
    Il est clair que l' être humain ne peut saisir tous ces nombres et on a alors recours à la couleur. On utilise aussi un diagramme de répartition qui donne la fréquence des nombres du tableau comme ci-dessous.


    Dessous la répartition, on voit un "double slider" (un trait avec deux triangles).
    Lorsque les deux triangles sont aux extrêmités, on visualise la répartition de tous les nombres. Mais souvent les différences de fréquences sont très importantes ou l'écart entre le plus grand nombre et le plus petit est énorme alors on peut réduire la plage de nombres dont on veut la répartition en déplaçant les triangles.
    Sur l' exemple ci-dessus, on voit la répartition compris dans la plage 4,650 (on dirait l' intervalle en mathématique).
    On plaque ensuite la palette de couleurs (qui est une liste de couleurs) à cette plage en déplaçant les triangles du deuxième "double slider" ou en pressant la touche F10 ou encore avec le menu Action.
    Avec ce deuxième "double slider" , on peut ajuster la coloration sur une partie de la plage de nombres sélectionnée avec le premier "double slider" : c 'est une deuxième plage.
    On peut faire glisser la palette avec le slider rotate ou l'inverser avec la case à cocher inversed.
    Enfin pour les nombres qui ne sont plus dans la plage, on a trois possibilités :

  15. satured Les nombres plus petits que la plage ont la même couleur que la première couleur de la palette (s'il n' y a pas de glissement avec rotate) et les nombres plus grands la dernière couleur.
  16. modulo On répète la palette à l'infini ainsi : si la palette se composait de trois couleurs R V B, on aurait la séquence : R V B R V B R V B ...
  17. scie On répète la palette à l'infini ainsi : si la palette se composait de trois couleurs R V B, on aurait la séquence : R V B V R V B V R ...
  18. Voici un exemple avec la palette rainbow (par défaut) et la fougère précédente :





  19. Conclusion

    Ce programme est récent, complexe et il reste énormément de travail (à commencer par corriger les bugs) mais je le propose quand même aux artistes intéressés par l' art numérique et conceptuel car il permet un contrôle total de la création des fractales et c 'est unique (à ma connaissance).

    En fait l' auteur voudrait :

  20. utiliser le format png et introduire du coup la transparence.
  21. améliorer la vitesse d' affichage ;-). Vous aurez probablement remarqué la lenteur.
  22. corriger les bugs comme celui du cissaillement.
  23. implémenter les effets de couleurs comme l'illusion de relief, de constraste ou la correction gamma à la manière d' Apophysis.
  24. implémenter mes idées sur les effets des transformations affines.
  25. améliorer l' exportation en 3D.
  26. changer le mode de coloration (assez efficace mais pas vraiment flexible).
  27. faire une vue hiérarchique pour sélectionner les miniatures à la souris.
  28. introduire l'échantillonage pour le dessin des miniatures.
  29. l' internaute aura remarqué que Qifs ne permet pas de créer de palettes de couleurs. Un programme presque terminé et travaillant dans les espaces RGB, Lab et Lch est prévu.
  30. porter le programme sur Windows.
  31. porter le programme sur MAC.
  32. Et aussi comprendre et implémenter l' algorithme d' Evelyne Lutton et al. et le généraliser à la 3D car l'auteur a très envie de passer à la 3D.
  33. Si vous avez des remarques ou des suggestions, envoyez un Email ou offrez un verre dans un bistrot à Paris.