J'ai écrit un petit programme en C permettant de dessiner les automates de jonglage. Voici son code source :
Pour pouvoir utiliser ce programme, il faut aussi installer Graphviz (qui est un outil de dessin de graphes). On pourra le télécharger ici : Télécharger Graphviz
Mon programme produit un graphe au format ".dot" de Graphviz, et si la commande "dot" est installée, il produit aussi le dessin du graphe au format pdf. Pour le compiler sur un système UNIX, il faut faire "make" dans le dossier, puis lancer le programme avec la commande "./test". Par exemple "./test 3 5" dessine le graphe de jonglage à 3 balles et de hauteur au plus 5.
Il s'agit d'un graphe dont les arêtes sont étiquetées par des numéros correspondant à la hauteur du lancer (compté en temps et non pas en hauteur physique), et avec un état initial (c'est-à-dire l'état de départ). Les chemins dans ce graphe, partant de l'état initial, décrivent exactement les jonglages possibles.
Considérons l'automate de jonglage ci-dessous, qui correspond aux jonglages à 3 balles et de hauteur au plus 5 :
L'état initial est l'état le plus à gauche. On voit qu'il est possible de rester sur cet état en faisant des 3. Cela correspond au jonglage de base 3 3 3 3 3... Si en revanche on suit l'arête étiquetée par 5, on arrive dans un nouvel état à partir duquel il est possible de faire un 2, un 3, ou un 5. Si l'on suit l'arête étiquetée par 3 à partir de ce nouvel état, puis que l'on suit l'arête étiquetée par 1, on retombe sur l'état initial. On peut donc recommencer cette figure 5 3 1 autant de fois que l'on veut.
Autre exemple : en partant de l'état initial et en faisant un 4, on arrive dans un état à partir duquel on peut faire un 5. Si l'on fait un 1 après ce 5, on retombe dans l'état dans lequel on était après avoir fait le 4 du début. On peut donc recommencer le 5 et le 1. Il est donc possible de réaliser la figure 4 5 1 5 1 5 1 5 1... On dit que le motif 5 1 est un pattern excité : il est possible de l'itérer autant de fois que l'on veut, mais il faut d'abord faire une combinaison (ici un 4) pour pouvoir commencer à faire le pattern 5 1.
Les sommets du graphes sont constitués de ronds et de tirets. Les ronds correspondent aux balles, et les tirets à des emplacements vides. À chaque lancers, on prend la balle qui est en bas, et on la lance à une certaine hauteur, tandis que toutes les autres balles descendent d'un temps. Il n'est donc par exemple pas possible de faire de lancer 1 ou bien 2 à partir de l'état initial, puisqu'il y a déjà des balles à ces emplacement : si l'on essayait de faire quand même un 1 ou un 2 en vrai, il y aurait plusieurs balles qui arriveraient en même temps sur la même main. Et quand il n'y a pas de balle tout en bas, on est obligé de faire un zéro : il n'y a pas de balle qui arrive à ce temps et donc on ne peut rien lancer.
Voici quelques exemples de graphes obtenus aves mon programme.
Le premier est un automate de jonglage à 3 balles et avec hauteur max 6, le deuxième est un automate de jonglage à 4 balles et de hauteur au plus 6, et le troisième est un automate de jonglage à 4 balles et de hauteur au plus 6 sans 0.
Il existe des logiciels permettant d'afficher une animation d'un jongleur en train d'exécuter une figure de jonglage qu'on lui a donné. Par exemple il y a Juggling Lab.