Takafumi Horiuchi

Sviluppo di un sistema VR per la prototipazione di oggetti interattivi da parte dei bambini

Panoramica

Smart Codesign VR è una piattaforma prototipale per costruire e provare «oggetti intelligenti» interattivi nella realtà virtuale. Il giocatore sceglie tre carte — una per l’ambiente, una per l’ingresso e una per l’uscita — e usa movimenti del corpo per definire quando l’oggetto debba reagire e che cosa debba fare. Può poi collocare l’oggetto virtuale completato in un parco e verificarne il comportamento.

Il progetto parte da SNaP (The Smart Nature Protagonists), un gioco da tavolo sviluppato da i3Lab al Politecnico di Milano. In SNaP i bambini combinano carte per inventare oggetti intelligenti e li descrivono con una frase su carta. Questo progetto mirava a trasformare le descrizioni in oggetti virtuali che i bambini potessero assemblare e con cui potessero interagire attraverso i propri movimenti.

Il nostro gruppo di quattro persone ha progettato e implementato il sistema come progetto finale del corso Advanced User Interfaces del Politecnico di Milano, nell’anno accademico 2020–21. Lo abbiamo pensato per bambini dagli 11 ai 13 anni, con particolare attenzione a quelli con disturbi del neurosviluppo (NDD). Realizzato in Unity e C# per Oculus Quest 2, il prototipo supporta l’intero percorso, dalla scelta delle carte all’interazione nel parco virtuale.

Il video dimostrativo: scegliere le carte, fissare la condizione di ingresso e il comportamento in uscita, e far funzionare l’oggetto intelligente finito nel parco virtuale.

SNaP e il contesto progettuale

Un gioco in cui i progettisti sono i bambini

In SNaP da due a quattro bambini assumono il ruolo di «progettisti», mentre un adulto facilitatore interpreta il «sindaco». Il sindaco presenta una missione e i bambini discutono idee e combinano carte per progettare un oggetto intelligente che vi risponda. Il gioco mira a sviluppare creatività, collaborazione e capacità di esprimere le proprie idee. È stato considerato anche l’uso da parte di bambini con disturbi del neurosviluppo, ma questo progetto non ne ha valutato gli effetti terapeutici o educativi.

Tre tipi di carte: ambiente, ingresso e uscita

SNaP ha tre tipi di carta, ciascuno con un ruolo diverso.

Le carte ambiente rappresentano l’oggetto da rendere intelligente: albero, panchina, altalena, specchio d’acqua, pietra, lampione, cestino, bicicletta, ponte, scale o zaino. Sono oggetti ed elementi familiari di parchi e strade. La carta ambiente identifica l’oggetto che conterrà le funzioni di ingresso e uscita.

Le carte ingresso definiscono che cosa l’oggetto rileva o a che cosa reagisce: per esempio un pulsante, un movimento, un contatto, una distanza, temperatura, umidità, luminosità, colore, suono, fuoco, livello dell’acqua o previsioni meteo. Rappresentano gli ingressi dell’oggetto intelligente, in modo analogo ai sensori.

Le carte uscita definiscono la risposta dell’oggetto: illuminarsi, emettere un suono, vibrare, muoversi, visualizzare, registrare o inviare informazioni. Rappresentano le funzioni di uscita, in modo analogo agli attuatori.

La carta ambiente dà un contesto alla coppia ingresso–uscita. Con il movimento come ingresso e il suono come uscita, un cestino potrebbe emettere un suono quando qualcuno sbaglia il lancio, mentre un lampione potrebbe annunciare l’avvicinarsi di una persona. Ingresso e uscita specificano il comportamento del dispositivo; l’ambiente lo collega a una situazione della vita quotidiana.

Le carte «Trash can» (cestino, ambiente), «Motion» (movimento, ingresso) e «Make sound» (emettere un suono, uscita) sono unite dal simbolo «&». Una freccia porta alla frase «Missing the trash bin creates a sound», cioè «Se si manca il cestino, viene emesso un suono».
La combinazione di tre carte diventa la descrizione di un oggetto intelligente. Il colore del bordo indica il tipo: verde per l’ambiente, azzurro per l’ingresso, giallo per l’uscita. L’esempio combina un cestino («Trash can»: per rifiuti o raccolta differenziata), il rilevamento del movimento («Motion»: oggetti o persone nelle vicinanze) e l’emissione di suono («Make sound»: suoni o musica). La frase risultante è: «Se si manca il cestino, viene emesso un suono».
Una tabella che dispone tutte le 49 carte di SNaP. Le prime due righe sono le 20 carte verdi di ambiente; le due righe centrali e l’estremità sinistra dell’ultima, le 21 carte azzurre di ingresso; il resto dell’ultima riga, le 8 carte gialle di uscita.
L’insieme completo delle 49 carte SNaP: 20 di ambiente, 21 di ingresso e 8 di uscita. Le combinazioni possibili definiscono lo spazio progettuale del gioco.
Le 49 carte: nomi e descrizioni in italiano

Le carte sono elencate nello stesso ordine dell’immagine, da sinistra a destra e dall’alto in basso. «Environment» significa ambiente, «Input» ingresso e «Output» uscita.

Ambiente — 20 carte

  1. Albero (Tree): un albero o una sua parte.
  2. Panchina (Bench): una panchina o un tavolo da picnic.
  3. Altalena (Swing): un’altalena o un altro gioco del parco.
  4. Suolo (Ground): la superficie del terreno.
  5. Acqua (Water): un fiume, un lago o un’altra area d’acqua.
  6. Pietra (Stone): una pietra, una roccia o un minerale.
  7. Fiore (Flower): un fiore o un’altra pianta.
  8. Foglia (Leaf): una foglia su un albero o per terra.
  9. Casetta per uccelli (Birdhouse): una casetta o una sua parte.
  10. Scale (Stairs): una scala o una rampa.
  11. Segnale stradale (Street sign): un segnale o un pannello.
  12. Cestino (Trash can): un contenitore per rifiuti o raccolta differenziata.
  13. Bicicletta (Bicycle): una bicicletta o una sua parte.
  14. Recinzione (Fence): una recinzione o un’altra struttura che delimita un’area.
  15. Lampione (Street light): un lampione, una lampada o un’altra sorgente luminosa.
  16. Fontanella (Street faucet): una fontanella o una fontana.
  17. Ponte (Bridge): un ponte o una sua parte.
  18. Percorso (Path): un sentiero o una strada.
  19. Canestro (Basketball hoop): un canestro o un’altra attrezzatura sportiva.
  20. Zaino scolastico (Schoolbag): uno zaino o un’altra borsa.

Ingresso — 21 carte

  1. Pulsante (Button): rileva se viene premuto.
  2. Movimento (Motion): rileva oggetti o persone in movimento nelle vicinanze.
  3. Cursore (Slider): regola il livello di intensità.
  4. Tocco (Touch): rileva un tocco o una pressione.
  5. Battito cardiaco (Heartbeat): misura le pulsazioni.
  6. Distanza (Distance): misura la distanza da un altro oggetto o da una persona.
  7. Umidità (Humidity): rileva l’umidità.
  8. Vento (Wind): misura la velocità del vento.
  9. Fuoco (Fire): rileva la presenza di fuoco.
  10. Posizione (Location): determina la posizione.
  11. Velocità (Speed): rileva se il movimento è rapido o lento.
  12. Luminosità (Luminosity): rileva l’intensità della luce.
  13. Rotazione (Rotation): rileva se l’oggetto ruota.
  14. Temperatura (Temperature): misura la temperatura.
  15. Colore (Color): rileva e riconosce i colori.
  16. Orientamento (Orientation): misura l’orientamento.
  17. Fotocamera (Camera): scatta fotografie e registra video.
  18. Livello dell’acqua (Water level): misura il livello dell’acqua.
  19. Inquinamento (Pollution): rileva la presenza di gas.
  20. Suono (Sound): rileva suoni.
  21. Previsioni meteo (Weather forecast): acquisisce informazioni sulle previsioni del tempo.

Uscita — 8 carte

  1. Muoversi (Move): fa muovere l’oggetto.
  2. Vibrare (Vibrate): fa vibrare l’oggetto.
  3. Emettere suoni (Make sound): produce suoni o riproduce musica.
  4. Illuminarsi (Light up): accende LED di colori diversi.
  5. Visualizzare (Display): mostra testi, immagini e video.
  6. Attivare (Activate): attiva o disattiva un altro dispositivo.
  7. Registrare (Record): registra dati.
  8. Inviare (Send): invia un’email o un SMS.

Trasformare le idee scritte in oggetti virtuali interattivi

All’epoca del progetto, una sessione di SNaP terminava con la descrizione scritta dell’oggetto intelligente progettato dai bambini. In parallelo, i3Lab stava sviluppando una «tavola fisica» che combinava un tablet con Arduino per trasformare queste descrizioni in prototipi fisici. Smart Codesign VR esplorava un altro approccio, usando la realtà virtuale, un mezzo che il gruppo di ricerca non aveva ancora studiato per questo scopo.

La VR offriva due opportunità. La prima era prototipare attraverso i movimenti di tutto il corpo: afferrare, trasportare, illuminare e dipingere con un pennello diventavano modi per impostare condizioni e definire comportamenti. La seconda era dare alle idee una forma visibile, attraverso oggetti virtuali con cui interagire subito. Una descrizione scritta poteva diventare un oggetto con dimensioni e forma davanti al bambino.

Utenti previsti

Gli utenti previsti erano bambini dagli 11 ai 13 anni, con particolare attenzione ai bambini con disturbi del neurosviluppo. Progettare un oggetto intelligente richiede un certo ragionamento logico: sia SNaP sia la versione VR sono stati quindi pensati per questa fascia d’età.

Il progetto mirava ad aiutare i bambini a esprimere le proprie idee attraverso la prototipazione pratica e l’interazione. Erano obiettivi progettuali, non risultati terapeutici o educativi dimostrati: il prototipo non è stato valutato con bambini.

Progettare uno spazio confortevole

Sulla base dei materiali consultati per il progetto, abbiamo orientato la progettazione dello spazio attorno a quattro ambiti: suono, luce e colore, organizzazione spaziale e materiali. Per il suono abbiamo considerato isolamento dal rumore, volume regolabile e un audio calmo e uniforme, tenendo conto delle sensibilità uditive. Per luce e colore abbiamo considerato uno sfondo tranquillo e poco saturo, riservando i colori luminosi e saturi a piccole aree. Anche confini spaziali chiari, una disposizione ordinata, forme semplici e leggibili e movimenti senza ostacoli hanno guidato il progetto. Un ambiente virtuale consente di controllare questi aspetti. Il progetto non ne ha valutato gli effetti sul comfort degli utenti.

Vincoli e rischi della VR

Il progetto ha considerato anche i vincoli e i rischi della VR: costo dell’hardware, nausea da movimento, affaticamento di testa e collo dovuto al peso del visore, incidenti quando il visore nasconde l’ambiente fisico, affaticamento visivo nell’uso prolungato e preoccupazioni relative alla dipendenza associata a un’immersione eccessiva.

Queste considerazioni hanno orientato tre decisioni: mantenere semplici le interazioni, lasciando una difficoltà sufficiente a sostenere l’apprendimento; rendere chiari immagini e suoni senza stimoli eccessivi; dare all’esperienza una conclusione definita. Dopo la prototipazione e la prova nel parco, l’attività termina, senza incoraggiare a rimanere indefinitamente nella VR.


Il prototipo: esperienza e implementazione

Le quattro fasi dell’esperienza

L’applicazione comprende quattro fasi: schermata di attesa, scelta delle carte, prototipazione e interazione nel parco virtuale.

1. Schermata di attesa

L’applicazione si apre con una schermata del titolo e attende la pressione di un pulsante del controller prima di proseguire. Questa pausa intenzionale lascia al giocatore il tempo di indossare il visore e sistemarsi prima dell’inizio dell’esperienza principale.

2. Scelta delle carte: afferrare e collocare

Il giocatore sceglie una carta ambiente, una ingresso e una uscita afferrando l’oggetto corrispondente a ciascuna e collocandolo nella rispettiva scatola. Questa interazione sfrutta lo spazio tridimensionale della VR. Quando tutte e tre le scatole sono piene, un’indicazione audio guida il giocatore alla fase di prototipazione. L’ordine di scelta è libero, ma servono tutte e tre le carte per proseguire.

Schermata di selezione delle carte in VR. Davanti a un pannello di carte stanno tre scatole traslucide con le scritte input, environment e output, e una mano afferra un oggetto a forma di megafono.
La scena di selezione delle carte. Le tre scatole in primo piano corrispondono ad ambiente, ingresso e uscita; infilandovi l’oggetto afferrato la scelta viene confermata. Le carte non utilizzabili in questa fase sono mostrate in trasparenza.

3. Prototipazione: definire condizioni e comportamenti attraverso il movimento

La prototipazione è il nucleo del sistema. I giocatori definiscono la condizione di attivazione della carta ingresso scelta e la risposta della carta uscita. Ogni carta ha la propria interazione, basata su movimenti che richiedono il tracciamento a sei gradi di libertà.

Se per esempio si sceglie «previsioni meteo» come ingresso, compaiono a portata di mano oggetti che rappresentano sole, nuvole, pioggia, temporale e neve. Afferrandone uno e puntando sull’oggetto bersaglio il raggio che ne parte, la condizione viene fissata. Se si sceglie «illuminarsi» come uscita, il giocatore afferra un pennello, ne intinge la punta nel barattolo del colore e lo sfrega sull’oggetto per decidere il colore con cui si illuminerà. Per cancellare un colore già dato basta intingere il pennello nel barattolo dell’«acqua» e sfregare di nuovo.

Una decisione cruciale nell’implementazione è stata supportare più coppie ingresso–uscita per uno stesso oggetto. Il piano iniziale consentiva una sola regola, per esempio «illuminarsi di rosso quando c’è il sole». Più coppie permettono risposte diverse a condizioni diverse: rosso con il sole, blu con la pioggia, bianco con la neve. I giocatori possono provare ogni coppia prima di confermarla e tornare a modificarla se necessario.

Schermata di prototipazione: a sinistra le istruzioni per l’ingresso «Weather» (meteo); al centro tre fumetti con le condizioni «Quando sta per esserci il sole / piovere / nevicare»; a destra i fumetti dei comportamenti in uscita. In primo piano compaiono un oggetto a forma di albero e barattoli di colore. La stessa schermata vista da destra. Ai due lati di un lampione dipinto di giallo, i fumetti di ingresso e di uscita si allineano a coppie, e all’estremità destra c’è il pannello di istruzioni della carta di uscita «Light up».
Schermate del prototipo del 2021. I fumetti numerati abbinano condizioni di ingresso e comportamenti in uscita. Il pulsante «+» aggiunge una coppia, il «−» la elimina. Il pannello degli ingressi riporta «Maximum number of instances: 5» (numero massimo di istanze: 5).

4. Il parco: provare l’oggetto

Dopo aver confermato l’oggetto, il giocatore entra in un parco virtuale, lo colloca, attiva la condizione di ingresso definita e ne osserva la risposta. Una celebrazione segnala il corretto funzionamento dell’oggetto e conclude l’esperienza.

Il percorso complessivo

I diagrammi di attività UML qui sotto riassumono l’esperienza. Quello superiore mostra il percorso complessivo; i due inferiori descrivono nel dettaglio le interazioni «previsioni meteo» e «illuminarsi». Le diramazioni mostrano come il giocatore possa tornare alla scelta delle carte dopo aver ricevuto le istruzioni e alla modifica dell’oggetto dopo averlo confermato e provato.

Diagrammi di attività UML. Quello in alto, «Overall Activity», va dalla schermata di attesa alla scelta di tre carte, alle istruzioni, alla definizione delle condizioni di ingresso e dei comportamenti in uscita, alla conferma, alla verifica del funzionamento e all’uso nel parco. In basso a sinistra è sviluppato l’uso della carta previsioni meteo, in basso a destra quello della carta illuminarsi.
Diagrammi di attività UML del percorso dell’utente. La sequenza complessiva e le interazioni specifiche delle carte sono mostrate separatamente, poiché ogni carta prevede un’interazione diversa.
Diagrammi di attività: tutti i passaggi in italiano

Percorso generale (Overall Activity)

  1. Premere un pulsante per uscire dalla schermata di attesa.
  2. Selezionare una carta di ingresso, una di ambiente e una di uscita. Le tre scelte possono essere compiute in qualsiasi ordine.
  3. Ricevere le istruzioni per la prototipazione; scegliere se cambiare le carte («change card choice») o proseguire («proceed»).
  4. Definire la condizione di ingresso (*) e il comportamento in uscita (**).
  5. Confermare l’oggetto intelligente e provarne il comportamento.
  6. Concludere la prototipazione («finalize») e interagire con l’oggetto nel parco virtuale, oppure tornare alla modifica («re-edit»).

(*) Condizione di ingresso: carta Previsioni meteo (Weather)

Afferrare uno degli oggetti: sole, nuvola, goccia di pioggia, fulmine o pupazzo di neve. Puntare verso l’oggetto da progettare il raggio corrispondente: soleggiato, nuvoloso, piovoso, con fulmini o nevoso. Proseguire oppure tornare alla modifica.

(**) Comportamento in uscita: carta Illuminarsi (Light Up)

Afferrare il pennello e immergerlo nel secchio di vernice LED rossa, blu, gialla o verde. Passare il pennello sull’oggetto intelligente per applicare il colore. Si può proseguire, aggiungere un colore («add color») tornando ai secchi, oppure togliere il colore («remove color»): immergere il pennello nel secchio dell’acqua e passarlo sull’oggetto per cancellare il colore.

Hardware e strumenti

Il prototipo è stato realizzato per Oculus Quest 2. Il tracciamento a sei gradi di libertà consente di girarsi, spostarsi e manipolare oggetti virtuali. Poiché l’interazione manuale ripetuta era centrale per l’esperienza, il gruppo ha escluso i visori per smartphone limitati al tracciamento a tre gradi di libertà.

L’applicazione è stata sviluppata in Unity e C#. Il pacchetto Oculus Integration la collegava al Quest 2 e forniva le API per la telecamera VR, il rendering e gli input dei controller.

Quattro scene e 13 classi

Il sistema usa quattro scene Unity, una per ciascuna fase dell’esperienza. Comprende 13 classi, di cui tre astratte.

La scena del titolo contiene una sola classe, TitleSceneCore, che passa alla scena successiva quando il giocatore preme un pulsante.

La scena di scelta delle carte usa CardSelectionSceneCore e CardSelectionDetector. CardSelectionSceneCore crea tre istanze di rilevamento, una per ciascuna scatola: ambiente, ingresso e uscita. Ogni scatola attira l’oggetto di una carta vicina e segna la relativa categoria come selezionata. Quando tutte e tre le scelte sono complete, la scena le scrive nella classe statica SmartObject e prosegue. SmartObject conserva questi dati tra i cambi di scena, collegando le quattro scene in un’esperienza continua.

Nella scena di prototipazione, PrototypingSceneCore coordina il percorso. Card rappresenta il comportamento delle carte attraverso una gerarchia di ereditarietà: Card è la classe di base; InputCard e OutputCard derivano da essa e classi concrete come Weather, Fire, MakeSound e LightUp implementano le singole interazioni. Card, InputCard e OutputCard sono astratte, poiché solo le sottoclassi concrete svolgono le operazioni di prototipazione.

PrototypingSceneCore mantiene una lista di istanze delle condizioni di ingresso e un’altra di istanze dei comportamenti in uscita. Se le carte scelte sono «previsioni meteo» e «illuminarsi», le liste contengono rispettivamente istanze di Weather e LightUp. All’avvio viene creata un’istanza per ciascun tipo; il pulsante di aggiunta crea un’altra coppia. A ogni fotogramma, il sistema valuta le condizioni di ingresso e richiama i comportamenti in uscita corrispondenti. Quando l’utente conferma l’oggetto, isConfirmed viene impostato a true e i dati del comportamento assemblato vengono scritti nelle proprietà statiche di SmartObject.

La scena di interazione contiene una sola classe, InteractionSceneCore. Gestisce la collocazione dell’oggetto nel parco, la prova delle condizioni e risposte definite e la celebrazione finale.

Diagramma delle classi UML. Sono disegnati quattro package — Title Scene, Card Selection Scene, Prototyping Scene e Interaction Scene — insieme alla classe statica Smart Object cui tutti fanno riferimento. Dentro Prototyping Scene, la classe astratta Card è ereditata da Input Card e Output Card, e queste a loro volta da Weather Card, Fire Card, Make Sound Card e Light Up Card.
Diagramma UML delle classi del sistema. I quattro package corrispondono alle scene Unity. La classe statica indicata come «Smart Object», in basso al centro, conserva i dati tra le scene. Attributi e metodi sono semplificati per facilitarne la lettura.
Diagramma delle classi: legenda in italiano

I nomi delle classi e i tipi di dati sono identificatori tecnici e rimangono nella forma originale. Le sezioni «Title Scene», «Card Selection Scene», «Prototyping Scene» e «Interaction Scene» corrispondono rispettivamente alle scene del titolo, di selezione delle carte, di prototipazione e di interazione. «access» indica l’accesso tra i componenti; «Instance» indica un’istanza. I numeri e gli intervalli presso le relazioni indicano le molteplicità riportate nel diagramma.

Title Scene Core
Passa alla scena successiva quando si preme un pulsante.
Card Selection Detector
Contiene i riferimenti alla scatola di selezione e all’oggetto che rappresenta la carta. Fornisce un effetto visivo per segnalare la selezione, imposta l’ambiente, l’ingresso o l’uscita scelti e attira l’oggetto vicino verso il centro della scatola. Le tre istanze Environment Card Detector, Input Card Detector e Output Card Detector associano ciascuna la propria scatola all’oggetto corrispondente.
Card Selection Scene Core
Contiene l’audio di guida e le tre scatole di selezione: ambiente, ingresso e uscita. Salva le carte scelte e passa alla scena successiva.
Card
Contiene l’oggetto dell’ambiente (per esempio cestino, albero o ponte), gli oggetti di supporto delle carte di ingresso e uscita, il nome della carta, l’identificativo dell’istanza (instanceID) e lo stato di selezione (isFocused). Prepara gli oggetti di supporto, gestisce il comportamento durante la prototipazione, crea la casella dell’enunciato e controlla se la condizione di ingresso o il comportamento in uscita sono stati definiti.
Input Card
Contiene il numero massimo di istanze, la funzione delegata per valutare l’ingresso, un dizionario di funzioni di valutazione e gli indicatori delle valutazioni positiva e negativa. Aggiorna la valutazione della condizione di ingresso.
Output Card
Definisce il comportamento da eseguire quando la condizione di ingresso è vera e quello da eseguire quando è falsa.
Weather Card
Contiene le rappresentazioni delle condizioni meteo (sole, pioggia, fulmini ecc.), il raggio luminoso corrispondente, lo stato meteo corrente e precedente e i gestori degli eventi di collisione. Rileva sole, nuvole, pioggia, fulmini e neve e gestisce il contatto del raggio con l’oggetto dell’ambiente.
Fire Card
Contiene il marcatore del fuoco, l’immagine dell’identificativo della distanza sul pavimento, la distanza dall’oggetto dell’ambiente e lo stato di presa del marcatore. Rileva distanze molto vicine, vicine e medie e aggiorna la distanza e lo stato di presa del marcatore.
Make Sound Card
Contiene il microfono e lo stato di registrazione (isRecording). Avvia e salva la registrazione e gestisce l’animazione del microfono.
Light Up Card
Contiene pennello, secchio di vernice, secchio d’acqua e gestori delle collisioni del pennello con la vernice emissiva o l’oggetto dell’ambiente. Gestisce gli eventi di contatto con i secchi e con l’oggetto e applica il colore all’oggetto.
Prototyping Scene Core
Contiene gli oggetti dell’ambiente, gli oggetti di supporto di ingresso e uscita, gli elementi dell’interfaccia, le liste di istanze delle condizioni di ingresso e dei comportamenti in uscita e lo stato di conferma (isConfirmed). Inizializza le carte scelte, richiama i comportamenti di prototipazione, aggiorna le istanze, valuta le condizioni e richiama i comportamenti corrispondenti. Crea e rimuove istanze dalle liste, gestisce i pulsanti, conferma l’oggetto e finalizza l’oggetto intelligente.
Smart Object
Conserva le carte selezionate in un dizionario e i riferimenti all’oggetto dell’ambiente e agli oggetti di supporto di ingresso e uscita. Valuta le condizioni di ingresso e definisce i comportamenti per condizioni vere e false. È statico, quindi conserva i dati tra le scene.
Interaction Scene Core
Posiziona l’oggetto intelligente nella scena di interazione e mostra l’effetto finale di congratulazioni.

Risultati e lavoro restante

Nove carte implementate su 49

Il prototipo implementa nove carte. Le funzioni fondamentali sono operative: scelta delle carte, definizione di condizioni e comportamenti, gestione di più istanze e trasferimento dei dati tra scene. Questo fornisce una base per aggiungere altre carte, ma il lavoro di implementazione resta da svolgere. Altre sei carte sono state progettate ma non implementate; per le restanti 34 occorrono sia la progettazione delle interazioni sia l’implementazione.

Stato di implementazione del prototipo
StatoCarte
Implementate (9)Ambiente: albero, lampione, segnale stradale, cestino, ponte
Ingresso: fuoco, previsioni meteo
Uscita: emettere suono, illuminarsi
Solo progettate (6)Ingresso: pulsante, velocità, suono
Uscita: muoversi, vibrare, inviare
Non avviate (34)15 carte ambiente, 16 carte ingresso, 3 carte uscita (visualizzare, attivare, registrare)

Non è stata svolta una valutazione con utenti

Il prototipo non è stato valutato con utenti. Lo sviluppo ha coinciso con la partecipazione a distanza durante la pandemia di COVID-19. Non è stato possibile organizzare né un laboratorio in presenza con visori VR né un’alternativa a distanza. Il progetto dimostra che l’esperienza progettata può essere realizzata come prototipo funzionante. La sua usabilità per i bambini e il suo valore in un contesto terapeutico restano da verificare.

Una futura valutazione esaminerebbe quanto sia intuitiva l’interfaccia per la prototipazione. Tra le possibili misure vi sono il tempo di completamento, la corrispondenza tra l’oggetto finale e l’idea iniziale del partecipante e il numero di pressioni involontarie dei pulsanti. Un questionario finale basato sulla System Usability Scale (SUS) fornirebbe altri dati quantitativi. Si potrebbe considerare la registrazione delle sessioni per osservare i movimenti dei partecipanti, con il loro consenso e procedure adeguate. Per il progetto del 2021 era stata proposta l’età di 13 anni, per conciliare la fascia di età di SNaP con le indicazioni Oculus consultate all’epoca. Qualsiasi studio futuro dovrebbe riesaminare i criteri di ammissione alla luce delle indicazioni applicabili e del protocollo di ricerca.

Sviluppi futuri

La prima priorità è rifinire l’interfaccia e l’esperienza d’uso. I limiti di tempo ed esperienza hanno concentrato gli sforzi sul funzionamento delle combinazioni di carte, lasciando meno sviluppati gli aspetti visivi, sonori e tattili. Va ripensato anche il ruolo del testo nella VR: informazioni concepite per una superficie piana potrebbero essere presentate meglio mediante un’interfaccia utente spaziale (SUI). L’interazione vocale è un’altra direzione da esplorare per gli utenti previsti.

Il progetto ha individuato tre direzioni di ricerca. La prima è il confronto con la tavola fisica in sviluppo presso i3Lab. Studi precedenti hanno rilevato più conversazione quando i partecipanti svolgevano lo stesso gioco collaborativo in un ambiente virtuale rispetto a uno fisico, suggerendo un confronto utile tra le due piattaforme. La seconda è la partecipazione simultanea di più utenti: in accordo con il nome «Codesign», i bambini potrebbero costruire insieme gli oggetti in VR. La terza è un formato standard per descrivere gli oggetti intelligenti, che consenta di trasferire i progetti tra piattaforme.

Sintesi

Il progetto ha creato un ambiente per prototipare oggetti intelligenti. Ha tradotto i tre tipi di carte SNaP in elementi costitutivi: l’oggetto, le condizioni che lo attivano e i suoi comportamenti. I giocatori li collegano afferrando, indicando e dipingendo. Il prototipo funzionante trasforma un’idea scritta in un oggetto virtuale interattivo, il cui comportamento è rappresentato da dati trasferibili tra scene.

Takafumi Horiuchi, Paul Cozma-Ivan, Elmira Katsajeva e Olivia Ludkiewicz, “Design and Implementation of a Smart Object Prototyping Platform in Virtual Reality for Children with NDD,” Advanced User Interfaces (a.a. 2020–21) Final Exam Project, Politecnico di Milano, febbraio 2021.