Toutes les familles

Réécriture (L-systèmes)

On réécrit le texte plusieurs fois, puis chaque lettre devient un trait ou un virage. Et ça suffit à dessiner un flocon, un dragon ou une plante.

C'est quoi, la règle ?

Et si un dessin entier tenait dans une phrase de quelques lettres ? Un L-système part d'une chaîne de lettres, qu'on appelle l'axiome, et d'une règle qui dit par quoi remplacer chaque lettre. On applique la règle à toutes les lettres en même temps, puis on recommence sur le résultat. Chaque tour, c'est une génération.

F → F-F++F-F

Ensuite, une tortue lit la chaîne (comme un petit robot qui suit des ordres à la lettre). F veut dire : avance en traçant un trait. + tourne à gauche d'un angle fixé, - tourne à droite du même angle. Les crochets [ et ] mettent la position de côté, puis la retrouvent : c'est ce qui fait les branches. Les autres lettres, comme X, ne dessinent rien, elles servent juste à la réécriture.

Ici, l'axiome est F++F++F, un triangle, et l'angle est de 60°. À chaque génération, chaque trait est remplacé par quatre traits plus petits. Le texte grossit très vite (ça explose, même), mais le dessin garde la même allure.

À toi de jouer

Choisis une règle, puis monte les générations une à une. La chaîne s'affiche à côté du dessin : quand elle devient trop longue, on n'en montre que le début, avec sa longueur réelle juste en dessous. La tortue la parcourt, et le dessin est recadré à chaque génération pour tenir dans le cadre.

Le dragon et la plante ont leur propre limite de générations, sinon la page rame.

3

Chaîne réécrite

F++F++F

7 caractères

F → F-F++F-F

Petite précision : le dessin ci-dessus est un schéma, pas l'œuvre. Il montre la règle, point. Les couleurs, la taille des points, le grain du tirage, il les rejoue pas.

Qu'est-ce qui change d'un algo à l'autre ?

Presque tout tient dans les données : l'axiome, la règle et l'angle. Le moteur qui lit la chaîne, lui, est le même pour presque tous.

Courbe du dragon
Le dragon de Heighway : une bande de papier pliée en deux, encore et encore, puis dépliée à angles droits. L'œuvre n'écrit pas de règle de réécriture : elle construit directement la suite des virages, à gauche ou à droite, en pliant le papier. Le schéma du dessus passe par une règle, c'est plus simple à montrer.
Terdragon
Le dragon ternaire, tracé d'un seul trait. La règle est F → F+F-F, avec des virages de 120°.
Courbe en C de Lévy
La courbe en C de Lévy : chaque trait est remplacé par deux traits à angle droit, F → +F--F+, avec des virages de 45°.
Flocon de Koch
Le flocon de Koch : un triangle (F++F++F) dont chaque côté se hérisse selon F → F-F++F-F, avec des virages de 60°. La courbe est fermée, elle revient sur elle-même.
Courbe de Koch quadratique
La variante à angle droit : F → F+F-F-F+F, avec des virages de 90°. Chaque trait devient un créneau (comme ceux d'un château fort). Contrairement au flocon, la courbe reste ouverte.
Pointe de flèche de Sierpiński
La pointe de flèche de Sierpiński : un seul trait qui finit par dessiner le triangle de Sierpiński. Ici, deux lettres, F et G, tracent toutes les deux : F → G-F-G et G → F+G+F, avec des virages de 60°.
Sierpiński (L-système)
Le triangle de Sierpiński, mais par un autre chemin : l'axiome est F-G-G, les règles sont F → F-G+F+G-F et G → GG, avec des virages de 120°.
Flocon de Gosper
Le flocon de Gosper, ou flowsnake : une courbe hexagonale qui remplit l'espace. Là aussi, deux lettres tracent, F → F-G--G+F++FF+G- et G → +F-GG--G-F++F+G, avec des virages de 60°.
Courbe de Hilbert
La courbe de Hilbert, qui remplit le carré. Les lettres X et Y ne dessinent rien, elles servent juste à la réécriture : X → +YF-XFX-FY+ et Y → -XF+YFY+FX-, avec des virages de 90°.
Courbe de Peano
La courbe de Peano, une autre courbe qui remplit le carré. La chaîne est multipliée par neuf à chaque génération, contre quatre pour Hilbert : du coup, on ne peut pas monter aussi haut. Virages de 90°, règles écrites avec X et Y.
Courbe de Moore
La courbe de Moore, la version fermée de Hilbert : l'axiome LFL+F+LFL assemble quatre morceaux de Hilbert en boucle. Les lettres L et R ne dessinent rien, virages de 90°.
Plante fractale
La plante de Lindenmayer, la seule de la famille à avoir des branches (grâce aux crochets [ et ], qui mettent la position de côté). X → F+[[X]-X]-F[-FX]+X et F → FF, avec des virages de 25°. C'est aussi la seule dont l'angle peut être tiré légèrement au hasard à chaque virage.

Et le hasard, il décide quoi ?

Pour chaque œuvre, le programme tire ces réglages au sort, entre des bornes fixées à l'avance. Une fois tirés, ils bougent plus : ils font partie de l'identité de l'œuvre.

  • Nombre de réécritures Courbe du dragon de 11 à 16
  • Angle de virage (°) Courbe du dragon de 88 à 92
  • Angle (°) Flocon de Koch de 58 à 62

Les algorithmes de cette famille

  • Courbe du dragon
  • Terdragon
  • Courbe en C de Lévy
  • Flocon de Koch
  • Courbe de Koch quadratique
  • Pointe de flèche de Sierpiński
  • Sierpiński (L-système)
  • Flocon de Gosper
  • Courbe de Hilbert
  • Courbe de Peano
  • Courbe de Moore
  • Plante fractale

Des œuvres de cette famille

Toutes les familles