Projets / Logiciel · Performance · Visuels
World
Ouvrir
- WorldL’outil complet. Éditer, jouer les scènes, charger les exemples. Les éléments se chargent à la demande depuis un petit serveur local.Lancer · bientôt
- Un seul fichierLe même, tout dans un seul fichier HTML. S’ouvre sans aucun serveur.Télécharger · bientôt
- RegistresLes huit registres de live-coding sur une page, en suivant une session webTroop.Lancer · bientôt
À propos
La scène
Le prochain concert de live-coding demande plus qu’une projection du code. World en est la scène : une seule très grande toile, et une histoire racontée à travers elle pendant que la musique se fait. Certaines zones accueillent le code joué, dessiné comme une écriture ; d’autres des feuilles de Scriptorium, des textes, des images, de la vidéo, la caméra, des scènes de CLIFT, des calques de STARS. La caméra voyage d’une zone à l’autre, déclenchée par les musiciens et la musique.
Trois modes sur une seule page. Jeu déroule l’histoire en plein écran et écoute le set. Édition (touche E, sans recharger) est l’endroit où l’on construit le monde : zones, arrêts de caméra, plans, scènes, câbles. Visite fait du même monde un site qu’on parcourt en glissant et en pinçant, avec liens, vidéos et visite guidée ; le prototype est une version de crashserver.fr.
Caméra, plans et scènes
Une vue enregistrée en édition est un arrêt de caméra. Un plan est une flèche d’un arrêt au suivant, avec sa durée, sa courbe et son mouvement : panoramique, zoom, survol, coupe, rotation, une poignée pour courber le trajet et un effet de transition facultatif. Les plans peuvent couper sur le temps.
Une scène regroupe des plans, les zones actives et un texte, et démarre sur un signal : un nom de scène envoyé par le code pendant le set, un nombre de mesures, une touche, une évaluation, ou la fin de la scène précédente. Les actes peuvent boucler : la caméra respire tant que les musiciens restent dans une partie, et avance quand ils envoient le nom suivant. Les scènes peuvent aussi répondre au son : la caméra plonge sur les coups, tremble avec les basses, penche avec les médiums. Avec une bande-son, la piste est l’horloge et l’image s’y cale.
Huit manières d’écrire le code
La police de live-coding au cœur du projet, décrite dans l’article Writing the Live Set, est une écriture de joueur : chaque ligne de code FoxDot devient un glyphe, sur le modèle du bloc de glyphes maya, et la même grammaire se dessine en huit registres. Ils lisent une vraie session au moment où elle est jouée (un serveur webTroop, ou un échantillon quand rien ne joue) et chaque paramètre du code se voit : le synthé, la mélodie, le rythme, le niveau, le filtre, chaque effet, et les méthodes qui transforment un joueur dans le temps.
- Glyphes. La famille du synthé est le signe principal, la lettre du joueur son préfixe, les notes une petite portée à côté, le filtre en haut, le temps en bas, les effets en rack sur le côté.
- Khipu. D’après les cordelettes à nœuds andines : chaque joueur est une cordelette qui serpente avec sa mélodie ; les nœuds sont le rythme, la pointe le filtre, les effets des cordelettes secondaires.
- Matrice. Un affichage de machine : chaque joueur est une rangée de cellules allumées en champs fixes (hauteur, séquenceur 16 pas, niveau, réponse du filtre, quatorze emplacements d’effets).
- Calligraphie. Une ligne à la plume large par joueur ; l’angle de la plume est le filtre, et l’aléatoire et le grain du code déchirent, maculent et font couler l’encre.
- Ogham. Chaque joueur est une pierre levée, lue de bas en haut, chaque pas qui sonne une entaille sur son arête.
- Argile. Chaque bloc de code est une tablette, chaque pas un coin enfoncé au calame, les effets un sceau-cylindre roulé au pied.
- Métier. Le temps est la trame et chaque joueur une bande de fils de chaîne : le tissu au-dessus est l’histoire du set.
- Carte du ciel. Un planisphère qui tourne tous les 32 temps : chaque joueur une constellation, la réverbération une nébuleuse, l’écho une étoile double, un joueur arrêté une nova.
Tout se branche
Les zones émettent des signaux et en reçoivent, reliées par des câbles dessinés en édition : le niveau de la basse peut piloter la taille d’une zone, le temps son opacité. Le fichier du monde n’est jamais modifié par un signal : débrancher un câble rend la zone telle qu’elle était.
Environ sept cents modules peuvent être posés : 193 calques de STARS (écrans de démarrage, plantages et reprises, tunnels, nébuleuses, nos propres flammes fractales), 441 scènes de CLIFT, dont le code C tourne compilé en WebAssembly plutôt que traduit, des effets de météo et de ciel repris de The Chorus Mandate, les générateurs et recettes de composition de Scriptorium, une webcam où chaque visage est masqué par un détecteur qui tourne dans le navigateur, et une couche de mouvement qui mesure la fluidité, la soudaineté et la synchronie des personnes qu’elle suit (un portage de la bibliothèque PyEyesWeb, vérifié contre l’original à six décimales).
Les pièces
Les exemples sont des œuvres à part entière, écrites comme des scripts qui construisent des mondes :
- The code is the score. Quatre registres explorés sur un set live, acte par acte, chacun en boucle jusqu’à ce que les musiciens envoient le nom suivant.
- The Archive. Le livre de Crash Server mis en scène comme une pièce de lecture : quatorze actes, environ treize minutes, ses documents tels qu’écrits.
- Collateral. Perdre le contrôle d’une machine qui optimise, champ par champ.
- Europa-Sigma-7, Love Virus. Des histoires de l’univers de Crash Server, avec des calques faits pour elles.
- Apophysis. Sept actes de calques 3D, de tunnels et de flammes fractales.
- The Revolution Will Be Glitched, Letters Under Pressure. Des pièces réactives au son, avec une bande-son pour horloge.
- Nerve et Voyage. Des concerts : Nerve, rapide et nerveux en cinq actes, chacun un signal du code ; Voyage, la vie d’une machine en sept parties, environ quinze minutes, mixée à partir de six spectacles.
Comment c’est construit
TypeScript, compilé en un seul fichier HTML qui s’ouvre sans serveur. Un cœur pur (le modèle, le calcul de caméra, le lecteur de scènes en machine à états) ne touche jamais la page et se teste dans Node ; des vérifications pilotent la vraie page dans le navigateur. Chaque type de zone est un dossier et une ligne dans un registre. Tout ce qui concerne une histoire vit dans son JSON, avec un numéro de schéma et des migrations, pour que les anciennes histoires continuent de s’ouvrir. Ce qui ne sert pas ne coûte qu’une vérification par image.
Fonctionnalités
- 01
Une toile, de nombreuses zones
Les zones accueillent l’écriture live, des feuilles de Scriptorium, du texte, des images, la caméra, des scènes CLIFT ou des calques STARS. Sélectionner, déplacer, redimensionner, tourner, dupliquer, depuis un menu par sections.
- 02
Une caméra qui raconte
On enregistre des vues comme arrêts de caméra ; les plans qui les relient sont des flèches avec une durée, une courbe et un mouvement (panoramique, zoom, survol, coupe, rotation). On tire une poignée pour courber le trajet.
- 03
Des scènes et leurs signaux
Chaque scène a ses plans, ses zones actives et son texte, et démarre sur un signal : un nom de scène envoyé par le code, un nombre de mesures, une touche, une évaluation, ou la fin de la précédente.
- 04
Le code écrit comme une écriture
Huit registres dessinent le code FoxDot pendant qu’il joue, en suivant une session webTroop : blocs de glyphes, cordelettes khipu, matrice lumineuse, calligraphie corrompue, ogham, tablettes d’argile, métier à tisser, carte du ciel.
- 05
Mesuré, pas promis
Chaque calque et chaque scène a été sondé pour savoir à quoi il réagit vraiment (le code, son âge, le son), et ceux destinés au live-coding ont été corrigés jusqu’à le suivre.
- 06
Sorties et mapping
Sorties vidéoprojecteur avec surfaces déformées, grilles, bords doux, tonalité et masques. Ce qui ne sert pas ne coûte qu’une vérification par image.
- 07
Caméra, visages masqués
Une zone webcam où chaque visage est anonymisé par un détecteur qui tourne dans le navigateur.
- 08
Éditer et jouer sur une seule page
E bascule entre édition et jeu sans recharger. Un monde entier tient dans un fichier JSON, sauvegardé automatiquement, versionné et partageable.
Images

Glyphes de joueur : chaque ligne de code devient un glyphe, construit comme un bloc de glyphes maya. 
Khipu : chaque joueur est une cordelette ; les nœuds sont le rythme, la pointe est le filtre. 
Matrice : chaque joueur est une rangée de cellules allumées, en champs alignés d’un joueur à l’autre. 
Calligraphie : des lignes à la plume large que l’aléatoire et le grain du code corrompent. 
Ogham : chaque joueur est une pierre levée, entaillée le long de son arête de bas en haut. 
Argile : chaque pas qui sonne enfonce un coin dans une tablette. 
Métier : le temps est la trame, le tissu au-dessus est donc l’histoire du set. 
Carte du ciel : chaque joueur est une constellation sur un planisphère qui tourne tous les 32 temps.
Crédits
- Conception, code — SVDK
- Live-coding — FoxDot, webTroop