Come scrivo da giorni, son circa 3 mesi che studio e sperimento in ambiente di sviluppo e test per Apple Vision Pro (nelle prossime ore mi arriverà il mio primo visore, di due, che ne ho acquistato). Non c’è dubbio che fin dall’ambiente di sviluppo, e senza ancora aver avuto modo di fare lunga sperimentazione con l’oggetto fisico – a parte un test di 15 min a Dicembre – il nuovo dispositivo presenta una serie di nuove sfide progettuali, rispetto ad altri visori e rispetto al mondo IOS, da considerare, e che non sono del tutto scontate.
Partiamo da un punto a mio avviso fondamentale:
La forza di Vision Pro non è l’hardware ( o meglio non solo e non soprattutto ), ma bensì la visione e la concezione che porta con se a livello di sistema e approccio.
Proprio come ho scritto qui . Detto questo qui di seguito riporto alcuni appunti che in questi mesi ho preso durante la progettazione from scratch per Apple Vision Pro.
Vision Pro non è un comune visore AR/VR
L’arrivo di Apple nel mercato dell’AR è un tema di discussione, e attesa, di lungo termine e fino a poco tempo fa non c’erano informazioni specifiche per poter iniziare a ragionare su cosa volesse dire progettare per questo device. Per esperienza il processo di migrazione di un applicativo tra diversi visori, cosi come succede tra diversi device smartphone con OS differenti, implica l’adattamento di più parti del progetto, dalla UX alle scelte tecniche di sviluppo, nonché in alcuni casi anche servizi per gestire correttamente le dinamiche dell’OS / ambiente di riferimento. Sono pochi i casi che permettono di lasciare il design pressoché inalterato, ma nel caso del VR invece è prassi.
Nel caso di Apple, rientriamo assolutamente nel secondo caso, ossia è un nuovo approccio, ergo è un contesto del tutto nuovo in cui sviluppare applicativi immersivi “per Vision pro“, e non “anche per Vision Pro“.
Da documentazione Apple è palese fin da subito che non si parla di AR / VR, ma di Spatial Computing. Di questo in questi giorni ne ho già ampiamente parlato e scritto, e anche se per molti può sembrare solo marketing, a mio avviso ci sono alcune differenze reali nel modo in cui questo visore è progettato rispetto a Quest 3 e altri visori provati negli ultimi due anni.
Un ambiente di sviluppo, per diverse modalità
Per prima cosa in questo contesto è importante definire le tipologie di applicazioni sviluppabili. In particolare in Vision Pro ci sono tre tipi di app che si possono sviluppare: windowed, bounded e unbounded (sono termini ereditati da Unity). Nel contesto dell’Apple Vision Pro, i tre approcci alla progettazione di applicazioni rappresentano modi differenti di sfruttare le capacità di spatial computing del dispositivo. Questi approcci definiscono come l’applicazione interagisce con lo spazio dell’utente e il grado di immersività.
- Windowed: le applicazioni “windowed” sono quelle che appaiono agli utenti come finestre fluttuanti nello spazio davanti a loro, in modalità Passthrough, simili a come le finestre appaiono su un computer desktop tradizionale. Questo approccio consente agli utenti di interagire con l’applicazione in un formato rettangolare 2D, mantenendo contemporaneamente la consapevolezza dell’ambiente fisico. È l’opzione meno immersiva tra le tre, ma offre grande flessibilità e può essere particolarmente utile per applicazioni che non richiedono un’esperienza completamente immersiva o per quelle che devono essere eseguite in parallelo ad altre attività, in multi tasking praticamente.
- Bounded: le applicazioni “bounded” sono progettate per operare all’interno di un volume definito, o “bounded space”, nello spazio fisico dell’utente. Questo significa che l’app crea un’esperienza 3D immersiva che gli utenti possono esplorare o interagire entro i limiti di uno spazio virtuale delimitato. Il volume può essere visualizzato come una porzione di spazio virtuale che coesiste con il mondo reale, permettendo agli utenti di muoversi e guardarsi intorno all’interno dei confini definiti. Questo approccio è più immersivo rispetto alle applicazioni windowed, offrendo un’esperienza che sfrutta la percezione dello spazio 3D pur essendo ancorata a un’area specifica del mondo reale.
- Unbounded: le applicazioni “unbounded” rappresentano il livello più elevato di immersione, in cui l’esperienza virtuale non è confinata da limiti spaziali definiti. In questo scenario, l’app può trasformare l’intero ambiente circostante dell’utente in uno spazio di gioco o di lavoro virtuale, permettendo interazioni e movimenti virtuali senza restrizioni spaziali. Questo approccio è ideale per esperienze di realtà aumentata o virtuale che intendono sostituire o trasformare completamente la percezione dell’ambiente fisico dell’utente, offrendo la massima libertà nell’esplorazione di mondi virtuali.
Ogni approccio ha i suoi vantaggi specifici e la scelta tra windowed, bounded e unbounded dipende dagli obiettivi dell’applicazione, dalle esigenze degli utenti e dal tipo di esperienza che si desidera creare. L’Apple Vision Pro, in questo modo offre agli sviluppatori la flessibilità di esplorare questi diversi approcci per progettare esperienze utente innovative e coinvolgenti.
Un approccio flessibile e unico (per adesso)
Tecnicamente non c’è una netta divisione in questo contesto di sviluppo. Da parte di Apple, ci sono finestre o volumi (oggetti ed entità) che possono apparire in modalità Shared Space o Full Space, in Passthrough o in un ambiente VR completamente immersivo. Un’app nel caso di Vision pro può combinarli tutti insieme, in vari modi.
Faccio degli esempi per rendere meglio l’idea. Nel caso di Apple è possibile per esempio sviluppare un gruppo di finestre, che si combinano con un gruppo di volumi, in uno spazio Full o Shared. In questo caso si può passare da uno all’altro, a seconda delle esigenze dell’utente, e si possono creare dinamiche di interazione e spostamento particolari: la vera distinzione da è tra il come il contenuto è rappresentato ( finestra 2D o volume 3D) e in quale spazio si trova (condiviso con altre app o non condiviso), e soprattutto se è in Passthrough o in VR completo. Molte applicazioni per necessità o precedenti sviluppi in altri ambienti e device nascono con modelli vincolati, mentre nel caso di Apple, se si vuole mantenere una completa flessibilità la soluzione più semplice (e probabilmente corretta) è utilizzare in modalità Full Space. L’unico caso che diventa veramente vincolate e inibisce alle applicazioni di poter esser gestite contemporaneamente ad altre è lo sviluppo Unbounded/Full Space, che ha di per se molti vantaggi, ma ha lo svantaggio principale che l’utente appunto non può aprire applicazioni una a fianco all’altra.
In pratica se vogliamo realizzare applicazioni che permettano all’utente in contemporanea di leggere la posta, navigare in internet, ascoltare musica, guardare un video, giocare e fare qualsiasi altra cosa dobbiamo realizzare app bounded e in uno spazio condiviso. Questo tipo di soluzione di sviluppo, che dal possibilità di utilizzo senza soluzione di continuità, da la sensazione di essere magica. E questa cosa per adesso la si può fare solo in Apple Vision Pro.
Quando Apple menziona lo Spatial Computing in pratica non parla di AR o VR, ma si riferisce esattamente a questo.
Apple Vision pro è “un computer indossabile”. E non lo dico solo per un tema di hardware o caratteristiche tecniche, ma per via dell’ecosistema che Apple vuole integrare e lo scopo che vuole raggiungere: un dispositivo, come un computer personale, indossato sulla testa, con cui puoi fare tutto, ovunque.
Scegliere quindi in quale spazio si trova l’app, a mio avviso è la prima fase della progettazione dell’esperienza dell’applicativo che si vuole sviluppare e che consentirà al progetto di poter sfruttare a pieno le potenzialità del visore. Non c’è dubbio che allinearsi alla visione di Apple, come successo negli anni con le linee progettuali dettate da Apple stessa per IOS, possa accelerare lo sviluppo e trovarsi esattamente a progettare nel corretto paradigma – approvato da Apple appunto – e su cui il visore di fatto nasce.
La differenza dei controlli tra Apple Vision Pro e gli altri sistemi
Una delle cose che mi ha sorpreso negli ultimi anni è quanto i giochi VR possano essere accessibili ai non giocatori, per quanto il numero di visori e la diffusione dei giochi VR non sia ancora così estesa. Uno dei motivi della semplicità d’uso a primo impatto è senza dubbio il controllo all’interno del gioco, ossia per la VR è viene chiamato controllo diretto. Questo è un modo elegante per dire che giochi attraverso l’incarnazione diretta e questa forma di controllo è estremamente intuitiva, perché tutti sanno come usare il proprio corpo.
All’interno del Vision Pro, il paradigma di controllo è differente. In Vision pro le cose con cui puoi interagire le guardi e poi le pizzichi. In pratica è come se gli occhi fossero il puntatore del mouse e al tuo pizzico delle dita il clic sul tasto sinistro. Questo è quello che Apple chiama il controllo indiretto. Se il controllo diretto è intuitivo, il controllo indiretto all’inizio lo è un po’ meno.
I concetti di controllo diretto e controllo indiretto si riferiscono quindi a due diversi modi in cui gli utenti possono interagire con le interfacce digitali, in particolare nel contesto di dispositivi come l’Apple Vision Pro e altri sistemi di realtà aumentata o virtuale.
- Controllo Diretto: il controllo diretto si basa sull’interazione fisica e intuitiva con l’ambiente virtuale. In pratica, significa che le azioni dell’utente nel mondo reale vengono mappate direttamente nel mondo virtuale in modo uno a uno. Ad esempio, se in un gioco VR l’utente vuole afferrare un oggetto, estenderà la mano e lo prenderà proprio come farebbe nella vita reale. Questo approccio è definito “diretto” perché l’azione compiuta ha un corrispettivo immediato e intuitivo nell’ambiente virtuale, rendendo l’esperienza di gioco o l’interazione estremamente naturale e accessibile anche per chi non è abituato ai videogiochi. La tecnologia di tracking di movimento, come il tracciamento delle mani e dei movimenti del corpo, è cruciale per questo tipo di controllo.
- Controllo Indiretto: il controllo indiretto richiede invece un’azione che non corrisponde fisicamente all’azione che si verifica nel mondo virtuale. Utilizzando l’esempio dell’Apple Vision Pro, gli utenti interagiscono con l’ambiente virtuale guardando gli oggetti e compiendo un gesto specifico, come un pizzicotto, per selezionarli o interagire con essi. In questo caso, lo sguardo dell’utente funziona, come detto, come un cursore del mouse, e il “clic” delle dita sostituisce il mouse. Questo metodo è considerato “indiretto” perché c’è una disconnessione tra l’azione fisica e il risultato nell’ambiente virtuale; l’utente non tocca o afferra fisicamente l’oggetto, ma usa un’interazione basata su gesti per controllarlo.
Scegliere tra un controllo diretto o indiretto
Non c’è dubbio che la modalità in controllo indiretto debba esser appreso dall’utente poiché, almeno nella fase iniziale, non risulta naturale, soprattutto se paragonata ad altre esperienze di altri visori per gli utenti che hanno già avuto altre esperienze.
Ma questa fase di apprendimento, l’abbiamo già vissuta più volte e non è stato un disastro, anzi:
- le levette analogiche introdotte per la prima volta nei videogiochi
- il cursore del mouse e la sua interazione con il sistema operativo
- lo swipe di apple per lo sblocco del cellulare per per le diverse interazioni
Ogni nuova interazione porta con se una nuova fase ed una nuova curva di apprendimento. E non necessariamente è un male.
Ora, rispetto il punto è “scegliere tra un controllo diretto o indiretto”. Ovviamente la prima riflessione è che a seconda del tipo di sviluppo che si affronta è corretto pensare di sviluppare differenti tipologie di interazione, o eventualmente supportare sia il controllo diretto che quello indiretto.
I sistemi di interazione indiretta a mio avviso prenderanno popolarità per la loro versatilità e capacità di adattarsi soprattutto alla pigrizia umana, offrendo un’interfaccia concettualmente trasparente che permette di compiere molteplici azioni con minimi spostamenti nel mondo reale. Questo tipo di controllo diventa essenziale in ambienti con spazi limitati, dove l’interazione diretta fisica è impraticabile, e aggiungo in contesti in cui l’utilizzo del visore è in condizioni di lavoro “stabili” ed il visore è il sostituto di un equipaggiamento fatto di pc, device mobile e monitor. In tali contesti, gli utenti interagiscono con il sistema da una certa distanza, rendendo le azioni simili all’uso di un mouse in un ambiente 2D, ma con la tecnologia che interpreta automaticamente la profondità e l’orientamento desiderato. Questo approccio consente una partecipazione efficace e comoda in progetti complessi senza la necessità di movimenti ampi o fisici, adattandosi perfettamente a situazioni dove lo spazio è un vincolo.
In pratica progettare per il controllo indiretto significa tornare a progettare nel modo in cui si farebbe per un mouse o un controller. Invece di mappare il movimento fisico del giocatore uno a uno nel mondo virtuale, va ripensato in modo che una piccola quantità di movimento abiliti un ampio spazio di possibilità nello spazio di interazione. Questo schema di controllo si basa molto sul tracciamento degli occhi.
Tracciamento Oculare, tra punti di forza e debolezze
Il tracciamento oculare del Vision Pro è sicuramente molto efficace e preciso, seppur tecnicamente non sbagli mai su punto in cui gli occhi sono puntati, il modo in cui deve esser implementato e utilizzato ha ancora delle debolezze (che non ho dubbi verranno migliorate).