L’interactivité décrit la nature du dialogue entre un utilisateur et une machine et que ce dialogue, entre un spectateur et un système, est constitué du couple entrée/sortie. Les entrées sont des « requêtes » envoyées à l’ordinateur, les sorties sont des « réponses » envoyées par le dispositif.

Pour traiter les actions menés par l’utilisateur, il faut que l’ordinateur puisse répondre sous conditions. Il faut donc lui donner une liste d’instructions à exécuter (un programme). Quand la ou les conditions sont réunies, alors l’ordinateur va exécuter telle ou telle tâche. Ces formules conditionnelles contenues à l’intérieur du programme s’appellent des algorithmes (aussi appelés algo ou encore algogo) qui traiteront les informations reçues. Par exemple, à propos de l’image ci-dessous, il faut imaginer un programme appelé « blague_ingénieuse » pour une installation artistique appelée « Irrémédiable » contenant l’algorithme suivant « si (boutonEstAppuyé) alors (faireTomberColle) sinon (deception) »

Et comme cette image peut l’illustrer, toute la tension de l’installation interactive repose sur une interface en attente, ici le bouton prêt à être saisi. Évidemment, cette interface peut avoir des natures peut-être moins évidentes qu’un simple bouton ou une touche d’ordinateur. Cette interface peut être déporté de la machine, à l’inverse du clavier d’un ordinateur portable: l’interface pourrait  être de nature photographique, vidéographique… (un exemple: une image projetée sur une table, une fois caressée, change et laisse place à une deuxième photographie ou à une séquence vidéo, un petit peu comme « Concrescence » de Douglas Eric Stanley). Sur le plan technique, alors on peut commencer à se poser quelques questions : Le spectateur saisit l’œuvre par le biais d’une interface, comment faire comprendre à l’ordinateur que l’œuvre en suspension doit être activée ?

L’action d’un sujet sur l’œuvre peut être considérée comme un signal et le dispositif interactif doit pouvoir le lire. La capture de ce signal peuvent être faites par le biais de moyens optiques, digitaux et analogiques (pour résumer).

Moyens optiques

Petit cas pratique: nous voulons que notre magnifique dispositif interactif puisse détecter du mouvement, une silhouette humaine, calculer le taux d’une ou plusieurs couleurs et le faire réagir en fonction des paramètres que la machine a reçu… Vous et moi, nous sommes humain, et on sait très bien faire ça. Une balle rouge arrive sur vous. Grâce à votre vue, vous la voyez arriver vers vous. Vous comprenez que vous allez la recevoir sur la poire et vous pouvez réagir haptiquement en fonction des informations reçues: vous l’attrapez, cette balle rouge, et avec vos deux mains. Bravo.

Mais un ordinateur, lui, a besoin qu’on lui insuffle la vue et un peu plus d’intelligence pour que celui-ci puisse voir et comprendre ce qu’il « voit ». Par le biais d’une ou plusieurs caméras branchées sur l’ordinateur (webcam, caméra infrarouges…) on peut doter la vue à l’ordinateur: il peut lire un flux continu d’images par acquisition vidéo. Mais pour qu’il comprenne ce qu’il voit, il faut lui faire relier ces yeux à son « cerveau ». Ici, on entre dans un domaine de l’intelligence artificielle: le computing vision souvent abrégé « CV ». En français ça veut dire « vision numérique » ou encore « vision par ordinateur ». La vision numérique consiste à faire comprendre à l’ordinateur par le biais d’algorithmes plus ou moins complexes ce qui se passe dans le flux d’images capturées. Comme tout le monde n’est pas scientifique à la NASA, une bibliothèque sous licence libre a été crée: il s’agit d’OpenCV qui permet de détecter des visages, les contours, les formes… Cette bibliothèque peut s’utiliser avec Python, C, C++, Java (et avec Processing aussi). Certains algorithmes, comme la détection de mouvement, peuvent être réalisés assez facilement, et cela sans passer par l’utilisation de bibliothèques tierces.

Moyens digitaux

Une entrée digitale reçoit et envoie des impulsions binaires (des 1 et des 0 ou des « oui » et des « non ») à un système informatique. Ces impulsions sont délivrées généralement par les doigts, sortant l’interface d’une attente le temps de l’action. Un interface digitale, c’est une touche d’ordinateur, un switch sur une table, une souris d’ordinateur, une surface tactile, un tilt… Bref, je dirais que c’est une surface très proche du dispositif informatique s’actionnant avec une impulsion, et ne comprenant pas de valeurs intermédiaires. Pour déporter les entrées digitales de l’ordinateur, par exemple un bouton, on pourra utiliser une carte électronique Arduino, planquée ou non à l’intérieur du dispositif interactif.


Une carte Arduino est une carte électronique qui pourra nous permettre d’envoyer des informations reçues par des capteurs vers un ordinateur ou bien d’actionner des moteurs, des leds, des valves… Il y a donc une partie « hardware » (matérielle) à bidouiller (en gros brancher des trucs et faire passer de l’électricité dedans) et une partie « software » (en gros faire du code pour récupérer les informations reçues par la partie matérielle).

[Arduino, Wikipédia]

Moyens analogiques

Un autre petit cas pratique: nous concevons une installation mettant en scène une animation d’une plante virtuelle qui réagit selon le taux de lumière de la salle ainsi que sa température. Si il fait très froid, la plante givre, si il fait bon, la plante est vigoureuse, si il fait trop chaud, elle fane. Pour la lumière, si la salle est plus ou moins lumineuse, la plante est plus ou moins grande, et pourrait même rester à l’état de germe si le taux de lumière serait très insuffisant. Les capteurs analogiques permettent de détecter des données liés à un environnement (capteur de température, capteur de lumière, capteur de gaz, de couleurs… il y en a des centaines). Contrairement aux moyens digitaux, les systèmes analogiques nous livrent un nuancier d’informations soumises par paquets d’octets. Ces informations sont souvent liés à la physique d’un lieu. L’utilisation de capteurs analogiques est rendue très accessible depuis la commercialisation de carte électroniques facilement programmables, comme la fameuse carte Arduino.

Également, j’ai choisi d’intégrer la captation d’informations sonores à la catégorie analogique. Il existe des petits microphones que l’on peut brancher sur une carte Arduino; Avec ce capteur, on peut récupérer les informations liés aux fréquences ainsi que l’intensité sonore de l’ambiance sonore d’un lieu. On pourra également utiliser de « véritables » microphones de studio ou de concert branchés sur un ordinateur soit par USB, ou à l’aide d’une table de mixage ou d’une carte son, par XLR ou Jack. Sur Processing on peut lire les fréquences et l’intensité sonores des entrées sonores avec l’aide de la bibliothèque « Minim », « Sound » ou « Beads ». Il est bon de noter que pour le traitement avancé du son, Processing que nous utilisons beaucoup sur ce blog n’est pas forcément le langage le plus approprié (voir du côté de Pure Data ou de Max/MSP)…