# Code créatif

Le code créatif (en anglais creative coding), ou programmation créative, consiste à utiliser la programmation informatique comme un moyen d'expression artistique (visuel, musical, littéraire, interactif, performatif...) à part entière. Le terme semble être devenu populaire à partir des années 2000, à la suite de la publication du livre Creative Code, par John Maeda.
Hors de la pure création artistique ou musicale, le code créatif peut trouver des applications concrètes dans les domaines de la recherche en informatique graphique, du design (design graphique/graphisme génératif, design numérique, dataviz), des effets spéciaux, ou encore de la performance (Vjing, Live coding).

## Histoire

Dès 1843, Ada Byron suppose que tout ce qui peut être décrit de manière abstraite pourrait être converti en actions programmées, et elle prend pour exemple la composition musicale :
   « Supposing, for instance, that the fundamental relations of pitched sounds in the science of harmony and of musical composition were susceptible of such expression and adaptations, the engine might compose elaborate and scientific pieces of music of any degree of complexity or extent »
— Ada Byron, notes au sujet de l'article Sketch of the Analytical Engine invented by Charles Babbage Esq de Luigi Menabrea
L'idée rejoint celles de personnalités comme le polymathe Athanasius Kircher qui, à l'époque Baroque, avait développé un système aléatoire permettant d'écrire des partitions, et lui-même s'était inspiré des travaux de Raymond Lulle (14e siècle) et de son Ars Magna, un générateur littéraire destiné à combiner des arguments théologiques. Les travaux de Lulle ou de Kircher ne reposaient évidemment sur aucun appareil automatisé.
En 1871, l'ingénieur textile amiénois Édouard Gand a proposé une invention nommée Improvisateur de tissus, qui permettait, par un jeu de permutations arithmétiques, de créer des tissages inédits. On peut à juste titre y voir l'origine de du design génératif.
En 1962, A. Michael Noll, alors jeune ingénieur embauché par les laboratoires Bell pour perfectionner les techniques d'imagerie scientifique, publie un mémo intitulé Computer produced patterns, dans lequel il explique que la programmation informatique peut-être utilisée pour produire des créations visuelles à l'aide de l'ordinateur IBM 7090 et de l'imprimante à microfilms Carlson SC-4020. Il n'ose qualifier le résultat d'«œuvre» ni de «création artistique», préférant employer le mot patterns (modèles, motifs). Le document contient des exemples de code rédigés en langage Fortran, et le résultat visuel obtenu, qui consistait en des lignes reliant des points aléatoires$^,$. L'année suivante en 1963, toujours chez Bell Labs et avec le même matériel, Kenneth Knowlton met au point BEFLIX (pour "Bell Flicks"), le premier langage de programmation destiné à produire des animations informatiques. Dérivé de Fortran, BEFLIX utilise les différents signes typographiques pour obtenir des niveaux de gris différents, ce qui en fait une forme d'Art ASCII. Dès cette époque, d'autres programmeurs, ingénieurs ou mathématiciens s'engageront dans la voie de la création visuelle programmée et repousseront les limites des possibilités graphiques de l'ordinateur, qui, lorsqu'ils ont commencé à s'y intéresser, n'était même pas encore relié à un moniteur. On peut mentionner Frieder Nake et Georg Nees (Noll, Nake et Nees ont par la suite été surnommés les 3N) ou encore John Whitney, Sr., Charles Csuri et Herbert Franke. À la même époque, des artistes liés à l'abstraction, et notamment à l'art optique et cinétique, se commencent à s'intéresser à la programmation comme outil de création artistique : François Morellet, Vera Molnár, Manfred Mohr, et bien d'autres. Du reste, sans recours à l'outil informatique, on peut rapprocher de la création algorithmique plusieurs artistes ou mouvements des années fin 1950 et 1960 : l'art cybernétique, représenté par Nicolas Schöffer ou Peter Vogel, qui produisent des sculptures motorisées et équipées de capteurs ; les artistes optocinétiques, dont la production s'appuie sur des principes géométriques et arithmétiques (Bridget Riley, Victor Vasarely, etc.) ; les artistes conceptuels qui ont exploré la dimension procédurale de la création artistique (Sol LeWitt, La Monte Young, Allan Kaprow, Yoko Ono, John Cage,...) ; et encore les Oulipiens, qui dès 1960 se passionnent pour l'idée d'une littérature basée sur des contraintes, parfois directement inspirés par la culture informatique, comme George Perec avec L’art et la manière d’aborder son chef de service pour lui demander une augmentation. Tous ces artistes, musiciens ou écrivains se sont eux-mêmes appuyés sur des travaux antérieurs, notamment ceux des avant-gardes de la première moitié du XXe siècle : Kasimir Malevitch, Marcel Duchamp, Josef Albers, Hans Richter, etc.
En 1967, Seymour Papert et ses collaborateurs mettent au point le langage Logo, langage de programmation destiné à la pédagogie de la géométrie et de la programmation, qui repose sur les théories constructivistes de Jean Piaget pour qui c'est en créant que l’on apprend.
En 1968 à Londres, puis l'année suivante à Washington et à San Francisco, se tient Cybernetic Serendipity, première grande exposition collective d'art algorithmique, qui explore de nombreux domaines : image calculée, chorégraphie, musique, génération littéraire, etc. Y exposent la plupart des artistes et chercheurs pionniers du domaine de la création numérique.
En 1969, au Centre universitaire expérimental de Vincennes (désormais Université Paris VIII est fondé le Groupe Art et Informatique de Vincennes (GAIV, ou Gai Vincennes), où une poignée d'artistes-informaticiens effectuent des recherches dans le domaine de la création visuelle ou de la musique algorithmique. Le groupe sera à l'origine du cursus Arts et technologies de l'image (A.T.I.) en 1983. Toujours en 1969, l'Association for Computing Machinery a vu la création d'un groupe destiné à la création visuelle, le SIGGRAPH), qui organise des conférences annuelles consacrées à l'informatique graphique depuis 1973.
La distinction entre ce qu'Abraham Moles nomme « art naturel » (produits de la Science et de la Technique réalisés pour une autre raison que la poursuite d'une forme artistique, mais qui de fait apparaissent comme séduisants à nos yeux, et donc pourvus d'une valeur esthétique) et « art intentionnel » (recherche d'une valeur esthétique qui affecte la sensibilité de celui qui la regarde) est alors parfois mince, comme en témoigne le destin de l'image 100 consecutive pulses from the pulsar CP 1919, créée par le radioastronome Harold Craft pour sa thèse en 1970, et utilisée par le directeur artistique Peter Saville en 1979 pour servir de visuel à la pochette du disque Unknown Pleasures, par le groupe Joy Division. Cette image obtenue par programmation, dont la destination première était didactique, est devenue une création visuelle à part entière en perdant sa légende et en changeant de support.
Au tout début des années 1970, Harold Cohen (1928-2016) commence à développer AARON, un programme écrit en langage C, puis en Lisp, qui produit des œuvres artistiques. L'artiste ne programme pas l'œuvre, il écrit le programme qui produit l'œuvre.
Au cours des années 1980, la popularité croissante de la micro-informatique a provoqué la naissance de la Scène démo, une sous-culture informatique au sein de laquelle des programmeurs produisent des créations visuelles et sonores, souvent dans le but de faire une démonstration de leur virtuosité de codeurs autant que de leur talent de créateurs. Il existe des rassemblements de créateurs de démos, tels que Assembly, en Finlande où des milliers de programmeurs se regroupent et s'affrontent dans des compétitions : meilleur programme en moins d'un kilo-octet, en moins de quatre kilo-octets, etc.
Pendant les années 1990, les outils numériques se diffusent largement parmi les professionnels du design graphique ou de la création musicale. Certains artistes créent leurs propres outils et les diffusent, comme Éric Wenger (KPT Bryce, Metasynth), Jaron Lanier (VPL) ou Akira Rabelais (Argeïphontes Lyre). Dans la foulée de la philosophie open-source, de nombreux créateurs cherchent à s'affranchir des logiciels du commerce. Dans cet esprit, au Aesthetics + Computation Group du Massachusetts Institute of Technology, John Maeda et ses étudiants (Ben Fry, Casey Reas, Golan Levin, Peter Cho,...) mettent au point leurs propres outils, souvent diffusés sous licence libre.
En 1995, l'informaticien et artiste étasunien Jean-Pierre Hébert, fonde le groupe Algorists, qui se donne pour principe de rassembler des artistes auteurs de leurs propres algorithmes, comme Roman Verostko, Manfred Mohr, Channa Horwitz, Yoichiro Kawaguchi, etc. Assez logiquement, le manifeste du groupe est un algorithme :
En juillet 2000, l'artiste Antoine Moreau, aidé de juristes et d'artistes, met au point la Licence Art Libre, une licence compatible avec la licence Creative Commons BY-SA mais pensée pour s'appliquer à la création artistique. Avec cette licence, les artistes acceptent que leurs œuvres soient librement diffusées et modifiées.
Au cours des années 2010, le web-to-print, porté par des collectifs de jeunes designers (OSP, PrePostPrint, Luuse, etc.) détourne les langages de création web (Html, Css, et éventuellement Javascript et php) pour produire des livres imprimés qui échappent au contrôle et aux méthodes commerciales de sociétés telles qu'Adobe. L'enjeu de l'utilisation de la programmation informatique est alors autant une question politique et philosophique d'émancipation vis-à-vis des éditeurs de logiciels qu'une question technique et esthétique.
Les NFTs, qui permettent aux artistes numériques d'établir des certificats de propriété et d'authenticité pour des œuvres numériques, et de commercialiser celles-ci en dehors des circuits traditionnels, ont offert une visibilité nouvelle aux artistes qui utilisent la programmation informatique comme outil de création, et suscité un regain d'intérêt pour cette pratique. Selon le journaliste Dean Kissick, de Spike Art Magazine, les séries NFT les plus populaires sont des œuvres réalisées algorithmiquement : « The most popular series of NFT collectibles are algorithmically generated. ». Ces certificats de propriété en blockchain ont été inventés en 2014, mais c'est en 2020-2021 que les achats de NFT ont connu leur plus haut niveau avant de retomber nettement.
De nombreuses écoles d'art et de design du monde entier dispensent désormais des cours de programmation informatique au même titre que des disciplines plus attendues telles que le dessin, la couleur, la perspective ou le modelage.

### Expositions

* 5 février 1965-19 février 1965 Georg Nees: Computergrafik, Studiengalerie der TH Stuttgart (Université de Stuttgart). Artiste : Georg Nees. Considérée comme la première exposition d'art algorithmique au monde.
* 6 avril 1965-24 avril 1965 Computer-Generated pictures, Howard Wise Gallery, New York. Artistes : Béla Julesz et A. Michael Noll. Béla Julesz, neurobiologiste spécialiste de la perception, est connu pour ses travaux sur les stéréogrammes aléatoires, qui ont débouché sur l'invention des Autostéréogrammes,
* 5 novembre 1965-26 novembre 1965 Computer graphik, Galerie Niedlich, Stuttgart. Artistes : Georg Nees, Frieder Nake.
* 2 août 1968-20 octobre 1968 Cybernetic Serendipity, Institute of Contemporary Arts, Londres. 89 artistes, dont plusieurs membres de Fluxus ou du GRAV, mais aussi des artistes-programmeurs tels que : Kurd Alsleben, Efraim Arazi, Jean A. Baudot, Stafford Beer, Herbert Brün, Andrew Colin, Charles Csuri, D.J. Di Leonardo, Ben F. Laposky, Frieder Nake, Georg Nees, A. Michael Noll, John Whitney Sr, etc.
* 16 août 1970-8 novembre 1970 Software - Information Technology: Its New Meaning for Art, Jewish Museum (Brooklyn). Organisée par l'artiste et critique Jack Burnham, cette exposition a ensuite été présentée au Smithsonian, du 16 décembre 1970 au 14 février 1971.

## Outils destinés au code créatif
### Outils logiciels

La notion de code créatif est plus une philosophie qu'une technique et n'est attachée à aucun langage de programmation en particulier, même si plusieurs langages ou systèmes ont été conçus pour cet usage. Par exemple :
* BEFLIX (Bell Flicks), créé en 1963, premier logiciel destiné à la création d'animations informatiques. Il s'appuie sur Fortran, un langage très souvent utilisé pour le calcul scientifique.
* Logo, créé en 1969 et destiné à la pédagogie de la programmation par le dessin procédural.
* vvvv, outil de programmation visuelle créé en 1998, qui permet de manipuler en temps réel du son et de l'image.
* Design by numbers, langage procédural destiné à la création visuelle créé en 1999 par John Maeda et ses étudiants.
* Processing, langage et environnement de programmation créé en 2001 par Casey Reas et Ben Fry. Il s'appuie sur le langage Java. Il inspirera P5js (web) mais aussi Arduino (prototypage électronique).
* OpenFrameworks, un outil performant, qui s'appuie sur C++.
* Cinder, un framework pour le langage C++.
* PureData, un logiciel libre de programmation graphique pour la création musicale et multimédia en temps réel.
* Sonic Pi, un environnement de live coding sous licence libre.
* SuperCollider, un environnement et un langage de programmation pour la synthèse audio en temps réel et la composition algorithmique
* TidalCycles, pour la création musicale par code
* Scriptographer, (2006), une extension créée par Jürg Lehni et permettant d'interagir en JavaScript dans le logiciel Adobe Illustrator.
* Adobe Flash, un logiciel permettant le dessin vectoriel, l'animation, l'interaction (pointeur, clavier, microphone et webcam) et le code.
* Doodle est une librairie Scala pour le code créatif.
Les navigateurs web, bien que conçus principalement pour afficher des pages web, sont des outils appréciés par de nombreux artistes, notamment grâce aux standards web (HTML, CSS) et aux langages comme JavaScript, qui permettent de créer des œuvres picturales, vidéos, sonores et textuelles ou hybrides. Ces œuvres sont souvent apparentées à l’art en ligne, aussi appelé « art Internet » ou « netart ». Des outils destinés à la production d'images sans programmation mais pouvant être manipulés par scripts peuvent aussi être utilisés, comme le logiciel de graphisme 3D Blender, qui peut être scripté en langage Python, le logiciel de programmation visuelle TouchDesigner, ou encore le moteur de création de jeux Unity, qui se programme en C#. Des logiciels propriétaires tels qu'Adobe Illustrator proposent aussi la possibilité de produire des images à l'aide de scripts, essentiellement à fins d'automatisation de tâches.
Il existe par ailleurs des langages de programmation qui, du fait de leur inutilité fonctionnelle, peuvent être considérés comme des créations artistiques par eux-mêmes : Whitespace, Brainfuck, et autres langages de programmation exotiques. Ces langages peuvent constituer des jeux "geek", mais certains peuvent servir à étudier en profondeur des concepts informatiques ou encore à produire une forme de poésie concrète ou une proposition relevant de l'art conceptuel.
* Whitespace n'utilise que des caractères invisibles (colorés, ici). La page est en apparence totalement vide.
* Brainfuck se note à l'aide de huit symboles (><+-.,)
* Le mot "Piet" écrit en langage Piet, hommage transparent au peintre Piet Mondrian
On peut aussi évoquer l'utilisation de langages existants pour produire des œuvres où ce n'est pas l'exécution du programme qui compte mais le programme lui-même, comme l'a fait Alex Iordachescu avec if A=B, où l'existence est racontée sous forme de programmes en langage Lingo, ou encore Angus Croll avec If Hemmingway wrote Javascript, dont l'auteur étudie sérieusement la notion de style, appliquée à la fois à la littérature et à la programmation, et se demande comment Jane Austen, Jack Kerouac, Virginia Woolf ou Jorge Luis Borges (et bien d'autres) écriraient des programmes informatiques.

### Outils matériels
#### Création plastique

Avant la généralisation du moniteur informatique et autres afficheurs (vidéo-projecteur, rampes de leds,...), les premiers périphériques de sortie pour des œuvres réalisées par programmation ont été l'impression papier (impression à impact, impression matricielle, impression à marguerite, impression sur microfilm, traceur), la visualisation sur un oscilloscope, ou encore la réalisation manuelle d'œuvres en suivant les indications fournies par l'ordinateur sur une carte perforée, voire en utilisant les cartes perforées elles-mêmes, comme dans le cas de la technique dite du pixel à la main, mise au point par le Groupe Art et informatique de Vincennes dans les années 1970 : les perforations des cartes, obtenues par programme, sont ensuite utilisées comme pochoirs pour de la peinture. De nombreux créateurs d'œuvres programmées donnent une existence tangible à leur production à l'aide de traceurs, et notamment de traceurs réalisés par eux-mêmes («Do it yourself»). Cette technologie permet de maîtriser la nature des stylets (crayon, stylo bille, tout est possible) ainsi que le support employé. La brodeuse numérique, la tricoteuse numérique, la découpeuse laser, l'imprimante 3D ou la Machine-outil à commande numérique sont d'autres technologies liées à la culture maker qui peuvent être utilisées. Les tortues de Bristol, des dispositifs robotiques rudimentaires inventés en 1947, ont été remises à la mode avec la création du langage Logo, à la fin des années 1960, non seulement parce que c'est le nom que prend le traceur sur l'écran dans ce langage, mais aussi parce que des tortues robotiques ont été employées comme traceurs mobiles obéissant à un programme écrit en Logo. D'autres robots ont été détournés de leur usage pour servir d'outils de dessin : robots industriels ou drones.
* un traceur Zuse Z64 (1956), le modèle qu'utilisait le pionnier de l'art algorithmique Georg Nees.
* La tortue Logo Valiant, créée en 1983
* l'artiste Aaron Musalski et son traceur pour tableau noir «Otto». L'appareil dessine à la craie.
* «Sketchy», un robot qui effectue les portraits de personnes qui se trouvent face à sa caméra.
* Un robot artisanal qui dessine en fonction d'un programme
* Un aspirateur Roomba détourné pour servir de Spirographe.

#### Création musicale et sonore

Le lien très fort qui lie la musique aux mathématiques a naturellement mené à des recherches en informatique musicale dès les débuts de l'Histoire de l'Informatique. Les premières expérimentations ont eu lieu là où se trouvaient les ordinateurs, à savoir dans les laboratoires : le CSIRAC en Australie (1951) ; Ferranti (Christopher Strachey, 1951) Bell (Max Mathews en 1957 ; James Tenney en 1961 ; Jean-Claude Risset en 1964) ; Bull (Pierre Barbaud et Roger Blanchard, 1959) ; etc. Si les premiers exemples de musique informatique sont avant tout des transpositions de mélodies existantes, l'idée de la composition algorithmique, basée sur un programme et parfois du hasard, a vite fait son chemin. On notera, dès 1958, la fondation par Lejaren Hiller des studios de musique expérimentale (EMS) à Université de l'Illinois à Urbana-Champaign. Parmi les personnalités liées à ce centre, on compte des ingénieurs mais aussi des compositeurs tels que John Cage. De nombreux autres organismes de recherche en musique électro-acoustique ont été créés depuis, comme le Groupe de recherches musicales (1958) ; le Center for Computer Research in Music and Acoustics de l'Université de Stanford (1975) ; l'Institut de recherche et coordination acoustique/musique (1977) ; etc.
Le premier disque réalisé sur ordinateur est Music from mathematics, par John Robinson Pierce et Max Mathews, sorti en 1960.

#### Outils intégrés à la création

Que sa destination soit matérielle, sonore ou encore textuelle, le code créatif peut recourir à des périphériques de saisie qui seront utilisés pour altérer l'œuvre en fonction d'interactions ou d'injection d'information diverses : microphone, caméra, souris, clavier, ou capteurs divers (mouvement, température, etc.).