[[Cet article N'est PAS libre de droit.
La fin de cet article est en cours de finition.]]
Quand faire faire des dessins, c’est faire de l’art
Harold Cohen est peintre depuis 1948. En 1968, il décide que les pinceaux, c’est bien – les robots, c’est mieux. Il troque alors sa blouse tachée contre un ordinateur et se lance dans la programmation. Son but ? Réaliser un robot qui dessine. Cela l’amène à se poser force questions et à adopter une attitude humble, questionnant les principes anthropologiques et fondamentaux du dessin, de l’image, des couleurs, de l’art et de la créativité.
Harold Cohen est aussi chercheur au CRCA de l’université de San Diégo (Californie), et a eu à cœur de nous tenir informer de l’avancée de son œuvre par le biais d’une dizaine d’articles depuis 35 ans[1].
Nous allons suivre les premiers pas de son entreprise[2].
Qu’est-ce qu’Aaron ?
Ce projet à la lisière de l’art et de l’informatique est baptisé « Aaron ». Le but pour Cohen, est de réaliser une machine capable de faire des dessins.
La première série d’interrogations est d’ordre théorique et abstrait. Cohen partira des présupposés suivants :
* La base du dessin est le trait et le trait est ce qui relie deux points entre eux (pas forcément en ligne droite).
* Les schèmes qui sous-tendent toute appréhension d’un dessin sont au nombre de trois :
- Capacité de distinguer une figure de l’arrière plan
- Capacité de distinguer des formes ouvertes des fermées
- Capacité de distinguer l’intérieur de l’extérieur
* Quelques para-motifs sont souvent employés :
- L’ombrage
- La répétition d’éléments
- La division
Partant de ces grandes lignes, l’artiste commence à créer un programme informatique qui devra faire mouvoir une machine capable de dessiner selon cette logique. Les premiers résultats sont suffisamment encourageants pour qu’il y travaille encore…
Le cerveau d’Aaron intègre donc cette logique structurelle que Cohen reconnaît lui-même comme n’étant pas forcément naturelle. Ce premier niveau conceptuel, appelé protocole, ou épi-forme, va s’imposer comme étant le monde, l’umwelt d’Aaron[3]. Dans ce cadre, ce dernier devra réaliser des actions : prendre position sur la feuille, poser le crayon, se mouvoir dans telle ou telle direction, lever le crayon, se repositionner – etc – enfin, estimer que son dessin est achevé. D’autres choix structurels sont faits :
- Aaron ne dispose d’aucune donnée, répertoire, catalogue d’objets lorsqu’il part en goguette.
- Aaron ne dispose d’aucune mémoire cumulative : quand son dessin sera fini, il n’en aura gardé aucune trace.
- Aaron n’agit sur aucune donnée entrante (input).
- Aaron garde en mémoire ce qu’il a fait pour décider de ce qu’il va faire.
Cela implique qu’Aaron :
- N’a à sa disposition que des règles pré-établies pour décider de ce qu’il dessine
- N’a aucune idée de ce qu’il va dessiner
- N’a même aucune idée de ce à quoi le trait qu’il est en train de dessiner va ressembler
- Connaît l’étendue de son espace alloué et la place qu’il y occupe
- Reconstruit en permanence la vision qu’il se fait de ce qu’il dessine.
En aucun cas, il ne regarde ni ne voit les coups de crayon sur la toile. Il agit bien en peintre, mais un peintre aveugle, construisant dans sa tête ce qu’il croit poser sur la toile. Les gens capables de disputer une partie d’échecs en aveugles réalisent une performance approchante.
Le corps d’Aaron est variable. Il peut s’agir d’une table traçante, mobile sur la surface de la toile – et qui donc sait en permanence ou elle se trouve – ou bien, plus spectaculaire, un petit robot-voiture (baptisé ‘tortue’) qui se déplace à l’aide de sonar afin de calculer sa position sur la toile sur laquelle il roule.
![]() |
Comment ça marche ?
Ceci posé, intéressons-nous à présent à l’algorithmique qu’il y a derrière.
D’après nous, il y a en fait deux niveaux de représentation algorithmique : un schéma conceptuel et une explicitation des règles.
Algorithme conceptuel
Nous avons retravailler l’algorithme proposé par le créateur et tenter de l’expliquer.[4]
Au commencement la page est blanche.
Le programme “ŒUVRE” commence. Toutes ces variables initiales sont à zéro (il sait donc que la page est blanche). Il faut poser le premier coup de crayon.
Le programme “TOPOGRAPHIE” assigne une zone à couvrir : le robot s’y déplace, crayon levé.
Le programme “FIGURATION” va entamer le dessin d’un motif.
Qu’est-ce qu’un motif ? Le motif est fait de traits.
Un programme “TRAIT” lance la construction d’un trait de dessin.
Qu’est-ce qu’un trait de dessin ? C’est un point initial A et un point final B[5].
Combien y a t-il de façon de joindre un point A à un point B ? Une infinité d’étapes curvilignes, de secteurs à parcourir.
Le programme “SECTEUR” créé à un point initial An un point final An+1
Comment fait on pour parcourir ce chemin/secteur ? Il faut avancer vers lui pas à pas, d’une traite, en ligne droite.
Le programme “DROITE” fait avancer le robot, mine baissée d’un mouvement unitaire, atomique pourrait-on dire[6].
Le robot est donc le touriste en goguette. Pas celui, pressé, qui a optimisé son parcours pour ne rien rater des merveilles labellisées de telle ou telle région. Non, le dilettante des origines (Stendhal errant en Italie), qui arrive à Rome, sait qu’il repartira de Naples – d’ici quelques temps – et ne s’est fixé aucune obligation dans l’entre-deux.
Voyez le randonneur avec une semaine de vacances pour s’adonner à son péché mignon. Son périple (TRAIT) fixé (A->B), il se choisit un premier point de chute A1. Pour s’y rendre, il s’engage dans une première pérégrination (SECTEUR reliant A à A1). Et il s’y rend à pied, ne s’interdisant nulle incartade et mouvement de traverse (DROITE) pour découvrir telle beauté naturelle sur sa route. Comme il est un peu éméché, ses pas mêmes peuvent être variables (cf : note précédente sur ce qu’est une ‘droite’ pour Aaron).
Comme il est chevronné, il regarde où il met les pieds pour ne pas tomber dans un trou[7]. Et ce, avant chaque pas. S’il n’y a pas de danger, alors son corps fait un pas en avant. S’il arrive devant un gouffre, alors il changera d’idée, se disant qu’il ferait mieux d’essayer tel autre SECTEUR pour terminer son périple ; ou bien carrément de changer de sentier montagnard (TRAIT), tout en restant dans les Pyrénées parce que c’est un coin charmant ; ou bien encore, s’il se rend compte qu’il a déjà parcouru tous les sentiers des Pyrénées, de délaisser cette chaîne pour celle plus intéressante des Alpes. Son Guide du Routard des Pyrénées de poche fait office du programme FIGURATION, étant entendu qu’il ne l’a pas lu avant de partir, mais s’y réfère à chaque trouble ou fin d’étape pour voir où il pourrait se rendre en suivant. Le site web du Guide du Routard, auquel il pourra se référer pour définitivement changer de région et se faire envoyer en express un guide d’une autre région du monde, est le lieu où s’implémente le programme TOPOGRAPHIE.
Si son terrain de jeu était l’Europe continentale; au bout d’un certain temps, il pourrait estimer avoir suffisamment parcouru tous ces paysages, avoir bien mérité de retourner travailler, et donc en quelque sorte avoir parachever son “ŒUVRE”.
Comment a t il fait pour se souvenir de tout? Il a tout noté dans un journal de bord précisant tous les pas qu’il a fait et les lieux où il s’est rendu. Perecien, une fois l’œuvre achevée, il jette son calepin à la poubelle, et repartira vierge de toute connaissance, une prochaine fois.
Dans notre cas pictural, bien sûr, rien n’existe. Pas plus les chaînes de montagne que les sentiers qui y serpentent. C’est la fonction du programme concernée que de créer ex-nihilo, plus ou moins aléatoirement, et les unes après les autres, sans plan initial, ces entités
Algorithmes fonctionnels
Aaron est à la fois :
- Intégré dans une logique (protocole)
- Collé aux règles qu’il se doit d’employer (fonctions d’un programme)
- Libre d’agir comme il l’entend
- Dédié à réaliser des œuvres qui ne soient pas des gribouillis (scribble)
Il faut donc lui implémenter des règles de transition les plus riches et sensées possibles. Un type exemplaire sera plus éclairant. Cohen doit programmer quelque chose comme[8] :
Si : {c’est le premier ‘trait’
ET : que le motif précédent était une forme ‘ouverte’
ET : que ‘n’ motifs ont déjà été dessinés
ET : qu’il reste ‘q’ emplacements sur la toile}
Alors {ce motif sera ‘fermé’
ET : la valeur ‘taille’ vaut ‘random(1)’
ET : la valeur ’nombre_de_répétitions’ vaut ‘random(1)’
ET : dans a% des cas, faire A
dans b% des cas, faire B
dans c% des cas, faire C}
Sinon {‘diviser’ le motif selon les spécifications (x,y,z,t)
OU : ‘ombrer’ le motif selon les spécifications (x,y,z,t)
OU : ‘ajouter’ un motif ouvert attenant selon les spécifications (x,y,z,t)}
Les pourcentages des actions postérieures dépendant eux-mêmes des actions antérieures…
Cet exemple, très simple, permet d’appréhender comment Aaron peut être à la fois, libre et imprévisible (aléatoire, pourcentage), endigué par des règles (fonctions et transitions), créateur de formes honnêtes[9] (choix des valeurs des paramètres) dans une école artistique reconnaissable (protocole : ie structure même du programme, enchaînement des actions).
La construction d’un monde
Aaron ne sait pas à l’avance ce qu’il va faire, mais il agit instantanément selon ce qu’il a déjà fait. Plus exactement, selon ce qu’il a déjà construit. C’est-à-dire qu’il ne garde pas en mémoire l’ensemble des points qui ont été maculés par son stylo – mais quel motif a ainsi été constitué car c’est le motif qui fait le dessin et donc l’œuvre. Pour compliquer le tout, ces motifs sont changeants. Telle ligne courbe prévue pour être ouverte, peut très bien s’intégrer dans un plus grand motif, dessin, et donc dessein.
Aaron est donc en permanence en train de construire, déconstruire et reconstruire son Monde, tandis qu’il agit sur le nôtre (duquel il n’a pas une connaissance directe). Pour ce faire, il voit la toile comme une matrice de pixels et associe une valeur à chaque pixel/cellule. Par exemple ‘1’ pour noir – ‘0’ pour blanc’. Vue la complexité, cette approche doit s’affiner, c’est-à-dire j’en ai peur : se complexifier.
En fait chaque cellule est le lieu d’un ‘événement’. Un événement est représenté sous forme numérique par une série de bits. Il doit prendre en compte : si la cellule est crayonnée ou pas, si elle est utilisable ou pas (une cellule vierge enfermée dans un rond est une cellule ‘utilisée’ par le motif même qui la comprend), si elle est dans une forme fermée ou pas, si elle fait frontière, si elle est reliée à une autre cellule, si elle appartient à différents motifs, enfin à quel motif elle appartient. Une cellule pointe donc vers un événement, ie une suite de bits (codés en binaire donc) quelque part dans le disque dur qui pourrait ressembler à :
OU :
Le lecteur attentif aura remarqué, et c’est là que nous voulions en venir, à quel point cette approche par pointeur est une approche constitutif du langage de programmation C…
Qu’est-ce que ça dit ?
Harold Cohen évoque plusieurs aspects problématiques qui sont apparus avec son travail. L’impact de la construction cognitive dans l’appréhension visuelle d’une image ; la construction de la connaissance ; la représentation ; le « être-illustratif-de » (standing-for-ness) d’un motif ; etc. Nous reviendrons à présent sur d’autres points.
La personnalité stylistique d’Aaron.
Très vite, Cohen s’aperçoit d’un paradoxe : il a tenté de mettre en place une machine à dessiner neutre ; et :
ü Il y a un véritable air de famille de dessins générés
ü On lui renvoie parfois même qu’on reconnaît, dans les dessins d’Aaron, la main (le style pictural) de son créateur[10]
Les productions d’Aaron sont reconnaissables. A quoi cela tient-il ?
D’abord, sur les présupposés intellectuels de base de Cohen, qui s’arc-boutent sur ces 3 axes : ouvert/fermé ; intérieur/extérieur ; figure/fonds. Donc dans le protocole. Cohen juge ses principes primitifs comme « intuitifs et arbitraires »[11].
Ensuite sur les règles de construction du dessin : notamment le fait de ne pas traverser un trait par un autre trait.
Troisièmement sur ses capacités picturales, ce qu’il sait faire. Donc sur ses fonctions (la fonction « tirer un trait perpendiculaire », « ombrer » ; etc).
Enfin, sur les pourcentages et les valeurs des paramètres.
Tout cela mis bout à bout fait qu’Aaron dessine avec un style bien particulier, très influencé par celui de son créateur. Un robot pourrait il générer des Matthieu, des Twombly, ou des Mondrian ? Ca ne semble pas impossible en changeant les paramètres du programme. Par exemple : « nombre de traits entre 1 et 3 ; autorisation de traverser une ligne déjà dessinée ; surface à couvrir entre 15 et 50% ; pourcentage de rupture de pente au bout de telle distance : 90% » devrait donner un Twombly.
Pour un Mondrian, le programme est simplement inadapté. Simplement parce que Mondrian ne raisonne pas avec ces notions de figures et d’intérieurs. Aaron ne peut a priori pas produire de tableau « à la Mondrian » ; il faudrait lui créer un petit frère : Aaron- Mondrian.
Mais toute une dimension reste encore ignorer : le « faire », autrement dit « le geste ».
Aaron fait montre d’un geste pictural. Neutre. Quand le stylo est en position abaissée, le bras moteur ou le robot se place pour former le trait jusqu’à sa conclusion. Dans le cas de la tortue, Cohen a peaufiné en autorisant une vitesse de déplacement variable : le bras dessinateur va moins vite quand il est au niveau de zones de transition ou terminales.
Il y a, à notre sens, deux paramètres non utilisés chez Aaron qui font le geste du dessinateur : 1/ vitesse de déplacement de son bras armé ; 2/ la position du stylo (cette dernière se résumant à « position haute » ou « position basse » ici). Bien sûr, l’outil de dessin choisi (stylo, stylet, plume, etc) autoriserait encore une variété des styles de dessin.
La personnalité artistique d’Aaron est innée. Elle a conditionné la structure du programme.
Le dessein (purpose)
Quand un homme veut coucher une vison sur une toile, il a a priori deux méthodes à disposition : il peint ce qu’il voit (devant lui ou dans sa tête) ou bien il peint ce qu’il voit qu’il est en train de peindre. Il peint ce qu’il a dans la tête dans un projet pré-concu ; il gribouille sur un bout de papier, distingue dans ses premiers éléments l’amorce de quelque chose auquel il va tenter de donner corps par la suite. La plupart du temps, à un moment de son travail, il va prendre du recul , regarder le résultat et effacer tel contour ou en déduire qu’il manque à tel ou tel endroit un élément, un trait,une couleur – et alors poursuivre.
Aaron ne raisonne pas comme cela. A plus d’un titre.
Aaron ne commence jamais avec une idée pré-concue de ce qu’il veut dessiner ; Aaron n’a jamais, à un quelconque moment de son travail, une idée sur ce qu’il veut faire de son tableau ; Aaron ne revient jamais sur ce qu’il a fait (effaçage).
Il est finalement à la lisière des deux approches humaines. Il n’a pas de schéma d’ensemble préconçu pas plus qu’il ne se laisse inspirer par ses premiers balbutiements. Il a une approche divisionniste conditionnelle. Il choisit quel emplacement il va travailler, il choisit quel type de forme il va y placer, il choisit quels sont les points de départ et d’arrivée de son premier trait pour construire la forme, il construit sa forme trait par trait ; passe à une autre forme du même emplacement qui peut l’amener soit à modifier la surface initialement allouée ou modifier un motif déjà mis en place.
Son propos est comme dilué à chaque niveau hiérarchique et à chaque transition de fonctions. La machine a un but, mais connaissable a posteriori. Elle n’a pas vraiment de dessein holistique mais des mini-actions finalisées à chaque étape de son travail. On peut expliquer ce qu’elle fait et ce qu’elle a fait ; mais non prévoir ce qu’elle va faire. Elle est surprenante sans être médusante. Elle agit de façon compréhensible et responsable sans être prédictible[12].
Cette qualité est due à trois modalités dans ses prises de décision :
1/ La sériation de son labeur : « je fais les formes une par une sans me demander ce que je ferai après »
2/ La spécialisation de ces opérateurs : « je me contente de donner telle information. Pour connaître la suite, voyez ma collègue » (et plus exactement : « voyez ma sbire »)
3/ La détermination de ses opérations (entre aléatoire et assignement) : « j’agis comme cela, plus ou moins »
Le dessein d’Aaron est terré dans sa structure. Il émerge. Inconsciemment ?
Le libre arbitre
On peut définir le libre arbitre d’Aaron de la manière suivante :
C’est la capacité de chaque opération d’être menée selon un paramétrage préprogrammée dépendant des conditions initiales et antérieures.
Aaron n’est pas libre de faire n’importe quoi :
Il est cantonné à une aire (l’espace de la feuille), comme tout artiste. Il ne sait faire que certaines opérations (sa « personnalité stylistique » du à son protocole et à la structure de son programme. Si personne ne lui a appris à « colorier en noir », il ne pourra le faire). Son libre arbitre est dans l’actualisation de ses règles, dans la mise en place concrète de ces élements structurels. Aaron a virtuellement une infinité de dessin accouchables (dans la limité des règles et paramètres qui font son programme) ; et son ‘libre arbitre’ s’exprime lorsqu’il n’en actualise, n’en dessine que l’un d’entre eux.
Comme son dessein, son libre arbitre est éparpillé à chacune de ces opérations. On parlera plus volontiers du libre arbitre d’une opération en spécifiant ce qui nous semble les 3 grandes classes d’opérations : les transitions, les décisions et les fonctions. Les transitions posent les conditions pour passer à l’étape suivante. Elles ont pour objet l’état actuel du dessin et les éléments précédents déjà mis en place. Les décisions sont le moment où les paramètres finaux de l’opération en cours sont fixés dans un cadre préprogrammé. C’est à ce moment-là que le programme sait ce qu’il va faire dans son action en cours – sans savoir comment il va le faire – et se fixe des paramètres structurels à respecter pour y arriver. Les fonctions sont les programmes avec une mission très claire. Ce sont les plus petits éléments de programmation : faire un trait, ombrer, etc. Comme on l’a vu avec l’algorithme conceptuel – elles possèdent elles-mêmes une dose de latitude et d’expression dans les cadres pré-fixés.
En effet, si on repend notre exemple d’algorithme fonctionnel, on voit que structurellement, cela revient à quelque chose de la forme : SI {Les conditions de la Transition sont réunies} ALORS {Décider pour la prochaine étape de telles valeurs aléa-assignées ET lancer l’action de la Fonction}.
Le libre arbitre d’Aaron est réparti et partagé dans les éléments fonctionnels de la structure. Ce libre arbitre s’exprimant dans un cadre borné, qui fait que les mouvements d’Aaron seront à la fois imprévus et pronosticables.
D’autres points à soulever
-
Pas de mémoire/archives
-
Feeback sans input
-
Absences de matériau original
-
Les bornes/intervalles
-
La définition procédurale et pragmatique du ‘hasard’
-
Le langage de programmation et de compilation
Coda
Cohen lui-même est très clair sur son bébé : Aaron n’est ni un artiste ni un outil. Il est plutôt un assistant. Qu’est-ce à dire ?
…
Aaron, c’est le programme.
« Aaron est un programme basé sur la connaissance, dans lequel la connaissance relative à la fabrication d’images est représentée sous la forme de règles »[13].
En 1982, Harold Cohen se lasse d’un assistant si limité. Il se lance dans un projet plus ambitieux, capable de mémoire, de dessiner des formes, d’ajouter de la couleur, d’être – quelque soit le sens et sa déclinaison informatique – doté de créativité. Aaron2 voyait le jour, et sera l’occasion d’une future analyse…
***
***
Notes
[1] A consulter notamment en ligne : http://crca.ucsd.edu/~hcohen/
[2] Les traductions seront de notre fait.
[3] « Le protocole signifie l’instance procédurale d’une conscience formelle. C’est clairement une définition qui repose sur des modalités cognitives plutôt que perceptives, puisqu’il implique la conscience de structures relationnelles » in What is an image. P13.
[4] Cf : “What is an image?” / H. Cohen – 1979. P.6.
[5] Dans notre cas, pour être plus précis, ce sont deux points doublés de deux vecteurs directionnels (indiquant les angles de départ et d’arrivée) du trait.
[6] Un degré de raffinement supplémentaire est en fait présent puisque le plus petit mouvement du robot n’est pas une droite, mais une fonction plus ou moins aléatoire reliant les deux points.
[7] Le programme d’Aaron lui spécifie de ne pas couper un trait de dessin déjà existant
[8] selon l’exemple tiré de : “What is an image” / Harold Cohen – 1979. p14-15
[9] ie : au-delà du gribouillis
[10] cf : “What is an image?” P.5.
[11] cf : “The material of symbols” / H. Cohen – aout 1976 – p.9
[12] “Thus the program will know at the beginning of each development what the current intention is, but will not know what shape will result.”
[13] Cf: “What is an image” .p.1








