Dans le monde, il existe énormément de formes géométriques, simples ou complexes.
Les plus fascinantes, à mon sens, résident dans les fractales. Mais avant de vous montrer quelques exemples, qu’est ce qu’une fractale ?
Un peu d’histoire
La découverte des fractales est très récente, comparée aux bases mathématiques et géométriques.
Gaston Maurice Julia partage ses résultats sur le sujet vers 1917-1918 tandis que ses résultats sont aussi obtenus par Pierre Fatou au même moment.
Tous deux concourent alors pour le « Grand prix des sciences mathématiques » sur ce sujet organisé par l’académie des sciences.
Alors que Gaston Julia réclama la priorité pour celui-ci, Pierre se retira du concours.
Par la suite, le mathématicien Benoît Mandelbrot en a réalisé un ensemble, l’ensemble de Mandelbrot.
Il a démontré en 1974 que certains objets, certaines formes sont décrites comme « auto-similaires » en publiant « Les Objets fractals – Forme, hasard et dimension ».
Ce n’est pas une découverte ici mais plutôt une définition de celles-ci, des formes « fractales » ayant déjà été découvertes au 19ème siècle, telles que le flocon de Koch ou le tapis de Sierpiński.
On peut définir une fractale comme une forme géométrique, tel un carré, un rectangle ou un cercle, avec des propriétés similaires, mais plus complexe.
C’est une forme géométrique, donc, mais qui se répète indéfiniment en taille de plus en plus réduite : ce sont des objets dits « auto-similaires ».
Qu’obtient-on si je dessine un carré, puis un autre carré tourné à 90 degrés à l’intérieur de celui-ci et ainsi de suite ? Dans l’exemple ci-dessous, on constate que la forme entre dans la définition d’une fractale.

Les domaines d’application
Les fractales sont présentes dans de nombreux domaines.
Dans la nature, avec la forme des feuilles de fougère, le brocoli de Romanesco ou encore le flocon de neige. La forme des cours d’eau est également considérée comme fractale. On peut observer des similarités à différentes échelles de mesure pour la forme du ruissellement et les embranchements de ceux-ci.
Cependant, il faut noter que ces éléments réels ont des formes fractales ne pouvant pas physiquement se répéter à l’infini. À partir d’une certaine taille, les lois physiques ne permettent pas de continuer l’occurrence.




Elles sont aussi présentent dans l’électronique.
La forme fractale des éléments de réception d’une antenne permet d’avoir une surface plus grande pour capter les ondes.
Aussi, la distance entre chaque extrémité de l’antenne et la base de celle-ci est identique, permettant une synchronisation des ondes reçues sur une surface plane.
C’est pour cela que les antennes satellites de nos jours ne sont plus des paraboles.

Récemment, le domaine des fractales a été utilisé pour concevoir un mur anti-bruit. Sa structure en forme particulière et répétitive permettrait de réduire les bruits de 98%. Ici, nous constatons effectivement que la forme est inspirée fortement du principe des fractales.

On la retrouve également dans la météorologie. En effet, la forme des nuages et les structures des tempêtes sont définies comme fractales. En outre, des modèles utilisant le principe de fractale sont utilisés pour prédire des périodes de sécheresse et / ou de crues.
Les fractales sont présentes dans d’autres domaines comme la biologie et la structure pulmonaire des humains, dans la bourse avec la forme des courbes financières se répétant sur diverses échelles de temps par exemple.




Mais alors, en quoi c’est utile dans le monde du numérique ?
L’art fractal
L‘art se trouve dans la création ou l’adaptation d’œuvres diverses ; une peinture, un film, une musique, un bijou ou encore un vêtement, tous sont, à leur manière, une œuvre d’art.
L‘art fractal est un « style » d’art numérique consistant à créer des algorithmes permettant de former des objets de forme fractale.
Les premières formes fractales et plus connues dans ce domaine sont sûrement les ensembles de Mandelbrot et de Julia.
L’ensemble de Mandelbrot est un ensemble créé par un algorithme récursif permettant d’écrire un pixel selon les coordonnées de celui-ci. C’est une suite de nombres sur un plan complexe définie par la formule suivante :
Cette formule définit une suite d’itération, ‘n’ représentant le numéro de l’itération.
La lettre ‘c’ correspond à un nombre complexe fixe.
Tandis que ‘Zn’ est le résultat du calcul, selon ‘Zn-1’.
Par exemple, pour calculer ‘Zn’ avec n = 5 :
Z5 = (Z4)² + C.
Pour plus de précision, vous pouvez regarder cet article qui explique très bien la formule.
Voici la représentation de l’ensemble de Mandelbrot :

Le principe de l’ensemble de Mandelbrot est de représenter tous les points de l’ensemble de Julia sur un même graphique selon les coordonnées définies par le point de l’ensemble de Julia.
La première image montre l’ensemble de Mandelbrot sur un plan défini.
Sur les images suivantes, nous observons différentes configurations de l’ensemble de Julia d’après des coordonnées spécifiques.





En faisant varier les coordonnées de la formule, voici ce que cela représente :

Ici nous avons pris les algorithmes les plus connus, mais il existe des variantes de ces ensembles et une multitude d’autres bien différents.
Ce qui est intéressant avec l’utilisation des ordinateurs, c’est de pouvoir zoomer sur une zone précise d’une représentation fractale en changeant les paramètres. Ce zoom est théoriquement infini, mais limité par la puissance de l’ordinateur utilisé. Cependant, la puissance des processeurs ne faisant qu’augmenter, nous pouvons générer et explorer beaucoup plus loin !
Quelques exemples sur différents algorithmes :





L’utilisation des fractales dans le traitement d’image
Les fractales sont aussi utilisées dans le traitement d’image.
Notamment dans les algorithmes de réduction de bruit.
Le bruit dit « numérique » dans une image apparaît dans le domaine de la photographie numérique. Il est assez visible lorsque nous prenons une photo avec peu de luminosité :

Les algorithmes de fractales nous permettent de détecter les similarités structurelles de l’image.
Le bruit ne suivant pas de structure spécifique ou récurrente, nous pouvons donc identifier les endroits où le bruit est présent.
Ensuite, les zones de l’image considérées comme du bruit sont filtrées avec les composants, structures, fractales pour construire cette partie manquante.
Cependant, la réduction de bruit peut entraîner une perte plus ou moins conséquente de détails dans l’image selon la précision de l’analyse demandée.

Nous pouvons aussi faire de la compression d’image sur ce principe (détection d’occurrence et reconstruction).
Ce type de compression n’est pas très utilisé car c’est une méthode destructive, nous ne retrouvons aucune données de l’image de base dans le résultat final ce qui la rend moins fiable et précise que les algorithmes existants.
Dans l’exemple ci-dessous, nous avons l’image d’origine à gauche et le résultat après compression.
Il y a une perte de données assez visible dû au facteur de compression assez grand.

Génération de terrain dans les jeux vidéos
Les fractales sont utilisées dans la génération procédurale de terrain.
La génération procédurale se définie par la création d’objet numérique en utilisant des algorithmes mathématiques.
En 1985, Mandelbrot présente une simulation par ordinateur d’un paysage créé à partir de géométrie fractale.
Les algorithmes fractales permettent de générer, de manière procédurale, les reliefs composant un terrain, un paysage.
Prenons un carré composé de neuf point en trois lignes et trois colonnes et où nous connaissons la hauteur des quatre sommets de celui-ci (algorithme du Diamond Square).
Nous cherchons à calculer la hauteur de son point central.
Pour ce faire, nous faisons une moyenne de hauteur des points aux extrémités du carré. On ajoute à celui-ci un nombre aléatoire, que je nommerais N. Ce nombre aléatoire permet d’avoir des fluctuations dans les hauteurs et d’éviter de trop grandes similitudes dans les reliefs.
Sur l’exemple ci-dessous, nous avons : ((54 + 27 + 201 + 112) / 4) + N = 115.
Ensuite, nous calculons les points au milieu des cotés du carré en prenant les hauteurs des extrémités du côté et le point central du carré précédemment calculé.
De la même manière, nous lui ajoutons aussi un nombre aléatoire.
Pour le point situé ligne 2 et colonne 1 : ((54 + 115 + 201) / 3) + N = 110.
Nous réitérons le calcul sur chacun des points du terrain, dont la taille est définie en amont.

Nous devrions obtenir un terrain dont la rugosité diffère selon les limites du nombre aléatoire (la rugosité ici est l’amplitude entre les différents points).


Cette méthode permet d’obtenir rapidement des terrains plutôt réalistes, évitant de prendre énormément de temps pour le faire manuellement.
Cela nous permet aussi de stocker uniquement les coordonnées du terrain, et non le modèle 3D qui serait beaucoup plus lourd.
Beaucoup de jeux maintenant utilisent cette façon de procédé. Les plus connus étant Minecraft, No Man’s Sky, The Binding of Isaac ou encore Valheim.
Des jeux bien moins récents utilisaient ce procédé afin de stocker beaucoup plus de niveaux, comme Rogue en 1980, Elite en 1984 ou encore Diablo en 1997.
Et ensuite ?
Dans cet article, je n’ai abordé que les bases des fractales.
Au vu de l’âge, relativement jeune, de cette découverte mathématique, on peut imaginer que nous n’avons encore exploré qu’une partie infime des domaines où celles-ci pourraient être utilisées.
Avec les nouvelles technologies émergentes ainsi que l’évolution exponentielle de la puissance des ordinateurs, l’avenir nous dira si les fractales auront toujours leur utilité.
Aller plus loin et liens utiles
https://users.math.yale.edu/mandelbrot/web_pdfs/scienceetvie.pdf – Doc Science et Vie.
https://helios2.mi.parisdescartes.fr/~vincent/siten/Publications/theses/pdf/Dolez.pdf – Thèse de doctorat, très complet et intéressant.
https://theses.hal.science/tel-00797902/file/These-Chauveau-20110210.pdf – autre thèse, plus complexe.
https://zestedesavoir.com/tutoriels/329/dessiner-la-fractale-de-mandelbrot/ – Tutoriel d’implémentation de l’algorithme de l’ensemble de Mandelbrot.
https://jmecom.github.io/blog/2015/diamond-square/ – Autre algorithme diamond square et son résultat.
Outils
https://www.marksmath.org/visualization/julia_sets/ – Générateur de l’ensemble de Julia sur les coordonnées de l’ensemble de Mandelbrot.
http://usefuljs.net/fractals/ – Générateur de fractales sur la base de Mandelbrot.
https://onlinefractaltools.com/ – Diverses fractales paramétrables.