Jump to: navigation, search

Dossier:Bilan aide à la production - 2016

Ce document reprend le travail et les dépenses liées à la demande d'aide à la production de Tanukis déposée auprès de la Commission des arts numériques de la Fédération Wallonie-Bruxelles en avril 2014.

Introduction

La demande d'aide à la production déposée à la commission des arts numériques de la Fédération Wallonie-Bruxelles en avril 2014 concernait la mise en forme d'une installation interactive et immersive.

Le développement de cette installation était découpé en plusieurs postes:

  • création d'un univers 3d incluant un avatar et différents effets;
  • intégration de ces objets dans un moteur de jeu vidéo;
  • animation de l'avatar par une danseuse;
  • utilisation d'un casque de réalité virtuelle;
  • mise en place d'un système de suivi utilisant des caméras 3d;
  • mise au point d'un système de réaction automatisé.


Le travail effectué pour chacun de ces postes est détaillé dans différents chapitres:


Il est à noter que ce document existe sous forme de page internet permettant l'aggrandissement des photos et l'utilisation des liens internes et externes. Voir Dossier:Bilan aide à la production - 2016. Cette version ne reprend pas les pièces comptables.

Collaborations

Fishing Cactus

Le projet a été soutenu par une bourse Expérience Interactive déposée en septembre 2013. Les partenaires de cette demande étaient Fishing Cactus[1], une société montoise de jeu vidéo, et l'institut numédiart[2] de l'université de mons. Le travail a démarré fin 2013 et s'est arrêté début 2014.

L'ensemble du budget alloué par ce fond ayant été attribué à la société montoise, aucune rétribution de François Zajéga n'ayant été prevue dans l'accord.

Fishing Cactus a alloué 2 graphistes et un programmeur à ce projet pour un total de 100 jours de travail, sur une base de 300 euros par jour (prix coûtant).

François Zajéga a bénéficié d'un espace de travail sur place, ce qui lui a permis de suivre le travail de l'équipe journalièrement et de participer activement au développement informatique et aux recherches artistiques.

Au démarrage du projet, il a été décidé de travailler non pas avec Mojito[3], le moteur de jeu développé en interne de la société, mais avec Unity3D[4]. Mojito était en développement intensif à cette période, et le programmeur disponible n'avait pas les compétences pour le prendre en main.

Fishing Cactus a mis a disposition du projet une librairie "maison" qui a permis de réinterpréter facilement les informations fournies par la caméra Kinect[5].

Cette collaboration a été tendue a plusieurs points de vue:

  • Timing: les heures mises à disposition par Fishing Cactus n'ont pas permis d'aboutir à une solution finalisée. Les ambitions du projet dépassaient en effet largement le temps disponible.
  • Attentes artistiques: la communication avec les graphistes a pris beaucoup de temps pour être efficace. Un problème de compréhension a ralentit la mise au point d'un nouvel avatar.
  • Attentes techniques: lié au problème de timing et dû au fait que le programmeur alloué au projet devait travailler sur d'autres projets en parallèle, une partie conséquente du développement a dû être assumée par François Zajéga.


Le bilan de cette collaboration est mitigé, principalement à cause de la différence de conception d'un projet artistique et des impératifs de qualité (de la part du porteur de projet) et de rentabilité (de la part de la socété montoise). Malgré cette divergence, le temps de travail en commun a aboutit au montage d'une version fonctionnelle de l'installation qui a été présentée a plusieurs reprises. Les textures, modèles 3d et une partie de la programmation sont réutilisable pour les évolutions futures du projet. Cette expérience a aussi permis de penser le projet Polymorph[6].

numédiart

Durant la production, Radhwan Ben Madhkour[7] a été la personne la plus active dans le projet. La collaboration a principalement porté sur la solution multi-kinect, voir chapitre Skeletons pour plus de détails. Thierry Ravet[8] a mis à disposition ses connaissances en mathématiques et programmation.

Le bilan de cette collaboration est positif puisque l'accord de collaboration ne stipulait pas clairement une participation active des membres de l'équipe dans le projet.

Résidences

Espace Pasolini

Durant la phase de protoypage, l'espace Pasolini de Valenciennes[9] avait accueilli le projet pour deux résidences.

Le théâtre a accueilli le projet pour deux autres résidences qui ont permis d'aboutir à une première présentation officielle dans le cadre des Instants Magnétiques[10].

  • résidence #1: janvier 2015 - deux présentations publiques non payantes.
  • résidence #2: avril 2015 - deux présentations publiques payantes, suivies d'une rencontre avec les artistes.


Le temps passé à Valenciennes ainsi que les conseils et avis de l'équipe du lieu a permis de développer la relation entre le son et l'image et d'affirmer l'identité du projet.

Partition graphique définissant les grands mouvements de la performance.

iMAL

iMAL[11] a hébergé une résidence de recherche de fin décembre 2015 au 15 janvier 2016. Cette résidence[12] a permis de travailler sur le système de captation multi-kinect avec la danseuse Mitsiko Shimura[13]. Cette session de travail s'est terminée par la présentation publique d'une courte performance.

Visuels

Monotypes

La recherche graphiques faite durant la phase de conception du projet a servi de matière première pour toutes les textures du projet.

Petit échantillon de la bibliothèque de monotypes:

  • monotypes-tanukis-20140505-05
  • monotypes-tanukis-20140505-06
  • monotypes-tanukis-20140505-07
  • monotypes-tanukis-20140505-08
  • monotypes-tanukis-20140505-09
  • monotypes-tanukis-20140505-10

Texture utilisée dans les particules.
Texture utilisée pour la transparence du personnage.

 

Nouvel avatar

L'avatar utilisé pendant toute la phase de conception a été revu durant la collaboration avec Fishing Cactus.

L'idée était de rendre son apparence moins géométrique tout en ne perdant pas son côté synthétique. Il fallait aussi renforcer le flou sur son sexe en mélangeant plus visiblement des éléments anatomiques masculins et féminins.

Cette partie du travail a été longue et fastidieuse. Voici les différentes étapes de la recherche réalisées par le graphiste de Fishing Cactus, présentées de manière chronologique.

Première phase

Étude du corps

Corps version 1
Commentaires de François Zajéga
Corps version 4

 
Étude de la tête

Tête version 1
Tête version 2
Tête version 3

Le reproche principal fait à ces essais était la carrure trop importante, le manque de sensualité, d'élan et d'inventivité en général de ce corps.

A ce stade, l'avatar ne se rapprochant pas des attentes, les heures passant et la tension augmentant entre l'artiste et le graphiste, le travail a été stoppé pour permettre à François Zajéga de mener une recherche graphique et de revenir avec des spécifications plus claires.

Prise de distance

Cette phase a débuté par un essai de fusion entre l'anatomie humaine et celle d'un chien viverrin[14].

Croquis préparatoire.
Modélisation et recherche de matière.
Modélisation et recherche de matière.

Cette piste menant à un personnage trop simiesque, elle fut abandonnée.

Voir ici pour l'ensemble des recherches

 

Apparition du sans visage

Au terme de cette recherche, le nouvel avatar est apparu spontanément en quelques heures. Il a alors été nettement plus facile de travailler avec le graphiste, qui a pris en charge la finition de la modélisation et la préparation à l'utilisation dans le moteur 3d.

Vue générale.
Buste de face.
Buste de profil.

Finalisation

Modèle 3d après nettoyage par le graphiste
Détails.
Visualisation des arêtes.

Environnement

À son entrée dans le monde virtuel, le visiteur est téléporté dans une salle. Les murs de cette salle s'écartent et il est invité à faire un pas pour se retrouver sur un balcon surplombant un espace vide.

Une tour est située en face de lui, à une centaine de mètres. Cette tour est le point d'arrivée de l'avatar. Elle vibre et se désagrège pour laisser apparaître le tanuki.

Deux visiteurs immergés, le balcon est symbolisé par une plaque de bois sur laquelle le visiteur se tient.

Tour de connection

Étapes de conception de la tour.

Premiers essais

Première ébauche.
Première ébauche, détails.

Développement avec le graphiste

Recherche sur la structure et les chemins de câbles.
Différentes étapes d'évolution de la tour.

 

Nuages

L'espace, dans un premier temps vide, est progressivement rempli par des brumes de différentes couleurs et densité.

Atmosphère générale.
Autre moment.

Vidéo montrant le comportement du brouillard.

Développements

Cette section liste les différents développements informatiques réalisés dans le cadre de ce projet.

Durant la phase de protoypage, le projet s'appuyait sur Blender[15]. Cet outil ayant des limitations handicapantes pour la réalisation du projet, l'utilisation d'un moteur de jeu professionnel a été nécessaire pour le mener à bien.

Bien que la demande de subside[16] mentionnait l'utilisation de Mojito[3], le choix s'est porté sur Unity3D[4]. Voir Fishing Cactus pour les raisons de ce choix.

Bien que ce moteur soit très complet, l'idéologie avec laquelle il a été conçu ne permettait pas de satisfaire aux exigences du projet. La gestion des animations des avatars a été un des points principaux sur lequel le développement dans Unity s'est concentré. D'autres ajouts ont aussi été apportés.

VVVVUnityOSC

Le addon OSC[17] disponible dans l'asset store étant trop basique pour pouvoir communiquer avec openframeworks[18], un portage du addon développé pour VVVV[19] a été nécessaire. Le code est disponible sur github[20] sous licence GPLv2[21].

B2J

L'acronyme B2J signifie blender to json.

Cet addon a été développé par François Zajéga avec le soutient de Fishing Cactus en vue d'augmenter les fonctionnalités d'animation d'avatars dans Unity3D.

Les fichiers de mouvements enregistrés durant les séances de captures réalisées chez numédiart en novembre et décembre 2013[22] n'étaient pas utilisable directement dans Unity. La durée des enregistrement et le format bvh[23] sortaient en effet complètement du cadre standard rencontré dans les jeux vidéos. Il a donc été nécessiare de créer un lecteur spécifique pour ces fichiers.

Dans une première phase, un script python[24] transcode les fichiers de capation de mouvements du format bvh[23] au format json[25]. Ce format est en effet beaucoup plus courant. L'importation de ces fichiers dans le moteur de jeu a été possible grâce à MiniJSON[26]

Un second problème important c'est alors posé. Les structure des données des fichiers de captation ne correspondait pas aux articulations de l'avatar, tant au niveau de leur nom que de leur nombre. La position des articulations de la colonne vertébrale notamment était assez dissemblable.

Pour créer la relation entre le bvh et l'avatar, un format de fichier de mapping[27] a été mis au point. Il permet de définir la relation entre les points du bvh et les articulations de l'avatar, ainsi que le pondérateur à appliquer à chaque relation. Il est possibe d'inluencer plusieurs articulations à partir d'un seul point bvh ou l'inverse.

A cette étape, il était possible de lire un seul fichier à la fois. Que ce soit en performance ou en installation, cette contrainte était bloquante. Il fallait pouvoir passer d'une animation à l'autre sans qu'il y ait de sautes brutales.

Un moteur d'animation a permis de rencontrer cette attente. Il permet de

  • charger plusieurs fichiers de mouvements en parallèle;
  • de passer de l'un à l'autre sans acoup;
  • de faire varier la vitesse de lecture des fichiers séparément.


En plus de la gestion du chargement, de la lecture et du mapping des fichiers d'animation, le concept masque de a été ajouté. Ils servent à désactiver l'influence de l'animation sur certaines articulations. Il est donc devenu possible d'animer un avatar avec plusieurs sources différentes, en choisissant l'influence de chaque source sur chaque articulation. Pour donner un exemple: la jambe droite de l'avatar peut courir, la gauche être en position assise et que le haut du corps en train de faire un mouvement de danse.

A cette étape, les développement permettaient d'imaginer une performance mais pas encore de captation temps réelle puisque seuls les fichiers de captations étaient reconnus. La structure du moteur, avec ces lecteurs parallélisés, a été pensée pour permettre d'autres type de sources que les fichiers bvh.

Deux autres types d'entrées ont donc été ajoutées. Toutes deux sont temps réel, c'est-à-dire qu'elles ne s'appuient pas sur des enregistrement préalable.

Le premier type se base sur l'addon dynamic bone[28]. Il simule un comportement physique des articulations de l'avatar, en réaction à la gravité et au mouvements du corps entier. Le résultat de cet addon n'est pas utilisé directement sur l'avatar mais envoyé dans le moteur d'animation, ce qui permet de gérer son influence et de le mélanger aux autres sources. Ce développement été assez rapide et a préparé le terrain pour le deuxième type, crucial à l'installation interactive celui-là.

L'intégration des squelettes[29] captés grâce à la Kinect[5] dans le moteur d'animation a posé plusieurs problèmes:

  1. différence de format: tout comme pour le bvh, les squelettes kinect utilisent une hiérachie et un format propre et n'ayant pas nécessairement de rapport avec l'avatar à animer;
  2. mise en réseau: ce ne sont pas une mais 4 à 6 kinects qui sont utilisées dans le projet (voir Skeletons); il était donc imperatif de permettre l'arrivée des information via le réseau;
  3. identification: chaque squelette a un identifiant propre qu'il fallait mettre en relation avec un avatar dans le monde 3d.


Le point 1 & 2 ont été partiellement résolu par l'utilisation d'une librairie développée par Fishing Cactus. L'injection des données dans le moteur d'animation a demandé un certain effort mais c'est soldé par un succès.

Cet moteur d'animation a été développé en C#[30] mais en gardant une syntaxe proche du C++[31], ce qui rend le code portable dans d'autres outils. La plateforme Polymorph[6] n'était pas encore en gestation à ce moment.

Schéma de classe de B2J.

version pdf de ce shéma, autres schémas et explications

Formats

Example de fichier de mapping

{
   "type": "mapping",
   "version": 0.0,
   "desc": "mapping for mocap made with IGS costume from numediart",
   "name": "tanuki-numediart",
   "model": "bvh_numediart",
   "enable_rotations": 1,
   "enable_translations": 0,
   "enable_scales": 0,
   "smooth_method": "ACCUMULATION_OF_DIFFERENCE",
   "list": [
       "Head",
       "Hips",
       "LeftArm",
       "LeftFoot",
       "LeftFootHeel",
       "LeftForeArm",
       "LeftHand",
       "LeftLeg",
       "LeftShoulder",
       "LeftUpLeg",
       "Neck",
       "RightArm",
       "RightFoot",
       "RightFootHeel",
       "RightForeArm",
       "RightHand",
       "RightLeg",
       "RightShoulder",
       "RightUpLeg",
       "Spine",
       "Spine1"
   ],
   "relations": [
       {"Head": [ { "bone": "head", "weight": 1 } ] },
       {"Hips": [ { "bone": "hips", "weight": 1 } ] },
       {"LeftArm": [ { "bone": "upper_arm.L", "weight": 1 } ] },
       {"LeftFoot": [ { "bone": "foot.L", "weight": 0.3 } ] },
       {"LeftFootHeel": [ { "bone": "toe.L", "weight": 1 } ] },
       {"LeftForeArm": [ { "bone": "forearm.L", "weight": 1 } ] },
       {"LeftHand": [ { "bone": "hand.L", "weight": 1 } ] },
       {"LeftLeg": [ { "bone": "shin.L", "weight": 1 } ] },
       {"LeftShoulder": [ { "bone": "shoulder.L", "weight": 1 } ] },
       {"LeftUpLeg": [ { "bone": "thigh.L", "weight": 1 } ] },
       {"Neck": [ { "bone": "neck", "weight": 1 } ] },
       {"RightArm": [ { "bone": "upper_arm.R", "weight": 1 } ] },
       {"RightFoot": [ { "bone": "foot.R", "weight": 0.3 } ] },
       {"RightFootHeel": [ { "bone": "toe.R", "weight": 1 } ] },
       {"RightForeArm": [ { "bone": "forearm.R", "weight": 1 } ] },
       {"RightHand": [ { "bone": "hand.R", "weight": 1 } ] },
       {"RightLeg": [ { "bone": "shin.R", "weight": 1 } ] },
       {"RightShoulder": [ { "bone": "shoulder.R", "weight": 1 } ] },
       {"RightUpLeg": [ { "bone": "thigh.R", "weight": 1 } ] },
       {"Spine": [ { "bone": "spine", "weight": 1 } ] },
       {"Spine1": [ { "bone": "chest", "weight": 1 } ] }
   ]
}

Example d'un fichier de mask:

{
   "type": "mask",
   "version": 0.0,
   "desc": "noise right side mask",
   "name": "right_side",
   "mask": [
       { "__DEFAULT__": 0 },
       { "arm_r_bone": 0.5 },
       { "elbow_r_bone": 0.8 },
       { "hand_r_bone": 1 },
       { "leg_r_bone": 0.2 },
       { "knee_r_bone": 0.6 },
       { "ankle_r_bone": 1 },
       { "foot_r_bone": 0.4 },
       { "spine_01_bone": 0.5 },
       { "spine_02_bone": 1 },
       { "collar_r_bone": 0.5 },
       { "collar_l_bone": 0.5 },
       { "neck_bone": 0.5 },
       { "arm_l_bone": 0.1 },
       { "leg_l_bone": 0.05 }
   ]
}

Skeletons

Skeletons-banner.png

Skeletons[32] est le nom d'une suite de programmes développés en collaboration avec numédiart[2] qui permet de suivre les déplacements de personnes grâce à un ensemble de caméras Kinect[5] inter-connectées.

Cet aspect du projet Tanuksi est crucial puisqu'il permet d'ouvrir la surface d'interaction et de suivre des personnes étant face l'une à l'autre, quelque soit leur angle par rapport aux caméras.

Ce projet avait été ébauché en 2011 chez numédiart dans le cadre de KOSEI[33]. Le protoype développé à cette époque était instable, très difficile à calibrer et donnait des résultats de piètre qualité. De plus il était basé sur le première version de la caméra Kinect.

Skeletons utilise maintenant le deuxième modèle de caméra Kinect, ce qui a demandé une adaptation du code à plusieurs niveaux.

Durant la production de tanukis, un effort conjoint de Françcois Zajéga et de Radhwan Ben Madhkour a permis de pousser le développement jusqu'à une version utilisable en production .

L'architecture de la solution est restée identique et s'appuie sur un modéle master-slave[34]:

  • une série de machines, les slaves, sont connectés à une caméra Kinect, captent les images, pré-traitent et diffusent l'information extraite;
  • une machine centrale, le master, contrôle les slaves et fusionne les informations récupérées.


L'installation d'un système skeleton nécessite donc plusieurs ordinateurs. Les slaves sont de petites machines, de type mini-pc, peu onéreux (aux environs de 500 euros l'unité). Ces machines sont néanmoins assez puissantes pour assurer le bon fonctionnement d'une application d'extraction d'information. Le master quant à lui est un programme fonctionnant sur la machine qui fait aussi toruner le rendu visuel et sonore. Les différents éléments du réseau sont connectés entre eux par un réseau filaire.

Calibration

La première phase de la mise en place du système est une calibration des différents slaves. Cette étape permet de positionner les différents caméras dans un repère absolu. Pour ce faire, chaque slave envoie une photo en 3 dimensions[35] ainsi qu'un vecteur représentant la position du sol à un programme de calibration situé sur la machine centrale. Ce programme aligne automatiquement les vecteurs sol des différents slaves. Une visualisation des différents point de vue permet ensuite d'affiner le réglage automatique. Cette étape est fortement facilitée par l'alignement des sols qui réduit l'affinage à une translation 2 dimensions et une rotation dans l'axe perpendiculaire au sol.

Une fois la calibration des slaves effectuée, les matrices de transformation[36] sont envoyées à chaque slave.

Les 2 programmes impliqués dans cette étape de calibration ont été développés par Radhwan Ben Madhkourr[7] dans le cadre de sa thèse de doctorat. Ils ont été affinés et stabilisés pour les besoins du projet.

Interface graphique du programme de calibration.

Tracking

Après cette phase de calibration, 2 autres programmes prennent le relais. Le programme fonctionnant sur les slaves est le streamer. Le master héberge le merger.

Le rôle du streamer est de:

  • collecter les squelettes[29] présents dans le champ de vision de la Kinect;
  • affiner leur validité en fonction de leur distance et de l'orientation des membres;
  • les positionner dans le repère absolu grâce à la matrice de calibration obtenue durant le phase de calibration;
  • et enfin de les diffuser par réseau au merger.


Dans un soucis de performance, de nombreux ports sont utilisés pour transmettre les messages dans le LAN[37]. Ceci permet aussi de faciliter l'identification des paquets à la réception.

Le merger reçoit donc les positions des squelettes vus par toutes les caméras dans le bon repère. Il lui faut encore identifier quelles sont les squelettes qui semblent correspondrent à la même personnes dans les différents points de vue. Un algorithme de classement performant trie les informations reçues en prenant en compte:

  • les différences temporelles, chaque squelette n'étant pas vu au même moment de tous les points de vue;
  • ainsi que les erreurs d'approximation dans la détection.

Cet algorithme organise les squelettes en paquets, appelés clusters. Chacun d'eux fusionne les positions en prenant en compte l'affinement fait par les slaves lors de la captation et les décallages temporels. En ressort un nouveau squelette, qui est à son tour diffusé sur le réseau.

C'est ce squelette mergé qui est envoyé au moteur de jeu et qui permet d'animer l'avatar en temps réel.

L'ensemble des opérations de captation, transmission et fusion doit être effectuée en un minimum de temps pour éviter d'augmenter le décallage entre la personne physiquement présente et la réaction de l'avatar. L'optimisation du code des applications permet de rester en dessous des 10 millisecondes, entre la captation et la réception dans le moteur 3d.

Cette partie de la solution a été developpée par François Zajéga.

La solution est aujourd'hui en version béta et est diffusée sous license LGL[38] sur bitbucket.

Vidéo de démonstration

Schéma expliquant le fonctionnement de la solution de tracking.

Control map

La gestion de l'apparence de l'avatar utilise un shader[39] sur mesure, permettant de gérer les différents aspects de son affichage. Cette recherche c'est appuyée sur ShaderForge[40].

Grâce à cet outil, il a été possible de manipuler de manière satisfaisante le pixel shaders[39] et de là la couleur, les reflets, l'ombre et la transparence de l'avatar.

Par contre, la déformation de la forme de l'avatar devait passer par un geometry shader[39]. Il a donc fallu fortement retoucher le code généré par ShaderForge pour ajouter cette fonctionnalité.

Une fois ajoutée, il est apparu que le contrôle des déformations était complexe et difficilement gérable en programmation simple. L'utilisation d'une texture[41] de contrôle, a permis d'indiquer quel point de l'avatar se déforme en fonction d'un paramètre donné.

Pour produire cette texture, un utilitaire a été construit, portant le doux nom de control map generator. Il permet de placer différents points sur la peau de l'avatar et de définir leur rayon d'influence. Une fois placés, l'outil génère une image dont les couleurs correspondent aux identifiants des points de contrôles. Une seconde texture stocke l'influence (le poids) de chaque points pour chaque pixel.

Ces 2 textures sont ensuite chargées dans le moteur 3d et guident le grossissement ou la contraction de différentes parties de l'avatar.

Interface graphique du programme.
  • Texture stockant les identifiants.
  • Texture stockant les poids.
Résultat de l'utilisation des textures générées.

Voir la vidéo

Utilisation dans le projet final.

  • tanuki_mesh-texture_explosion_001
  • tanuki_mesh-texture_explosion_002
  • tanuki_mesh-texture_explosion_003
  • tanuki_mesh-texture_explosion_004
  • tanuki_mesh-texture_explosion_005
  • tanuki_mesh-texture_explosion_006
  • tanuki_mesh-texture_explosion_007
  • tanuki_mesh-texture_explosion_008
  • tanuki_mesh-texture_explosion_009

Bone scaler

Programme tournant sur une tablette.

Ce petit utilitaire pour Android[42] est utilisé durant les performance pour déformer la taille des os de l'avatar. Il a été développé grâce à APDE[43]. Après avoir mis au point un bout de code[44] permettant la récupération de la position des dix doigts et leur identification, une schématisation du squelette de l'avatar a été construite. Les articulations de ce squelette peuvent être aggripées et manipulées simultanément.

L'information de la longueur des membres est alors envoyée en OSC[17] à la machine de rendu.

Il est toujours utilisé durant les performances tanukis.

Calendrier

Liste des événements et des présentations publiques du projet.

Date Ville Contexte Description
27/09/2014 Mons, BE Vice-Versa Performance dans le cadre du festival Vice<->Versa organisé par Transcultures - lien de l'événement
23/10/2014 Arles, FR Databit.me Performance dans le cadre du festival indépendant - lien de l'événement
17/11/2014 Mons, BE Mediadays Installation sur le stand de Fishing Cactus. Les visiteurs étaient immergés par couple, face à face. Ils se voyaient l'un l'autre sous la forme d'un avatar - lien vers le compte rendu de l'événement
16/01/2015 Valenciennes, FR Espace Pasolini Présentation publiques du résultat de la résidence de création
13/04/2015 Valenciennes, FR Espace Pasolini Deux représentations dans le cadre du cycle Instants Magnétiques - lien de l'événement
27/06/2015 Paris, FR Galerie Charlot Présentation des monotypes dans le cadre de l'exposition Matière / Plan / Espace - lien de l'événement
07/11/2015 Bruxelles, BE LVRM Présentation du projet et de la suite Skeletons dans le cadre de l'événement LVRM - lien de l'événement
15/01/2016 Bruxelles, BE iMAL Présentation publique du résultat de la résidence de création - lien de l'événement
30/03/2016 Bruxelles, BE DorkbotBRU#13 Présentation publique du projet dans le cadre à iMAL - lien de l'événement
17/11/2016 Tournai, BE Transcultures Performance au musée de la marionnette

Dépenses

Type Description Montant
Transport Délacements bruxelles-mons pour travail avec numédiart 60,80€
Location Location d'un espace de travail à l'association f-lat pour la période octobre 2015 - janvier 2016 600,00€
Location Location d'un espace de travail à l'association f-lat pour la période février 2016 - septembre 2016 1.200,00€
Matériel Achat d'un ordinateur portable 2.177,90€
Matériel Achat d'un ordinateur de type tour 1.819,01€
Sous-traitance Composition musicale par Loïc Reboursière 500,00€
Sous-traitance Aide au développement par Balthazar de Tonnac 500,00€
Sous-traitance Shooting et montage d'une vidéo de présentation de la résidence à iMAL par Étienne Zajéga 200,00€
Développement
  • travail avec Fishing Cactus - équivalent 4 mois plein temps, 640h
  • développement de Skeletons - équivalent 2 mois plein temps, 320h
  • préparation et travail lors des résidences - 7 semaines, 280h
  • documentation, suivi de projet, administratif - 4 semaines, 160h
  • total: 1400h fournies par François Zajéga
5502,29€
TOTAL 12.500,00€

Galerie d'images

Databit.me

  • tanuki-preformance-databit02-henrimaquet
  • tanuki-preformance-databit03-henrimaquet
  • tanuki-preformance-databit05-henrimaquet
  • wp_20141022_002

Mediadays

  • tanuki-mediadays-protoype01
  • tanuki-mediadays-protoype02
  • tanuki-mediadays-protoype03
  • tanuki-mediadays-protoype04
  • vlcsnap-2016-02-07-20h26m55s130

 

Espace Pasolini

Photos du setup

  • 20150116_tanukis_0014
  • 20150116_tanukis_0049
  • 20150116_tanukis_0074
  • 20150116_tanukis_0081bis
  • 20150116_tanukis_0086bis
  • 20150116_tanukis_0136bis
  • 20150116_tanukis_0155-2bis
  • 20150116_tanukis_0155bis
  • 20150116_tanukis_0173bis
  • 20150116_tanukis_0177
  • 20150116_tanukis_0179
  • 20150116_tanukis_0200_1200x849

Déroulé d'une performance, voir la capture d'écran de la performance - mdp: cofcof - la capture n 'a pas bien fonctionné à la fin de la vidéo.

  • tanuki-pasolini-2015-01
  • tanuki-pasolini-2015-02
  • tanuki-pasolini-2015-03
  • tanuki-pasolini-2015-04
  • tanuki-pasolini-2015-05
  • tanuki-pasolini-2015-06
  • tanuki-pasolini-2015-07
  • tanuki-pasolini-2015-08
  • tanuki-pasolini-2015-09
  • tanuki-pasolini-2015-10
  • tanuki-pasolini-2015-11
  • tanuki-pasolini-2015-12
  • tanuki-pasolini-2015-13
  • tanuki-pasolini-2015-14
  • tanuki-pasolini-2015-15
  • tanuki-pasolini-2015-16
  • tanuki-pasolini-2015-17
  • tanuki-pasolini-2015-18
  • tanuki-pasolini-2015-19
  • tanuki-pasolini-2015-20
  • tanuki-pasolini-2015-21
  • tanuki-pasolini-2015-22
  • tanuki-pasolini-2015-23
  • tanuki-pasolini-2015-24
  • tanuki-pasolini-2015-25
  • tanuki-pasolini-2015-26
  • tanuki-pasolini-2015-27
  • tanuki-pasolini-2015-28
  • tanuki-pasolini-2015-29
  • tanuki-pasolini-2015-30
  • tanuki-pasolini-2015-31
  • tanuki-pasolini-2015-32
  • tanuki-pasolini-2015-33
  • tanuki-pasolini-2015-34
  • tanuki-pasolini-2015-35
  • tanuki-pasolini-2015-36
  • tanuki-pasolini-2015-37
  • tanuki-pasolini-2015-38
  • tanuki-pasolini-2015-39
  • tanuki-pasolini-2015-40
  • tanuki-pasolini-2015-41
  • tanuki-pasolini-2015-42
  • tanuki-pasolini-2015-43
  • tanuki-pasolini-2015-44
  • tanuki-pasolini-2015-45
  • tanuki-pasolini-2015-46
  • tanuki-pasolini-2015-47
  • tanuki-pasolini-2015-48
  • tanuki-pasolini-2015-49
  • tanuki-pasolini-2015-50
  • tanuki-pasolini-2015-51
  • tanuki-pasolini-2015-52
  • tanuki-pasolini-2015-53
  • tanuki-pasolini-2015-54
  • tanuki-pasolini-2015-55
  • tanuki-pasolini-2015-56
  • tanuki-pasolini-2015-57
  • tanuki-pasolini-2015-58
  • tanuki-pasolini-2015-59
  • tanuki-pasolini-2015-60
  • tanuki-pasolini-2015-61
  • tanuki-pasolini-2015-62
  • tanuki-pasolini-2015-63
  • tanuki-pasolini-2015-64
  • tanuki-pasolini-2015-65
  • tanuki-pasolini-2015-66
  • tanuki-pasolini-2015-67
  • tanuki-pasolini-2015-68
  • tanuki-pasolini-2015-69
  • tanuki-pasolini-2015-70
  • tanuki-pasolini-2015-71
  • tanuki-pasolini-2015-72

iMAL, présentation

  • vlc-00001
  • vlc-00002
  • vlc-00003
  • vlc-00004
  • vlc-00005
  • vlc-00006
  • vlcsnap-2016-09-28-13h22m02s660
  • vlcsnap-2016-09-28-13h22m27s496
  • vlcsnap-2016-09-28-13h22m37s230
  • vlcsnap-2016-09-28-13h22m45s136
  • vlcsnap-2016-09-28-13h22m50s885
  • vlcsnap-2016-09-28-13h22m56s721
  • vlcsnap-2016-09-28-13h23m22s622
  • vlcsnap-2016-09-28-13h23m29s600
  • vlcsnap-2016-09-28-13h23m38s135

Voir la vidéo

iMAL, dorkbotBRU#13

  • 25689187933_0abf874f00_o
  • 25689190133_2a11dd301f_o
  • 26019059620_8e06c11130_o
  • 26019067610_0489978c1a_o
  • 26225670881_7f104c1382_o
  • 26291907915_3d888f449e_o
  • 26291926965_d1140f4358_o

Autres

Ce chapitre présente des expériences périphériques et des projets liés au projet principal.

Bloom!

Rendu final.

Bloom! est le nom donné à une recherche faite chez numédiart durant le workshop eNTERFACE15[45].

Il s'agissait pour François Zajéga de proposer une intervention artistique en utilisant Motion Machine[46].

La proposition a été de créer des agents autonomes[47] qui copient le fonctionnement de graines de végétaux. Ils réagissent à la force dépolyée par les articulations. Cette information est obtenue grâce à MotionMachine. Deux essences, l'herbe et le salpêtre, sont présentes dans l'espace virtuel. L'herbe répond positivement quand la force est grande, le salpêtre quand elle est faible.

Cette intervention permet d'imaginer l'ajout des fonctionnalités d'analyse de MotionMachine dans le moteur d'animation d'avatar et d'utiliser ces informations pour contrôler l'évolution de l'avatar. Le rapport complet est disponible ici: rapport de fin de worshop.

 

Karlax

Animation d'un avatar avec le Karlax.

Jean-Christophe Potvin a contacté François Zajéga pour une présentation du Karlax[48] à dans une classe de septième Image de synthèse à l'institut Don Bosco à Bruxelles. L'idée était de montrer aux étudiants que l'instrument ne permet pas seulement de contrôler du son mais peut aussi faire bouger un avatar.

Un démonstrateur a eté monté en quelques heures grâce au code développé dans Blender[15] durant la phase de conception.

Voir la page sur le site de f-lat.

Futur

Polymorph

Polymorph-complete-logo.png


Julien Deswaef[49] et François Zajéga ont lancé une plateforme de jeu vidéo libre appelée Polymorph[6]. L'idée est de favoriser l'utilisation et la diffusion d'outils FLOSS[50] pour la création de jeux vidéos et d'expériences utilisant ces technologies. Elle a démarré en juin 2016 par la prise en main du moteur de jeu Ogre3D[51]. Les développements avancent bon train et deux projets sont déjà en préparation.

Présentation schématique du moteur de jeu en préparation chez polymorph.

Le team s'est progressivement élargit avec l'arrivée de:

  • Pieter Heremans[52];
  • Balthazar de Tonnac[53];
  • et très récemment Louise Baduel[54].


Cette plateforme et les développements qui y verront le jour bénéficieront au projet Tanukis, en se dégageant des contraintes induites par le moteur 3d utilisé jusqu'ici pour le projet[4].

Le moteur d'animation d'avatar B2J doit par exemple y être intégré, ainsi qu'une foule d'autres choses.

Les points ci-dessous sont en partie la raison d'être de cette plateforme.

 

Expérience multi-medium

L'idée est de développer une application mobile reliée à l'installation et à la performance. Cette application permettra de retrouver l'avatar du projet sous une forme simplifiée et de continuer l'interaction ébauchée lors de l'installation. Il sera aussi possible au public de charger l'avatar avec lequel ils ont créé une relation intime dans les performances ou l'installation.

  • Croquis d'interface, repère des points touchés.
  • Croquis d'interface, menu.

Anatomie virtuelle

L'avatar continue son évolution. Il sera bientôt emballé dans une peau trop large pour lui qui va se déchirer graduellement pour révéler son anatomie.

  • capture_20151211_172021_001
  • capture_20151211_172044_002
  • capture_20151211_172057_003
  • capture_20151211_172104_004
  • capture_20151211_172112_005
  • capture_20151211_172133_006

Voir la vidéo et la page de travail.

Cette anatomie est en cours de révision complète. Une structure plus complète de corps est à l'étude, qui repart du squelette et va se parer d'une musculature et de différentes couches d'épiderme. Cette recherche anatomique tente une hybridation entre le modèle modèle humain, les spécificités d'un squelette d'avatar et des modèles mécaniques (rotules, masse/ressort, etc.). Donnant une structure interne à l'avatar permettra d'éviter la 3d vide, qui se contente de montrer une surface sans se soucier d'une quelconque cohérence fonctionnelle ou essentielle.

Squelette mécaniquement plausible.

Voir la page de travail.

Conclusion

Cette bourse a permis de développer beaucoup d'outils et de mener des recherches en profondeur. L'enjeu principal était une appropriation aussi bien technologique qu'artistique du medium "jeu vidéo". La stabilisation des solutions techniques permet d'appronfondir et de confirmer la proposition initiale, c'est-à-dire une exploration des relations affectives entre un humain et une machine dégagée de contrainte morale ou sociale.

Le projet va poursuivre son évolution au travers de Polymorph[6], en favorisant une autre approche du medium et en diffusant cette approche à un public intéressé et curieux.

À un niveau plus commercial, le projet Skeletons a récemment suscité l'intérêt de la société mimesysvr[55].

Un grand merci à toutes les personnes et institutions qui ont permis à ce projet d'exister:

  • Loïc Reboursière[56], qui suit le projet depuis le début;
  • Mitsiko Shimura[13];
  • Radhwan Ben Madhkour[7]
  • Judith Guez[57];
  • le team Polymorph;
  • Laurent Grumiaux de Fishing Cactus et son équipe;
  • L'espace Pasolini;
  • iMAL;
  • Transcultures;
  • F\LAT;
  • numédiart;
  • les membres de la commission des arts numériques;
  • le fond Expérience Interactive;
  • et tous ceux qui ont été oubliés dans cette liste :).

Notes

  1. Fishing Cactus, Game & Serious Games Development Studios - http://fishingcactus.com
  2. 2.0 2.1 numediart, Institute for Creative Technologies - http://www.numediart.org
  3. 3.0 3.1 Mojito - http://seriousgaming.fishingcactus.com/en/Technologie.html
  4. 4.0 4.1 4.2 Unity3D - http://unity3d.com/
  5. 5.0 5.1 5.2 Kinect, caméra RGB et infrarouge permettant la reconstruction d'une image tri-dimensionnelle - http://www.xbox.com/en-US/kinect/
  6. 6.0 6.1 6.2 6.3 Polymorph, libre videogame platform - http://polymorph.cool/
  7. 7.0 7.1 7.2 Radhwan BEN MADHKOUR, researcher & PHD student at numediart - http://www.tcts.fpms.ac.be/homepage.php?Firstname=Radhwan&Lastname=BEN%20MADHKOUR
  8. Thierry Ravet, researcher, PHD student at numediart - http://www.tcts.fpms.ac.be/homepage.php?Firstname=Thierry&Lastname=RAVET
  9. Espace Pasolini, laboratoire artistique - http://www.espacepasolini.fr
  10. http://www.espacepasolini.fr/?p=873
  11. iMAL, centre for digital cultures and technologies - http://imal.org
  12. Page de présentation de la résidence à imal - http://imal.org/en/activity/tanukis
  13. 13.0 13.1 Mitsiko Shimura, danseuse-interprète - https://www.linkedin.com/in/miko-shimura-02460049
  14. Chien viverrin est la traduction française de raccoon dog, autre nom des tanukis - http://www.waza.org/en/zoo/visit-the-zoo/dogs-and-hyenas/nyctereutes-procyonoides
  15. 15.0 15.1 Blender, éditeur 3d incluant un moteur de jeu vidéo - https://www.blender.org
  16. Voir le File:Tanukis-production-complet.pdf
  17. 17.0 17.1 OSC, Open Sound Control protocol - http://opensoundcontrol.org/
  18. openFrameworks, an open source C++ toolkit for creative coding - http://openframeworks.cc/
  19. vvvv, a hybrid visual/textual live-programming environment - https://vvvv.org/
  20. Dépôt github hébergeant le code du addon VVVVUnityOSC: https://github.com/frankiezafe/VVVVUnityOSC
  21. GPLv2, GNU General Public License, version 2 - https://www.gnu.org/licenses/gpl-2.0.html
  22. Bilan de l'aide à la conception, voir File:Tanukis-francoiszajega-conception bilan.pdf
  23. 23.0 23.1 BVH, motion capture file format developped by BioVision - http://research.cs.wisc.edu/graphics/Courses/cs-838-1999/Jeff/BVH.html
  24. Python, programming language - https://www.python.org
  25. JSON, JavaScript Object Notation - wikipedia:JSON
  26. MiniJSON Decodes and encodes simple JSON strings - https://gist.github.com/darktable/1411710
  27. Data mapping - wikipedia:Data_mapping
  28. Dynamic Bone, developped by Will Hong - https://www.assetstore.unity3d.com/en/#!/content/16743
  29. 29.0 29.1 Skeletal Tracking via Kinect camera - https://msdn.microsoft.com/en-us/library/hh973074.aspx
  30. C Sharp, language de programmation utilisé par Unity3D - wikipedia:C_Sharp_(programming_language)
  31. C++, language de programmation généraliste - wikipedia:C++
  32. Skeletons, software suite for multi-kinects full body tracking - https://bitbucket.org/frankiezafe/skeletons
  33. KOSEI: a kinect observation system based on kinect and projector calibration - http://www.numediart.org/projects/16-1-kosei/
  34. Master-Slave paradigm in progamming - wikipedia:Master/slave_(technology)
  35. Point cloud, nuage de points en 3 dimensions - wikipedia:Point_cloud
  36. Utilisation des matrices 4x4 pour la représentation de la translation et de la rotation en géométrie 3d - http://www.euclideanspace.com/maths/geometry/affine/matrix4x4/index.htm
  37. Local_area_network - wikipedia:Local_area_network
  38. GNU Lesser General Public License - https://www.gnu.org/licenses/lgpl.html
  39. 39.0 39.1 39.2 Un shader est un sous-programme fonctionnant dans la carte graphique (GPU) et soulageant le travail du processeur central (CPU) - wikipedia::shader
  40. ShaderForge, node-based shader editor for Unity - http://acegikmo.com/shaderforge/
  41. Les textures en 3D sont des images stockant différents types d'informations sous forme de matrice - wikipedia:Texture_mapping
  42. Android, système d'exploitation développé par Google wikipedia:Android_(operating_system)
  43. APDE permet de créer et de compiler des sketches processing sur tablette - https://github.com/Calsign/APDE
  44. Multitouch android, quelques classes java permettant la récupération de la position des doigts dans Processing - https://bitbucket.org/frankiezafe/multitouch-android
  45. eNTERFACE was initiated by the FP6 Network of Excellence SIMILAR - http://www.enterface.net/enterface15/
  46. MotionMachine is a C++ software toolkit for rapid prototyping of motion feature extraction and motion-based interaction design - http://numediart.org/tools/motionmachine
  47. Les agents autonomes sont des objets programmatiques ou robotiques capablent de réagir à leur envirronement - wikipedia:Autonomous_agent
  48. Karlax is a professional midi/osc controller - http://www.karlax.com
  49. Julien Deswaef, artiste numérique vivant et travaillant à New-York - http://xuv.be/
  50. Free and open-source software - wikipedia:Free_and_open-source_software
  51. Ogre 3D, Object-Oriented Graphics Rendering Engine is a scene-oriented, real-time, 3D rendering engine - [1]
  52. Pieter Heremans est un artiste/développeur investit dans différents projets, dont notamment le hackerspace (https://hsbxl.be/) et f-lat (http://f-lat.be)
  53. Balthazar de Tonnac est un développeur habitué à collaborer avec des artistes numériques. Il travaille régulièrement avec le collectif ATK!
  54. Louise Baduel est, entre autres, danseuse, chorégraphe et vidéaste - http://louisebaduel.com/
  55. Mimesysvr, "Holographic" 3D representations of yourself or the people you care about ready to integrate in VR or AR apps - http://www.mimesysvr.com
  56. Loïc Reboursière est musicien/guitariste et travaille actuellement sur une thèse de doctorat concernant l'augmentation de guitares hexaphoniques - http://univ-lille3.academia.edu/LoicReboursiere
  57. Judith Guez, artiste et chercheuse à Paris 8 - http://dl.acm.org/author_page.cfm?id=82459241957