22es Journées de l'Association Francophone d'Informatique Graphique, Arles 2009

Art, algorithmes, autonomie.
Programmer l'imprévisible

Pierre Berger
 

Résumé
La création artistique doit, pour mériter ce nom :
- faire émerger de l'inédit, de l'original, donc de l'imprévu ;
- éveiller chez le spectateur une « résonance » : plaisir, émotion, sens.

Tant l'inédit que la résonance, sauf aux plus bas niveaux, semblent radicalement impossibles à programmer. Nos expériences avec le logiciel Roxame ont cependant ouvert quelques voies et donné quelques résultats qui justifient la poursuite de ces recherches, que l'on peut considérer comme un cas particulier d'intelligence artificielle. Une partie des résultats est communicable à tout artiste qui le souhaite, y compris sous forme de codes. L'association Les Algoristes a pour vocation de faciliter les échanges et si possible de les concrétiser dans des projets collectifs.

1. Introduction

   Aider l'artiste à créer en lui donnant des outils puissants. Lui ouvrir de nouveaux espaces avec le multimédia et les réseaux... nul n'y trouve à redire, sinon les nostalgiques du temps passé. En revanche, demander à un ordinateur, un robot ou un programme de se comporter comme un artiste, voilà un projet qui dérange, pour toutes sortes de raisons. L'art, c'est en quelque sorte le dernier refuge de l'humain dans notre monde de machines, l'artiste est le héros qui nous préserve de la robotisation générale et globalisante du monde. Un « système artiste », c'est une grenade lancée dans le dernier bunker de la résistance au réductionnisme voire du post-humanisme. C'est un saut dans l'« uncanny valley » qui sépare les machines des humains. Les opposants lancent :
- si c'est automatique (même, parfois, informatique), ce n'est pas de l'art,
- c'est impossible,
- c'est ridicule et sans intérêt, voyez Boronali,
- c'est scandaleux : les artistes ont déjà bien du mal à vivre ; si l'on crée des robots pour les concurrencer, où irons-nous ! (je n'invente rien).

   Nous avons choisi d'explorer cette piste. Le projet, commencé il y dix ans, vise à réaliser un « système artiste », comme on disait un « système expert », créant des oeuvres sans intervention humaine et en particulier de son auteur. Le projet a réussi dans une certaine mesure : d'une part il a souvent surpris son auteur (et pas seulement pas ses bogues), d'autre part il a produit des oeuvres suffisamment présentables pour être acceptées dans des salons d'arts plastiques.

   Ces résultats prouvent la possibilité d'un tel système, mais surtout, et c'est le thème de cet exposé, ils permettent d'en percevoir un peu mieux le « comment ».

2 L'inédit, l'incertain, l'imprévisible

   Écoutons un sociologue qui vient de consacrer un lourd ouvrage à la création artistique : L'hypothèse de départ est donc simple : le travail artistique est modelé par l'incertitude. L'activité de l'artiste chemine selon un cours incertain, et son terme n'est ni défini ni assuré. Si elle était programmable, elle dériverait d'une bonne spécification des problèmes à résoudre, de consignes précises à respecter, de connaissances à mettre en oeuvre sans difficulté, de règles bien définies de choix et d'optimisation des choix à respecter. Et son évaluation serait aisée, parce que le résultat pourrait être rapporté au but qui était spécifié par une programmation efficace de l'action. Mais c'est l'incertitude sur le cours de l'activité et son résultat qui est la condition de l'invention originale et de l'innovation à plus longue portée. [Menger]

   Comment programmer l'incertain ? Le moyen qui vient le premier à l'esprit est l'appel au hasard. Qu'est-ce à dire ? Entre bien d'autres, la définition de Wikipédia convient à notre propos : « Dans le langage ordinaire, le mot hasard est utilisé pour exprimer un manque apparent, sinon de causes, au moins de connaissance des causes d'un événement... Dans une perspective déterministe, la notion de hasard est uniquement liée à l'incapacité à appréhender complètement certains phénomènes dans leur complexité naturelle et donc à les prévoir infailliblement. »

   Tout le sel de la question tient dans le mot « naturel ». Que peut-être la « nature » pour un système informatique ?

   La nature la plus proche, ce sont les défauts ou les irrégularités même du système matériel et du logiciel, d'autant moins prévisible qu'il est grand et qu'il incorpore de vastes volumes d'algorithmes et de fichiers, comme le prouve la présence des procédures try/catch, par exemple ; ce peut être l'état de l'horloge système, au centième de seconde, peu prévisible pour un programme de niveau élevé qui marche sur un cycle de plusieurs secondes au moins. Et n'oublions pas les virus, source fondamentale, et fascinante, d'aléas. Il est dommage que l'on n'ait pas réussi à les utiliser de manière intéressante (sauf quelques exemples, très limités, d'« art viral »). C'est ensuite l'environnement extérieur, imprévisible par le programme : lecture de luminosités, de température, micros et caméra. Une solution radicale est proposée par le CERN avec ses modules Quantis, disponibles sous forme d'une clé USB.

   Ce sont aussi, et c'est par là que commence le programmeur, des algorithmes génératifs dont la complexité dépasse la capacité d'appréhension d'un être humain ; à commencer par les algorithmes de pseudo hasard. Ils sont faciles à écrire, mais un être humain ne peut pas faire les opérations correspondantes, en tous cas dans un temps raisonnable. Et, dans bien des cas (mais pas toujours), ils suffisent à générer un hasard dont les régularités inévitables resteront imprévisibles.

   Mais aux procédures peuvent se conjuguer des ressources internes « passives », en quantité suffisante pour que personne, ni même le créateur du système, ne puisse tout à fait s'en souvenir en détail : images, vidéos, musique, textes, voire « données » au sens traditionnel du terme (tableaux de chiffre sur l'économie, par exemple, ou pourquoi pas sur le cours mondial des oeuvres d'art...). Et l'on va pratiquement à l'infini si ces ressources peuvent se trouver sur Internet, ou si les systèmes sont interactifs.

   Enfin, on finira peut-être par détecter, voire mesurer et modéliser ce qu'on pourrait appeler la relativité digitale, ou une sorte de principe d'incertitude à la Heisenberg ou Gödel, qui atteindrait tout système digital au-delà d'une certaine dimension, et même sans faire intervenir les limites de capacité (bruit de calcul dans les filtres, voir par exemple le classique [Bellanger]), de fiabilité des matériels, ou les aléas consubstantiels aux machines quantiques. Voir ici par exemple Bailly et Longo, qui appellent de leurs voeux un « grand théorème négatif » [Bailly]

   Pour formaliser cette imprévisibilité, on pourrait ici se référer aux automates finis, dont l'effet sur l'extérieur pour s'exprimer sous la forme O = f(I,E) : les sorties sont fonction des entrées et de l'état du système. L'imprévisibilité de la sortie, ce que perçoit le spectateur, peut venir :

  • des entrées extérieures, de « la nature », du web, ou d'un module quantique de hasard,

  • de l'état du système ; on considère souvent l'espace des états comme assez petit, pour en faire de jolis diagrammes ; mais si l'on considère que l'état E est le contenu global de l'ensemble du système, il peut devenir énorme, incorporant toutes sortes de ressources,

  • de la fonction f elle-même, qui peut être aussi complexe que le permet la taille du système.

3 La résonance

   Trouver de l'incertain n'est donc pas un problème. D'ailleurs il suffit d'allumer son téléviseur sans brancher d'antenne ! Ce qui compte, c'est générer de l'imprévisible intéressant, qui évoque en nous une résonance plaisante, ou « édifiante », voire « apaisante ». Autrement dit, pour ne pas employer le mot « beau » qui est actuellement strictement tabou, il faut élaborer des critères esthétiques programmables.

   Où les trouver, et comment les programmer ? En matière d'arts plastiques, ne comptons pas sur les critiques d'art pour nous les fournir ! La critique technique, analytique, a radicalement disparu. Il y a une crise de la critique comme une crise de l'art (la littérature est très vaste, voir [Jimenez][Miller] entre bien d'autres). Il ne subsiste que le binaire « j'aime/j'aime pas » du commun des mortels, qui se traduit dans la presse par « j'en parle/je n'en parle pas ». A fortiori, les critères quantitatifs sont exclus... sauf la cote des oeuvres et des artistes dans les grandes ventes. [Robertson].

   Pourtant, les appareils de photo numériques, par exemple, ne cessent d'intégrer des critères esthétiques à leur fonctionnement :

  • le net est meilleur que le flou : donc, autofocus et anti-secousses,
  • les couleurs ne doivent pas avoir de dominante ou d'écarts trop sensibles avec la normale : donc, correction automatique des blancs,
  • une photo doit être bien cadrée : donc, détection de la face et cadrage automatique,
  • un visage gai est plus plaisant qu'un visage triste ou fermé : donc, détection du sourire,
  • ...

   N'en déplaise aux esthètes et aux théoriciens, il est donc possible de programmer quelques règles esthétiques de base. Roxame nous a conduits, empiriquement, à mettre au point un « optimum de complexité » rudimentaire. Nous n'entrerons pas ici dans les vastes débats que ce terme implique (voir entre autres [Aho], [Delahaye] ou, sur un autre terrain, « La méthode » d'Edgar Morin). Nous nous contentons de compter le nombre de pixels qui diffèrent de leurs voisins à droite et au dessus. L'expérience montre que deux tiers de pixels différents donnent les meilleurs résultats à un niveau intermédiaire de l'oeuvre (avant les phases de dégradé et de rendu). Mais quand, dans quelle phase du processus appliquer ces règles ?

Ex_ante : filtres et générateurs

   La première solution est d'appliquer des critères au début du processus, au plus près de la naissance du flux aléatoire. Nous pouvons distinguer plusieurs approches complémentaires.

   La première cadre le flux, y introduit des contraintes ; on peut par exemple générer mathématiquement des surfaces géométriques dans la « neige » du bruit blanc. Si l'on emporte une caméra « dans la nature », le cadrage s'applique à sa position, à sa focale, au choix des lieux et des objets : la forêt voisine si on aime le sous-bois, dans la chambre de sa meilleure amie si on aime les « académies » (et qu'elle aime aussi). On peut aussi découper intelligemment des tranches de roche dans certaines carrières italiennes (paesinas).

   Toutes ces méthodes se regroupent sous le concept général de filtre. Mais la simplicité apparente de ce concept est un peu trompeuse, tant il peut être étendu, de la bonnes vieille « bonnette » de la photographie d'hier jusqu'au traitement du signal et à tout le traitement d'images. Quand le filtre n'est plus d'ordre limité, appliquant une transformation simple pixel par pixel (filtre sans mémoire), il devient à la limite « créatif », ou « génétique », avec les convolutions et déconvolutions, les opérations morphogéométriques etc. Le filtre met en jeu une mémoire de plus en plus grande, pour travailler sur des groupes de pixels importants avec des fonctions complexes. À la limite, le processus de filtrage tient compte pour chaque pixel de toute l'image et de la totalité du système.

   La deuxième solution ex_ante consiste à projeter le flux aléatoire dans une panoplie d'algorithmes génératifs, le hasard intervenant alors pour choisir parmi ces algorithmes (formes, couleurs) et parmi les paramètres qui les régissent ; on peut même faire aller le hasard un peu en profondeur, par exemple pour donner un caractère « naturel » à un tracé de trait. Dès avant l'apparition de l'ordinateur sont apparus plusieurs codes de ce type : [Schillinger] pour la musique et quelques formes, Calliope[Ducrocq] pour le texte et la pixelisation des images. Enfin, dans les années 1970, les diverses versions d'Aaron [McCorduck] puis les productions des algoristes.

   Quelques algorithmes génératifs dans Roxame (extraits du dictionnaire, voir plus bas) :

form list CF_ arrow.tr ellipse line quad octagon letters rectangle pixel triangle
parameter list prop size position coulref blending mode ubris list cold sober alive drunk mad

   Plutôt que de filtre, on pourrait décrire cette solution comme la transformation du flux aléatoire par un jeu de prismes et de mécanismes. En pratique, c'est ce jeu algorithmique qui s'assimile le flux, faisant appel, au moment qui lui conviennent, aux bits suivants du flux aléatoire, que ce soit bit par bit (booléens), par caractères ou groupes de caractères (nombres, mots) ou par paquets plus lourds (bitmaps, textures, images).

   Ces algorithmes, ces processus, impliquent toujours peu ou prou des paramètres numériques, porteurs du « tuning ». Ils sont essentiels dans le caractère « esthétique » de la création, et leur détermination peut représenter un travail considérable d'essais et de mises au point. Mais leur existence même est en général masquée par les artistes eux-mêmes, soit qu'ils n'aiment pas vraiment les nombres, soit qu'ils préfèrent garder leurs secrets de fabrique. Dans quelques cas, ces paramètres sont eux-mêmes sacralisés : nombre d'or, ou formules plus globales comme « l'homme est la mesure de toutes choses » (Protagoras). Quelques auteurs les explicitent, comme Le Corbusier avec son « Modulor » (1943). Les musiciens font ici exception, avec la prolifération de leurs... mesures ! En matière d'arts numériques, ces paramètres sont multiples, et cachés dans le fond des codes : nombre d'itérations d'une boucle, relation à la taille de l'écran, palettes de couleurs, choix de positions et de proportions et, dès qu'il s'agit d'oeuvres animées ou interactives, durées et rythmes.

Ex_post : mesure et sémantique

   Cette approche est symétrique de la précédente. On laisse le processus génératif avancer et on évalue le résultat. A minima, on attend la fin de l'oeuvre, et on la considère comme bonne ou mauvaise. On programme le « j'aime, j'aime pas ». Un peu plus finement, on procède à un classement (ranking) et on détruit, met de côté, met en avant ou diffuse en fonction du classement. Rien n'empêche d'avoir plusieurs systèmes d'évaluation, correspondant à différents types de « goûts » pour ne pas dire de « marchés ».

   Parmi les critères que nous avons testés, la « complexité » citée plus haut est efficace en fin d'oeuvre. Par exemple, si on lance le programme tourner de façon autonome et donc générer un grand nombre d'oeuvres (mettons une centaine au cours d'une nuit), il est bien pratique de mettre automatiquement de côté les images toutes blanches ou toutes noires. Mais il faut appliquer ici le critère des deux tiers en finesse, car des algorithmes de rendu peuvent fortement rapprocher des 100 %, et certaines formes de stylisation peuvent au contraire aller vers des images très « simples » (mais elles exigent en général une haute résolution, ce qui est une autre façon d'accroître la « complexité »).

   Parmi les autres critères que nous avons testés, citons :

  • le cadrage plus ou moins correct des parties intéressantes de l'image ;
  • l'emploi plus ou moins complet de l'espace des couleurs (HSV, RGB) : variété de la palette, couverture correcte de la gamme des tons, saturations et valeurs, contraste ;
  • la richesse sémantique.

   Le dernier point n'a été qu'effleuré, mais c'est pourtant le plus prometteur, surtout pour les arts plastiques. En effet, en général, un spectateur apprécie d'autant plus une oeuvre qu'elle évoque pour lui des objets connus, qu'il « y voit quelque chose » (Ce n'est pas bon quand « on n'y voit rien », selon le titre d'un ouvrage récent [Arasse]).

   Ce critère sémantique était hors de portée tant que les algorithmes de vision restaient lourds et peu efficaces. Ils deviennent aujourd'hui faciles d'accès (par exemple avec Open CV), et se répandent jusque dans les machines de jeu (Nintendo DSi par exemple, avec des applications impressionnantes bien que ludiques). Il est d'autant plus intéressant qu'il permet entre images et texte une relation de génération réciproque. Il sera intéressant de développer (ou de voir apparaître) des logiciels de description d'image, qui pourront inclure des volets d'évaluation. Ces descriptions auront, pour la création artistique, un double avantage :

  • elles ne seront pas influencées par la subjectivité des critiques, leur complicité avec certains groupes d'artistes ou la dépendance incontournable des revues d'art par rapport au marché et aux galeries en particulier (quoique de telles influences s'introduiront inévitablement au coeur des logiciels),

  • étant formalisées par construction, elles entreront naturellement dans les bouclages cybernétiques dont nous parlerons plus loin.

   Au-delà de la sémantique « froide » (mots évoqués par une image), se profile une sémantique « chaude », avec ses émotions, ses intentions (et les difficultés rencontrées à les traduire dans des oeuvres) et même ses motivations. Ces termes, pour le moins étrangers au paradigme informatique traditionnel, sont maintenant utilisés de manière opérationnelle par les roboticiens. Voir par exemple [Bisognin] pour l'émotion, [Clodic] pour l'intention, avec un commentaire par la philosophe [Pacherie] et même [McFarland] pour la motivation). Nous n'en avons pas exploré les possibilités dans Roxame, mais la représentation artistique des émotions devient un domaine substantiel de développement. Les robots en sont souvent le support, soit matériellement pour étudier l'importance des expressions dans le dialogue homme-machine

   Mais pourquoi attendre la fin de cycle de création d'une oeuvre pour l'évaluer ? Il est souvent intéressant d'évaluer la création en cours de route, et de créer ainsi des boucles d'essai-correction visant cybernétiquement une valeur cible, par exemple la complexité, particulièrement facile à encadrer par des panoplies d'algorithmes de « complexification » ou de simplification.

   Ces méthodes peuvent être combinées, notamment dans l'« art génératif » [Lioret] inspirés tant par la recherche opérationnelle [Siarry] que par la modélisation de la vie et des processus darwiniens de combinaison aléatoire et de sélection (les critères de « fitness » jouant le rôle de critères « esthétique ») [Whitelaw]. Citons aussi, pour honorer l'histoire, les démarches de [Schillinger].

4. Structurer pour mieux intéresser

   La montée vers de véritables résonances inédites passe par la construction progressive de « systèmes » qui développent leur complexité de manière de plus en plus puissante, structurée, Dans ce développement, les systèmes deviennent à la fois de plus en plus aléatoires (au sens du hasard ci-dessus) et de plus en plus « intéressants » parce qu'ils ne révèlent pas les évolutions plus ou moins browniennes d'un dispositif simpliste mais le développement et le comportement structuré d'« êtres » (par exemple des « painting beings », selon [Lioret]). Ces architectures conjuguent deux structures de base, la séquence et la boucle.

   La séquence globale conduit du début de l'oeuvre, de la « page blanche » à l'oeuvre achevée (en tous cas pour les créations plastiques traditionnelles ; pour les oeuvres de performance, on pourrait dire « de processus », il y a au départ la structuration même du fonctionnement de l'oeuvre). Elle peut se décomposer en nombreuses sous-séquences. Une séquence créative n'est pas réversible. Il peut y avoir des retours en arrière, des repentirs (undo/redo), mais l'on va toujours en complexité croissante. La séquence peut conduire à un cul-de-sac, et il faut repartir d'une page blanche.

   Typiquement une oeuvre peinte commence par la construction d'un modèle, d'une construction générale (composition au sens traditionnel, que l'on pourrait décrire comme la construction d'un complexe simplicial), qui s'affine et se précise (esquisse, passage aux formes complètes ), assemble éventuellement des composants de plusieurs origines (compositing) et se termine par un rendu, une touche finale, avec les textures et les éclairages (rendering).

   Cette linéarité s'intègre des boucles, par exemple :

  • les itérations d'opérations sur l'ensemble des pixels ou autres éléments concernés ;

  • la répétition d'opérations globales jusqu'à obtention d'un certain résultat, par exemple l'application répétitive d'un filtre « médian » pour réduire la « complexité » d'une photo d'origine. Les séquences s'intègrent elles-mêmes dans une série de boucles de plus en plus larges ;

  • le cycle de l'horloge matérielle (quartz), véritable « moteur digital » de l'ensemble ;

  • le cycle de base du processeur ;

  • les cycles du système d'exploitation avec notamment sa gestion des messages et des interruptions (qui comporte sa part d'aléatoire pour un programme déterminé) ;

  • les cycles introduits par le programmeur (timers et leurs variantes, comme le runnable en Java, le draw en Processing) ;

  • éventuellement des cycles propres à certains objets avec leur propre timer ;

  • des boucles d'interaction immédiate avec l'extérieur (chargement du flux d'images de la webcam), avec lequel on peut d'ailleurs s'amuser à faire des effets comme le Larsen optique, que l'on pourrait plus ou moins sémantiser ;

  • pour les oeuvres de type « cinéma », le cycle essentiel du flot d'images vers l'écran, - enfin le cycle global de création d'une oeuvre.

   Comment organiser tout cela ? Classiquement, les séquences et les boucles associées se disposent en couches. Au niveau le plus global, s'affrontent deux types d'architectures, défendues parfois avec passion par certains artistes (et plus généralement par certains informaticiens, sans parler des politiques) :

  • des architecture « centralisées », hiérarchisées sous l'autorité d'un processeur principal ; ces architectures jacobines vont de pair avec une programmation de style impératif ; cela n'exclut pas des jeux de finesse dans les relations entre niveaux hiérarchiques comme entre les deux jeux d'algorithmes amont (génératifs) et aval (sélectifs) ; dans le domaine des algoristes, c'est l'orientation principale de Roxame, par exemple ;

  • des architectures « connexionnistes », à base de neurones, d'agents, voire de virus et d'entités « vivantes » ; la programmation a un style déclaratif ; le ou les moteurs se chargent de générer des processus à partir des contenus et des entrées ; ici, on ne préjuge pas des flux et des constructions temporaires qui vont s'élaborer dans le déroulement des processus, on est particulièrement intéressé par les modèles biologiques ; dans notre domaine, c'est l'orientation principale de Bret ou Lioret, par exemple ; ces systèmes sont à la fois assez imprévisibles et assez « robustes » pour donner des résultats séduisants. Michel Bret suggère même un critère esthétique tout à fait spécifique : l'équilibre entre les flux amont et aval dans le réseau neuronal.

   D'esprit opposé, ces deux approches peuvent se combiner. Dans un système robotique, par exemple, il peut être opportun de se contenter d'algorithmes impératifs à bas niveau (pilotage élémentaire des moteurs) et de faire en revanche un large appel au connexionisme au niveau le plus élevé, celui des intentions et des émotions.

   Les développeurs peuvent ici trouver des inspirations aussi bien chez les roboticiens que chez les psychosociologues, qui recourent de plus en plus aux mêmes concepts : comportements, hiérarchies, langages. (Comparer par exemple [Kaufmann] et [Mourioux]).

   Noter que, sur les architectures de robots, il n'existe pas actuellement, à notre connaissance, de bon ouvrage de synthèse, ni en français, ni en anglais).

5. Le dictionnaire, une forme d'architecture

   Roxame a eu besoin, dès le départ, d'un système de commandes pour écrire des processus de création, des styles, en quelque sorte. Le premier germe (1990, Turbo C) se limitait à quelques lettres saisies en ligne de commande

  • h pour une ligne bleue horizontale (ordonnée aléatoire)
  • v pour une ligne rouge verticale (abscisse aléatoire)
  • c pour un cercle jaune
  • r pour un rectangle vert
  • une série de lettres pour des opérations morpho-géométriques (eg. w, x, X, z Z).

   Puis le développement a suivi les voies habituelles de la généricité et l'orthogonalité, pour rendre indépendants formes et couleurs, puis formes et positions... Il est toujours possible de faire fonctionner le programme de cette façon :

h h v v red paint circle green rectangle

   Le système s'enrichissant, il devenait indispensable de pouvoir stocker de tels « scripts », et de pouvoir les appeler à la demande, soit en ligne de commande, soit en fonctionnement autonome répétitif. D'où l'idée d'un fichier persistant de chaînes de caractères, puis finalement d'un dictionnaire, assorti de catégories syntaxiques pour en diversifier l'analyse par un petit parser.

   Dans le cas particulier de Roxame, au fil de son développement, le dictionnaire a fini par jouer un rôle central. La boucle principale de fonctionnement ne fait pratiquement qu'y renvoyer

void draw() {
if ((isenpause == false)){ Ddo(wordtobedone) ; Affich() ; }
}

Le premier wordtobedone est la session a_day, qui lance une boucle d'exécution de work, chaque work commençant par une mise en place d'en environnemnt de base (page blanche, couleur terre de sienne, etc.), exécution proprement dite, action, puis phases terminales : nommage de l'oeuvre, stockage d'un fichier de description pouvant contenir une analyse critique assez étoffée), stockage de l'oeuvre proprement dite.

L'intérêt d'un tel dictionnaire est de tout rattacher

  • à un objet unique ;
  • structuré pour être accessible ;
  • accessible aussi aléatoirement que l'on veut ;
  • (en général) facile à lire par un être humain, notamment par l'ordre alphabétique ; il est aisé d'en obtenir automatiquement des présentations intégrant des commentaires et des images ;
  • lisible par l'ordinateur (sauf des commentaires) ;
  • hiérarchique puisque le mot peut être une macroinstruction ;
  • mais tout de même en quelque sorte « non structuré » hiérarchiquement, puisqu'on peut y accéder en n'importe quel point ; et qu'on peut d'ailleurs y créer toute sortes de boucles (mais pour l'instant il n'y a pas de structures de contrôle à proprement parler) ;
  • enrichissable indéfiniment de manière simple et « déclarative ».

Voici des exemples des principales catégories syntaxiques du dictionnaire (chaque terme est suivi de sa catégorie puis de sa « définition »)

brown color 119 45 37
clipx.c comment temporary code, for text
Academies directory Academies
Africa_physical doc Maps
any_ environ 2
classify evaluation 51
bronze_toning filter 1005
arial font_ ArialMT-48.vlw
ellipse form 32
CB_portrait generator 30
sym_h geometry 1
gradationb_hue gradation a j X t
lineNumber int for dictionary operations ;
classe list blues vivid lights greens carnations neutrals
grays !!!a_day macro_ white filler one : !!!work
!!!refDoc mem ICO00569
car_ model 1 11 5 450 130 3
big parameter 3
LRC position 7
Autonomy present Algoristes
Roxwork-10756.sc score 12605
Pédago_s script Algoristes
load service 100
cyan synonym teal
Ronsard1 text Texts

   La suite des développements nous a conduits à mettre en place des structures annexes, notamment pour faire des présentations, ou pour écrire sous forme séparée des scripts trop longs pour tenir commodément dans une macro-instructions.

   Le dictionnaire donne aussi un accès direct à des ressources internes, actuellement des images et des textes quelconques, pourquoi pas bientôt des ressources Internet.

   Cela fait encore un langage de plus... pourquoi ne pas se satisfaire des nombreux langages disponibles ? Ce point n'est pas critique pour nous (et de meilleures solutions naîtront sans doute des réflexions des Algoristes).

6. Boucles externes : développement et monde de l'Art

   Toute activité artistique fonctionne en boucle : création, présentation au public, reconnaissance et critique par ce public, changement (progrès ou simplement exploration de nouveaux domaines) du projet créatif.

   Dans le cas d'un système autonome, la boucle se dédouble.

   À un premier niveau, le système produit des oeuvres (ou effectue des performances) et peut tenir compte des réactions du public, de même que Google adapte ses prestations au ranking des documents ; cela peut inclure des dispositifs d'apprentissage ; l'étendue de ce « public » est elle-même plus ou moins large, depuis le cercle de l'atelier, de l'école, des confrères, de quelques galeristes amis jusqu'au plus large marché de l'art, et à la limite, l'inscription dans le « grand récit » du progrès de l'art (si l'on est « moderne ») ou de ses évolutions non orientées (si l'on est « postmoderne »). Selon [Menger], il est dans la nature de l'art que ces boucles incluent des rétroactions positives qui déterminent le sort des artistes et qui, dans quelques cas, les élèvent aux niveaux supérieurs de la renommée... et de la cote. Une partie de ces procédures pourraient s'automatiser.

   À un deuxième niveau, c'est l'auteur du programme qui en poursuit le développement, ou qui en construit de nouveaux, de manière à produire toujours de l'inédit, à toujours surprendre son public :

  • élargissement du catalogue des formes, des palettes, des modèles,
  • accroissement des ressources internes (images, textes),
  • nouveaux capteurs, nouveaux effecteurs, nouvelles interactions (en allant vers le « computer to brain » direct ?),
  • affinement et diversification des critères d'évaluation, des lois esthétiques, compris en modélisant le spectateur,
  • développement structurel du système (généricité, orthogonalité),
  • développement du langage, du dictionnaire, des structures syntaxiques et du parser qui les accompagne.

   Une part du progrès passe par l'internalisation des ressources, par le passage du « sampling » au procédural. Voir par exemple [Ebert] pour les textures, ou le récent piano Roland V pour les timbres musicaux. En fait y a-t-il une frontière bien nette entre les deux, comme entre bitmap et vectoriel ? Ce pourrait être un champ de réflexion théorique, débouchant même sur des constants numériques.

   On peut déplorer que les artistes de ces spécialités travaillent le plus souvent seuls, sans trop s'intéresser aux travaux des anciens, et sans aucun souci de la postérité de leur travail. Même dans le monde spécialisé des algoristes, qui connaît les noms de Schillinger ou de Ducrocq, voire d'Howard Cohen ? Dommage, car les voies à explorer sont multiples, et plus complémentaires que concurrentes.

   C'est la raison qui nous a conduit à créer, avec quelques amis, l'association Les Algoristes, reprenant le mot américain lancé par Jean-Pierre Hébert pour son groupe d'artistes américains [Algorists]. Il est d'ailleurs membres fondateur de l'association.

   La coopération entre artistes numériques n'est pas des plus aisées :

  • la sacralisation de l'art et les modes de fonctionnement de son marché poussent à l'individualisme des artistes,

  • la multiplicité des outils et des langages, de C-C++ à Lua, en passant par Java, Python, Flash, Processsing et bien d'autres, ne facilite pas les échanges.

   Nous ne désespérons pas qu'au fil de ses projets collectifs (Primeval, Alkwarel), l'association débouche sur des oeuvres aussi novatrices que collectives. À moins que, ou en même temps que, se développe une nouvelle tendance, inspirée par le post-modernisme japonais [Azuma], ne débouche sur une création par composants, l'oeuvre finale (et l'auteur) laissant défensivement la place à chaque spectateur, assemblant les composants au gré de ses goûts et de ses désirs, et créant finalement la résonance imprévisible par le remix permanent d'une immense base de ressources artistiques.

Pierre Berger
Artiste numérique

Cet exposé a été présenté aux 22es Journées de l'Association Francophone d'Informatique Graphique, Arles 2009
http://www.afig.fr/

Références

[Aho] Alfred Aho , John Hopcroft John and Jeffrey Ullman : The design and analysis of computer algorithms. Addison-Wesley, 1976.

[Algoristes] Site HTML : http://les-algoristes.org.
Blog : http://les-algoristes.over-blog.com/

[Algorists] : http://hebert.kitp.ucsb.edu/studio/algorists.html

[Arasse] Daniel Arasse : On n'y voit rien. Folio essais 2000.

[Azuma] Hiroki Azuma : Génération Otaku, les enfants de la postmodernité. Hachette Littératures 2008.

[Bailly] Francis Bailly et Giuseppe Longo : Mathématiques et sciences de la nature. La singularité physique du vivant. Hermann 2006.

[Balpe] Jean-Pierre Balpe : Initiation à la génération de textes en langue naturelle. Exemples de programmes en Basic. Eyrolles, Paris, 1986.

[Bellanger] Maurice Bellanger : Traitement numérique du signal. Théorie et pratique Masson 1987.

[Bisognin] Luca Bisognin et Sylvie Prety : Émotions et systèmes multi-agents, une architecture d'agent émotionnel. Leibnitz-Imag, équipe Magma,
http://magma.imag.fr/publications/papers/2004-Bisognin-Pesty-JFSMA.pdf.

[Breazeal] Cynthia L. Breazeal : Designing sociable robots. MIT Press, 2002.

[Brinkmann] Ron Brinkmann : The art and science of digital compositing. Morgan-Kaufmann, 1999

[Clodic] A. Clodic, V. Montreuil, R. Alami et R. Chatila : Une architecture décisionnelle pour l'interaction homme-robot. LAAs.
http://jnrr05.irisa.fr/document/jnrr-poster-006.pdf

[Cohen] Harold Cohen : Coloring without seeing, a problem in machine creativity
http://crca.ucsd.edu/~hcohen/cohenpdf/colouringwithoutseeing.pdf.

[Cohen] Harold Cohen : The further expoits of Aaron, painter
http://crca.ucsd.edu/~hcohen/cohenpdf/furtherexploits.pdf.

[Delahaye] Jean-Paul Delahaye : Information, complexité et hasard. Hermès. 2e édition 1999.

[Ducrocq] Albert Ducrocq : L'Ère des Robots. Julliard, 1953

[Ebert] David S. Ebert, F. Kenton Musgrave, Darwyn Peachey, Ken Perlin and Steven Workey : Texturing and modeling, a procedural approach. Morgan Kaufman 2003

[Elam] Kimberly Elam : Geometry of Design. Princeton Architectural Press 2001. French translation : Géométrie du design. Eyrolles 2005.

[Jimenez] Marc Jimenez : Qu'est-ce que l'esthétique. Gallimard 1997

[Kaufmann] Jean-Claude Kaufmann : Ego. Pour une sociologie de l'individu. Nathan 2001

[Le Meur] Anne-Sarah Le Meur : « Body, numbers, light. color phenomena of Eye-Ocean, experimenta virtuail image », in the proceedings of Laval Virtual Virtual reality international conference, 2009. http://www.laval.Virtual.org.

[Lioret] Alain Lioret. Émergences de nouvelles esthétiques du mouvement. L'Harmattan, coll. Champs visuels, 2004.

[McCorduck] Pamela McCorduck : Aaron's code. Metaart, artificial intelligence and the work of Harold Cohen. Freeman 1991

[McFarland] David McFarland and Thomas Bösser : Intelligent behavior in animals and robots. MIT Press 1993.

[Menger] Pierre-Michel Menger : Le travail créateur. S'accomplir dans l'incertain. Gallimard/Le Seuil, 2009

[Millet] Catherine Millet : L'art contemporain, histoire et géograhie. Flammarion, 2006.

[Mourioux] Gilles Mourioux : Architecture fonctionnelle pour les robots. JJC/LVR 19/02/2004.
http://www.bourges.univ-orleans.fr/rech/lvr/intranet/site_jjc/JJC04/Articles/groupe2/JJC04_Mourioux.pdf.

[Pacherie] Élisabeth Pacherie : Le robot n'a que des intentions simples. Interview par Azar Khalatbari. Science et avenir, no 724, juin 2007.
http://sciencesetavenirmensuel.nouvelobs.com/hebdo/sea/p724/articles/a346791-.html.

[Rancière] Jacques Rancière : Malaise dans l'estshétique. Galilée 2004.

[Robertson] Iain Robertson ed. : Understanding international art markets and management. Routledge 2005

[Schillinger] Joseph Schillinger : The mathematical basis of the arts. Philosophical library, New York, 1948

___________________
Association EPI
Janvier 2010

Retour