PROGRAMMATION
La philosophie
En partant du code assembleur l´idée de base est
d´écrire un langage général non
fixé de façon à ce qu´il puisse
continuellement évoluer et intégrer de nouvelles
idées et de nouveaux concepts. Par exemple les
structures dynamiques et les
fonctions locales permettent une
implémentation aisée des
réseaux neuronaux, des
algorithmes génétiques,
et de la
programmation génétique.
Les débuts
Années 1975-1980
Développement en assembleur intel 8000 et macro11 de programmes interactifs
sur le processeur graphic COLORIX mis au point par Louis Audoire au département d´informatique
de l´niversité Paris8 (Vincennes). Mise en place de bibliothèques graphiques (pulcol) et de
programmes temps réel (anacol) d´animation. Début d´implémentation de mini langages interprétés
à partir d´une rablette de saisie graphic.
Années 1980-1984
Développement en langage symbolique d´enseignement (LSE), assembleur macro11 et Fortran de programmes
d´animation, définition du
pseudo3D.
A partir de 1986
La perte de temps entrainée par la nécessaire adaptation à de nouvelles machines, de nouveaux systèmes
et de nouveaux langages (assembleur, LSE, Fortran, Algol, ALgol68, C, C++), la réécriture des programmes
devenant de plus en plus difficile et longue à mesure qu´augmentait la taille du code (actuellement
de l´ordre du million de lignes), me poussa à consacrer une partie de mon temps à l´écriture d´un
système général indépendant du matériel et du logiciel: ce fut anyflo. D´abord bati autour
d´un interpréteur de lignes de commandes il devint , au cours de son développement, un véritable
langage pseudocompilé dont la speed d´exécution me permet de construire très rapidement,
encore aujourd´hui, des installations interactives temps réel. Il intègrait des
concepts qui n´existaient pas encore (comme la programmatiuon de type "objet")
sous la forme de structures incluant simultanément des datas et du code,
celui-ci ne se réduisant pas à un pointeur vers une fonction mais étant
plutôt l´exécution en parallèle d´un programme partageant
ses données avec les autres processus, lesquels constituaient une population
d´acteurs. Bien entendu tout cela a été conçu avec mes compétences techniques
forcément limitées et sur des machines lentes (cadencée en Khz), si bien que le
temps réel ne pouvait qu´être simulé. Mais toutes les conditions étaient
réunies pour conduire aux développements actuels du système dans les domaines
de la vie et de l´intelligence artificielles (réseaux neuronaux, algorithmes
génétiques, systèmes adaptatifs).
Le fait d´avoir développé ces idées en avance et seul constitue une
démarche artistique mais manque l´efficacité et la visibilité d´un travail
collectif. Si je regrette aujourd´hui de ne pas avoir pu trouver, au sein de l´Université,
les conditions favorables à une recherche scientifique, du moins suis-je bien conscient
que la liberté qui m´a été laissée m´a permis de mener à bien une recherche, à la
frontière de l´art et de la science.
anyflo s´écrit en anyflo
Le langage anyflo permet d´implémenter très rapidement une idée, et c´est d´ailleurs
lui que j´utilise pour le développer: lorsque la simulation dans ce langage d´une nouvelle
fonctionnalité marche bien, c´est à dire lorsque de très nombreux tests intéractifs sont
satisfaisants, je le traduis en C++ et l´intègre au code.
Il même souvent plus rapide de simuler par programme
une ligne de commande en langage anyflo) que
d´écrire le code correspondant en C++.
Les installations interactives
Plutôt que de founir une boite noire dont
l´opacité ne fait qu´entretenir une
mystification assez malsaine, le langage anyflo (facilement
utilisable par des artistes) permet de construire des
Œvres ouvertes (comprenant les sources et une
documentation) accesibles
en ligne.
La Plume (1986)
J´ai développé "La Plume" en 1986, avec Marie Hélène Tramus et Edmond Couchot,
en langage anyflo.
Le Pissenlit (1988)
J´ai développé l´installation "Le Pissenlit" en 1988 sur une idée d´Edmond Couchot
en langage anyflo.
La Funambule Virtuelle (2000)
J´ai développé en 2000, avec Marie Hélène Tramus, l´installation "La Funambule".
La programmation fait appel à d´assez nombreux modules:
1) Construction d´un corps à partir des idées développées dans par exemple:
Méthode comportementale de modélisation et d´animation du corps humain
Corps vivants virtuels
La funambule virtuelle
2) Construction de réseaux neuronaux, voir par exemple:
Cours sur le connexionnisme
Méthodes d´optimisation en création artistique
3) Animation dynamique:
Dynamique dans anyflo
3) Temps réel.
L´interaction dans anyflo
Danse avec moi(2001)
J´ai développé, avec Marie Hélène Tramus,
Danse avec moi
qui est une danseuse interagissant librement avec les spectateurs au moyen de
capteurs variés (audio, polhemus, intertrax, kroonde, caméra).
L´Artauphone(2004)
J´ai développé, avec Marie Hélène Tramus, l´Artauphone qui traduit en images
une voix lisant des poèmes.
La Danseuse Virtuelle (2004)
J´ai développé, en langage anyflo, de nombreuses installations artistiques et d´outils pédagogiques
mettant en scène des danseuses virtuelles interactives et autonomes qui sont la
suite de la funambule:
Acteur
Danse
Apesanteur
Découverte
Cage
Danseuse virtuelle
Modèle
Trapézistes
Applications
Le mime connexionniste
Exemples en C++
Il n´est pas question de produire le million de lignes d´anyflo, tout à fait inexploitables,
voici, à titre d´exemple, le code de l´interface avec le langage C:
utilb.c
Plus d´information dans manuel programmeur