🌿 Fais pousser une fractale
Choisis une espèce, puis fais glisser le curseur : à chaque itération, on réécrit la chaîne et la « tortue » la redessine.
À chaque itération, chaque symbole est remplacé en parallèle par sa règle. La chaîne grossit très vite.
Axiome + règles
X → F+[[X]-X]-F[-FX]+X
Longueur chaîne
—
Angle de virage
25°
La plante : on part de la lettre X, on réécrit 4 fois, puis la tortue dessine la fougère.
🦠 1968 : un biologiste regarde pousser des algues
En 1968, Aristid Lindenmayer, un biologiste théoricien hongrois travaillant aux Pays-Bas, cherche à décrire mathématiquement la croissance des plantes. Il étudie de minuscules algues filamenteuses qui s'allongent cellule après cellule. Son idée géniale : et si la croissance n'était qu'une affaire de réécriture ?
Chaque cellule, à chaque pas de temps, se transforme en une ou plusieurs cellules selon une règle fixe. Lindenmayer modélise cela avec des lettres : une cellule « jeune » devient une cellule « âgée », qui à son tour se divise. En répétant la règle, on obtient des séquences qui imitent exactement la croissance observée. Ce formalisme prend son nom : les L-systèmes (systèmes de Lindenmayer).
📜 Le principe : réécrire, puis dessiner
Un L-système tient en trois ingrédients minuscules :
- Un axiome : la chaîne de départ, par exemple la lettre
X. - Des règles de réécriture : chaque symbole est remplacé par une nouvelle
chaîne, par exemple
F → FF(un trait devient deux traits). - Une interprétation graphique : on lit la chaîne finale comme des ordres donnés à une « tortue » qui dessine.
Le point crucial — et ce qui distingue les L-systèmes des grammaires habituelles — c'est que la réécriture est parallèle : à chaque itération, on remplace tous les symboles en même temps. C'est exactement ce qui se passe quand une plante pousse : toutes ses cellules se divisent simultanément, pas l'une après l'autre.
Une itération, étape par étape (la plante)
Axiome : X. Règles : X → F+[[X]-X]-F[-FX]+X et F → FF.
- Itération 0 :
X - Itération 1 :
F+[[X]-X]-F[-FX]+X - Itération 2 : chaque
FdevientFFet chaqueXest re-développé… la chaîne explose en quelques centaines de symboles.
La longueur croît de façon exponentielle : c'est pour ça que la fougère apparaît après si peu d'itérations.
🐢 La tortue : un alphabet de gestes
Une fois la chaîne calculée, on la confie à une tortue graphique (l'idée vient du langage Logo). La tortue a une position et une direction, et lit la chaîne lettre par lettre :
F: avance d'un pas en laissant une trace (un trait).+: tourne à gauche d'un angle fixe (par exemple 25°).-: tourne à droite du même angle.[: empile la position et la direction actuelles (mémorise un point de branchement).]: dépile — la tortue saute instantanément à la dernière position mémorisée.
Les crochets [ et ] sont la clé des plantes : ils
créent des branches. La tortue part dessiner un rameau, puis revient au tronc pour
en dessiner un autre. Sans crochets, on ne peut tracer que des courbes d'un seul trait (flocon,
dragon) ; avec eux, on obtient des arbres.
🌳 Pourquoi ça imite si bien la nature
Regarde une fougère : chaque fronde est une petite fougère, et chaque foliole une fougère encore plus petite. C'est de l'auto-similarité : le tout ressemble à ses parties. Or c'est exactement ce que produit une règle de réécriture appliquée en boucle — un même motif réinjecté à toutes les échelles.
Les L-systèmes capturent ainsi le secret de la croissance biologique : la nature ne stocke pas le plan détaillé de chaque feuille. Elle stocke une règle locale courte (« en haut d'une tige, fais deux nouvelles tiges à 25° ») et la répète. Quelques symboles d'ADN suffisent à coder un arbre entier. C'est le même principe que la courbe du dragon ou le flocon de Koch, qui sont aussi des fractales engendrées par réécriture.
Quatre L-systèmes classiques
- Plante — axiome
X, règlesX → F+[[X]-X]-F[-FX]+XetF → FF, angle 25°. Les crochets fabriquent les branches. - Flocon de Koch — axiome
F, règleF → F+F--F+F, angle 60°. Un côté du flocon. - Triangle de Sierpinski — axiome
F-G-G, règlesF → F-G+F+G-FetG → GG, angle 120°. - Courbe du dragon — axiome
FX, règlesX → X+YF+etY → -FX-Y, angle 90°.
🌍 Où vivent les L-systèmes aujourd'hui
- Génération procédurale (jeux vidéo, films) : arbres, plantes, réseaux de rivières, et même villes entières sont engendrés par des grammaires de réécriture.
- Biologie & agronomie : on simule la croissance de cultures pour prédire rendements, exposition au soleil ou propagation de maladies dans une plante.
- Architecture & design : motifs auto-similaires, structures ramifiées optimisées (par exemple des supports légers imitant les os ou les arbres).
- Art génératif : toute une famille d'œuvres numériques où l'artiste écrit des règles et observe ce qui émerge.
🎓 Le lien avec ton programme
Derrière ces dessins, ce sont des notions très scolaires qui travaillent :
- Suites et récurrence : la longueur de la chaîne suit une suite qui croît de façon exponentielle (on multiplie le nombre de symboles à chaque étape).
- Rotations & vecteurs : tourner la tortue d'un angle, c'est appliquer une rotation à son vecteur direction — exactement les rotations du plan du programme.
- Trigonométrie : l'avancée
Fse calcule avec cos et sin de la direction courante. - Récursivité & piles : les crochets
[]sont une vraie pile (structure de données « dernier entré, premier sorti »).