Développer un système de réalité virtuelle pour permettre aux enfants de prototyper des objets interactifs
février 2021
Présentation
Smart Codesign VR est un prototype de plateforme permettant de construire et de tester des « objets intelligents » interactifs en réalité virtuelle. Les joueurs choisissent trois cartes — environnement, entrée et sortie — puis définissent, par leurs gestes, quand l’objet réagit et ce qu’il fait. Ils peuvent ensuite placer l’objet virtuel achevé dans un parc et tester son comportement.
Le projet s’appuie sur SNaP (The Smart Nature Protagonists), un jeu de plateau développé par i3Lab au Politecnico di Milano. Dans SNaP, les enfants combinent des cartes pour inventer des objets intelligents et les décrire par une phrase sur papier. Ce projet visait à transformer ces descriptions en objets virtuels que les enfants pourraient assembler et manipuler par leurs propres mouvements.
Notre équipe de quatre personnes a conçu et implémenté le système comme projet final du cours Advanced User Interfaces au Politecnico di Milano, pendant l’année universitaire 2020–2021. Nous l’avons conçu pour des enfants de 11 à 13 ans, en portant une attention particulière à ceux présentant des troubles du neurodéveloppement (TND). Réalisé avec Unity et C# pour l’Oculus Quest 2, le prototype permet de suivre toute la séquence, du choix des cartes à l’interaction dans le parc virtuel.
SNaP et le contexte de conception
Un jeu qui place les enfants dans le rôle du concepteur
Dans SNaP, deux à quatre enfants jouent les « concepteurs », tandis qu’un adulte animateur tient le rôle du « maire ». Le maire présente une mission ; les enfants discutent de leurs idées et combinent des cartes pour concevoir un objet intelligent qui y répond. Le jeu vise à développer la créativité, la collaboration et la capacité à exprimer des idées. Son utilisation par des enfants présentant des troubles du neurodéveloppement a aussi été envisagée, mais ce projet n’en a évalué ni les effets thérapeutiques ni les effets éducatifs.
Trois types de cartes : environnement, entrée et sortie
SNaP comporte trois types de cartes, chacun avec un rôle différent.
Les cartes environnement représentent l’objet à rendre intelligent : arbre, banc, balançoire, étendue d’eau, pierre, lampadaire, poubelle, vélo, pont, escalier ou cartable. Ce sont des objets et des éléments familiers des parcs et des rues. La carte environnement désigne l’objet qui intégrera les fonctions d’entrée et de sortie.
Les cartes entrée définissent ce que l’objet détecte ou ce à quoi il réagit : bouton, mouvement, contact, distance, température, humidité, luminosité, couleur, son, feu, niveau d’eau ou prévisions météo. Elles représentent les entrées de l’objet intelligent, par analogie avec des capteurs.
Les cartes sortie définissent la réponse de l’objet : s’allumer, émettre un son, vibrer, se déplacer, afficher, enregistrer ou envoyer de l’information. Elles représentent ses fonctions de sortie, par analogie avec des actionneurs.
La carte environnement donne son contexte au couple entrée-sortie. Avec le mouvement en entrée et le son en sortie, une poubelle pourrait émettre un son lorsqu’on la manque, tandis qu’un lampadaire pourrait annoncer l’approche d’une personne. L’entrée et la sortie précisent le comportement d’un dispositif ; l’environnement relie ce comportement à une situation de la vie quotidienne.
Lire les indications de la figure en français
Cartes de l’exemple : « Trash can » (environnement) désigne une poubelle ou un bac de recyclage ; « Motion » (entrée) permet de détecter les objets ou les personnes en mouvement à proximité ; « Make sound » (sortie) permet de produire un son ou de jouer de la musique. Leur combinaison donne « Missing the trash bin creates a sound » : manquer la poubelle produit un son. Les cartes sont reproduites dans leur version originale en anglais.
Transformer des idées écrites en objets virtuels interactifs
À l’époque de ce projet, une séance de SNaP se terminait par une description écrite de l’objet intelligent imaginé par les enfants. En parallèle, i3Lab développait un « plateau physique » associant une tablette et Arduino pour transformer ces descriptions en prototypes matériels. Smart Codesign VR explorait une autre approche avec la réalité virtuelle, un support que l’équipe de recherche n’avait pas encore étudié pour cet usage.
La réalité virtuelle offrait deux possibilités. D’abord, les enfants pouvaient prototyper en mobilisant tout leur corps : saisir, transporter, éclairer et peindre au pinceau devenaient des moyens de fixer des conditions et de définir des comportements. Ensuite, leurs idées pouvaient prendre la forme visible d’objets virtuels avec lesquels interagir immédiatement. Une description écrite pouvait devenir un objet doté d’une taille et d’une forme devant eux.
Utilisateurs visés
Le public visé était constitué d’enfants de 11 à 13 ans, avec une attention particulière aux enfants présentant des troubles du neurodéveloppement. Concevoir un objet intelligent exige un certain raisonnement logique ; SNaP et sa version en réalité virtuelle ont donc été conçus pour cette tranche d’âge.
Le projet visait à aider les enfants à exprimer leurs idées par le prototypage et la manipulation. Il s’agissait d’objectifs de conception, et non d’effets thérapeutiques ou éducatifs démontrés : le prototype n’a pas été évalué auprès d’enfants.
Concevoir un espace confortable
À partir des documents consultés pour le projet, nous avons retenu quatre axes pour guider l’aménagement de l’espace : le son, la lumière et la couleur, l’organisation spatiale et les matériaux. Pour tenir compte des sensibilités auditives, nous avons envisagé l’isolation du bruit, le réglage du volume et une ambiance sonore calme et régulière. Pour la lumière et la couleur, nous avons considéré un fond calme et peu saturé, en réservant les couleurs vives et saturées à de petites zones. Des limites spatiales nettes, une disposition ordonnée, des formes simples et lisibles et une circulation sans obstacles faisaient aussi partie des critères de conception. Un environnement virtuel permet de maîtriser ces aspects. Ce projet n’a pas évalué leurs effets sur le confort des utilisateurs.
Contraintes et risques de la réalité virtuelle
Le projet a aussi pris en compte les contraintes et les risques de la réalité virtuelle : coût du matériel, mal des transports, sollicitation de la tête et de la nuque due au poids du casque, accidents lorsque le casque masque l’environnement physique, fatigue oculaire en cas d’utilisation prolongée et préoccupations liées à la dépendance en cas d’immersion excessive.
Ces considérations ont orienté trois décisions : conserver des interactions simples tout en proposant un défi suffisant pour soutenir l’apprentissage ; rendre l’image et le son clairs sans stimulation excessive ; et donner une fin précise à l’expérience. Une fois le prototypage et les essais dans le parc terminés, l’activité s’arrête, sans encourager les utilisateurs à rester indéfiniment en réalité virtuelle.
Le prototype : expérience et implémentation
Les quatre étapes de l’expérience
L’application comporte quatre étapes : un écran d’attente, le choix des cartes, le prototypage et l’interaction dans le parc virtuel.
1. Écran d’attente
L’application s’ouvre sur un écran-titre et attend que le joueur appuie sur un bouton de la manette. Cette pause volontaire lui laisse le temps de mettre le casque et de se placer avant le début de l’expérience principale.
2. Choix des cartes : saisir et déposer
Le joueur choisit une carte environnement, une carte entrée et une carte sortie en saisissant l’objet correspondant à chacune et en le déposant dans la boîte appropriée. Ce geste de saisie et de dépôt exploite l’espace tridimensionnel de la réalité virtuelle. Une fois les trois boîtes remplies, une consigne sonore guide le joueur vers l’étape de prototypage. Les cartes peuvent être choisies dans n’importe quel ordre, mais les trois sont nécessaires pour continuer.
3. Prototypage : définir conditions et comportements par le mouvement
Le prototypage est au cœur du système. Les joueurs définissent la condition de déclenchement de la carte entrée choisie et la réponse de la carte sortie. Chaque carte possède son interaction propre, fondée sur des mouvements qui nécessitent un suivi à six degrés de liberté.
Par exemple, choisir « prévisions météo » fait apparaître à portée de main des objets représentant le soleil, les nuages, la pluie, l’orage et la neige. Le joueur en saisit un et dirige son rayon vers l’objet cible pour fixer la condition. Avec « s’allumer » en sortie, il saisit un pinceau, le trempe dans un pot de peinture et peint l’objet cible pour choisir sa couleur lumineuse. Pour effacer une couleur appliquée, il trempe le pinceau dans le pot d’« eau » et repasse sur l’objet.
Une décision importante de l’implémentation a été de permettre plusieurs couples entrée-sortie pour un même objet. Le plan initial n’autorisait qu’une règle, telle que « briller en rouge quand il fait soleil ». Plusieurs couples permettaient à l’objet de répondre différemment à différentes conditions : rouge au soleil, bleu sous la pluie et blanc sous la neige. Les joueurs peuvent tester chaque couple avant de le valider et revenir le modifier si nécessaire.
4. Le parc : tester l’objet
Après avoir validé l’objet, le joueur entre dans un parc virtuel, place l’objet, déclenche la condition d’entrée définie et observe sa réponse. Une célébration marque le bon fonctionnement de l’objet et termine l’expérience.
Déroulement général
Les diagrammes d’activité UML ci-dessous résument l’expérience. Celui du haut présente le déroulement général ; les deux autres détaillent les interactions « prévisions météo » et « s’allumer ». Les embranchements montrent comment revenir au choix des cartes après avoir reçu les consignes, puis à la modification de l’objet après sa validation et son essai.
Lire les indications de la figure en français
Parcours général. Appuyer sur un bouton pour quitter l’écran d’attente → choisir les cartes entrée, environnement et sortie → recevoir les consignes. À ce stade, on peut changer de cartes ou continuer. Définir ensuite la condition d’entrée et le comportement de sortie → valider l’objet intelligent → tester son comportement. On peut revenir à la modification ou finaliser l’objet pour interagir avec lui dans le parc virtuel.
Carte météo : définir la condition d’entrée. Choisir l’un des cinq objets — soleil, nuage, goutte de pluie, éclair ou bonhomme de neige — puis diriger vers la cible le rayon correspondant : temps ensoleillé, nuageux, pluvieux, orageux ou neigeux. Continuer ou revenir modifier le choix.
Carte d’éclairage : définir le comportement de sortie. Saisir le pinceau → le tremper dans un pot de peinture lumineuse rouge, bleue, jaune ou verte → passer le pinceau sur l’objet intelligent pour appliquer la couleur. On peut ajouter une couleur, continuer ou en retirer une. Pour retirer une couleur : tremper le pinceau dans le pot d’eau, puis le passer sur l’objet pour l’effacer, avant de revenir à la peinture.
Matériel et outils
Le prototype a été développé pour l’Oculus Quest 2. Son suivi à six degrés de liberté permet de se tourner, de se déplacer et de manipuler des objets virtuels. Ces manipulations répétées étant au cœur de l’expérience, l’équipe a écarté les casques utilisant un téléphone, limités à un suivi à trois degrés de liberté.
L’application a été développée avec Unity et C#. Le paquet Oculus Integration assurait la connexion au Quest 2 et fournissait les API pour le comportement de la caméra en réalité virtuelle, le rendu et les entrées des manettes.
Quatre scènes et treize classes
Le système utilise quatre scènes Unity, une pour chaque étape de l’expérience. Il comprend treize classes, dont trois abstraites.
La scène de titre contient une seule classe, TitleSceneCore, qui passe à la scène suivante lorsque le joueur appuie sur un bouton.
La scène de choix des cartes utilise CardSelectionSceneCore et CardSelectionDetector. CardSelectionSceneCore crée trois instances de détecteur, une pour chaque boîte environnement, entrée et sortie. Chaque boîte attire un objet-carte proche et marque sa catégorie comme sélectionnée. Une fois les trois choix effectués, la scène les enregistre dans la classe statique SmartObject et passe à la suite. SmartObject conserve ces données entre les changements de scène, reliant les quatre scènes en une expérience continue.
Dans la scène de prototypage, PrototypingSceneCore coordonne le déroulement. Le comportement des cartes suit une hiérarchie d’héritage : Card est la classe de base ; InputCard et OutputCard en dérivent ; des classes concrètes telles que Weather, Fire, MakeSound et LightUp implémentent les interactions individuelles. Card, InputCard et OutputCard sont abstraites, car seules les sous-classes concrètes effectuent les opérations de prototypage.
PrototypingSceneCore gère une liste d’instances de conditions d’entrée et une autre d’instances de comportements de sortie. Si les cartes choisies sont « prévisions météo » et « s’allumer », les listes contiennent respectivement des instances de Weather et de LightUp. Une instance de chaque type est créée au départ ; appuyer sur le bouton d’ajout crée un autre couple. À chaque image, le système évalue les conditions d’entrée et appelle les comportements de sortie correspondants. Lorsque l’utilisateur valide l’objet, isConfirmed prend la valeur true et les données du comportement assemblé sont enregistrées dans les propriétés statiques de SmartObject.
La scène d’interaction contient une seule classe, InteractionSceneCore. Elle gère le placement de l’objet dans le parc, le test des conditions et réponses définies et la célébration finale.
Smart Object », en bas au centre, conserve les données entre les scènes. Les attributs et les méthodes sont simplifiés pour faciliter la lecture.Lire les indications de la figure en français
Les noms de classes, de types et les multiplicités UML sont conservés. Les quatre cadres représentent les scènes de titre, de choix des cartes, de prototypage et d’interaction. Les flèches « access » indiquent l’accès à un autre élément.
Titre et choix des cartes. Title Scene Core passe à la scène suivante à l’appui sur un bouton. Card Selection Scene Core contient la consigne vocale et les références aux trois boîtes ; il enregistre la sélection et change de scène. Card Selection Detector référence une boîte et l’objet représentant une carte, signale sa reconnaissance et attire l’objet proche au centre de la boîte. Les trois instances correspondent à l’environnement, à l’entrée et à la sortie.
Classe de base. Card contient l’objet d’environnement, les accessoires propres aux cartes d’entrée ou de sortie, le nom de la carte, l’identifiant de l’instance et un indicateur booléen isFocused. Ses opérations préparent les accessoires, gèrent le comportement pendant le prototypage, créent une instance et vérifient si la condition ou le comportement a été défini.
Entrées. Input Card indique le nombre maximal d’instances, la fonction et le dictionnaire d’évaluation, ainsi que les indicateurs de déclenchement pour les évaluations positives et négatives. Elle actualise l’évaluation de la condition. Weather Card contient les objets météo, leurs rayons, leurs états courant et précédent et les gestionnaires de collision ; elle détecte les conditions de soleil, nuages, pluie, orage et neige. Fire Card contient le marqueur de feu, le repère visuel de distance au sol, les distances à l’objet d’environnement et l’état de saisie ; ses opérations détectent les distances très proche, proche et moyenne et actualisent distance et saisie.
Sorties. Output Card définit les comportements lorsque la condition est vraie ou fausse. Make Sound Card contient le microphone et l’état d’enregistrement ; elle démarre et sauvegarde l’enregistrement et anime le microphone. Light Up Card contient le pinceau, les pots de peinture et d’eau et les gestionnaires de collision ; elle détecte les contacts du pinceau avec les pots et l’objet d’environnement, puis applique la couleur.
Coordination et données partagées. Prototyping Scene Core contient les objets d’environnement, les accessoires d’entrée et de sortie, les éléments d’interface, les listes d’instances et l’indicateur de validation. Il initialise les cartes, gère leur comportement, actualise et évalue les conditions, appelle les sorties, ajoute ou retire des instances, gère les boutons, valide et finalise l’objet. Smart Object conserve les cartes sélectionnées et les objets et accessoires associés ; il évalue les conditions et appelle les comportements selon leur résultat. Interaction Scene Core place l’objet intelligent et affiche les félicitations.
Code source :
github.com/takafumihoriuchi/SmartCodesignVR — Assets/myScripts
Résultats et travail restant
Neuf cartes implémentées sur 49
Le prototype implémente neuf cartes. Ses fonctions principales sont opérationnelles : choix des cartes, définition des conditions et des comportements, gestion de plusieurs instances et transmission des données entre scènes. Cela constitue une base pour ajouter d’autres cartes, même si ce travail d’implémentation reste à faire. Six cartes supplémentaires ont été conçues sans être implémentées ; les 34 autres nécessitent encore la conception des interactions ainsi que leur implémentation.
| État | Cartes |
|---|---|
| Implémentées (9) | Environnement : arbre, lampadaire, panneau routier, poubelle, pont Entrée : feu, prévisions météo Sortie : émettre un son, s’allumer |
| Conçues uniquement (6) | Entrée : bouton, vitesse, son Sortie : se déplacer, vibrer, envoyer |
| Non commencées (34) | 15 cartes environnement, 16 cartes entrée et 3 cartes sortie (afficher, activer, enregistrer) |
Absence d’évaluation auprès d’utilisateurs
Le prototype n’a pas été évalué auprès d’utilisateurs. Le développement a coïncidé avec une participation à distance pendant la pandémie de COVID-19. Il n’a été possible d’organiser ni un atelier en présence avec des casques de réalité virtuelle ni une solution à distance. Le projet montre que l’expérience conçue peut être réalisée sous forme de prototype fonctionnel. Sa facilité d’utilisation pour les enfants et son intérêt dans un cadre thérapeutique restent à évaluer.
Une future évaluation porterait sur le caractère intuitif de l’interface pour le prototypage. Les mesures possibles comprennent le temps nécessaire à la réalisation, la correspondance entre l’objet final et l’idée initiale du participant, ainsi que le nombre d’appuis involontaires sur les boutons. Un questionnaire après la séance, fondé sur la System Usability Scale (SUS), apporterait des données quantitatives complémentaires. Il pourrait être envisagé d’enregistrer les séances pour observer les mouvements des participants, avec leur consentement et selon des procédures adaptées. Pour le projet de 2021, l’âge proposé pour l’évaluation était de 13 ans, afin de faire coïncider le public visé par SNaP avec les recommandations Oculus consultées à l’époque. Toute future étude devra réexaminer les critères d’admission selon les recommandations applicables et son protocole de recherche.
Pistes de développement
La première priorité serait d’affiner l’interface et l’expérience utilisateur. Les contraintes de temps et d’expérience ont concentré l’effort sur le fonctionnement des combinaisons de cartes, laissant moins de place à la conception visuelle, sonore et haptique. Le rôle du texte en réalité virtuelle doit aussi être repensé : une information conçue pour une surface plane pourrait être mieux présentée par une interface utilisateur spatiale (SUI). L’interaction vocale constitue une autre piste à étudier pour le public visé.
Le projet a dégagé trois pistes de recherche. La première est une comparaison avec le plateau physique développé à i3Lab. Des recherches antérieures ont rapporté davantage de conversations lorsque des participants jouaient au même jeu collaboratif dans un environnement virtuel plutôt que physique, ce qui suggère une comparaison utile entre ces deux plateformes. La deuxième est la participation simultanée de plusieurs utilisateurs : conformément au nom « Codesign », les enfants pourraient construire ensemble en réalité virtuelle. La troisième est un format standardisé de description des objets intelligents, permettant de transférer les créations d’une plateforme à l’autre.
Synthèse
Ce projet a créé un environnement de prototypage d’objets intelligents. Il a traduit les trois types de cartes SNaP en éléments de construction : l’objet, ses conditions de déclenchement et ses comportements. Les joueurs les relient en saisissant, en pointant et en peignant. Le prototype fonctionnel transforme une idée écrite en objet virtuel interactif, dont le comportement est représenté par des données transmissibles entre scènes.
Takafumi Horiuchi, Paul Cozma-Ivan, Elmira Katsajeva et Olivia Ludkiewicz, « Design and Implementation of a Smart Object Prototyping Platform in Virtual Reality for Children with NDD », projet final du cours Advanced User Interfaces (année universitaire 2020–2021), Politecnico di Milano, février 2021.

