Tra le tecnologie in voga ultimi tempi, la Realtà Aumentata e la Realtà Virtuale rappresentano un contesto altamente interessante che permette alle persone di vivere delle esperienze “realmente” immersive. Per entrambe si prospetta una rapida espansione nel prossimo futuro in quanto in grado di offrire la possibilità di migliorare nel concreto le capacità dell’uomo in svariati settori di competenza.

REALTÀ AUMENTATA E REALTÀ VIRTUALE

La Realtà Aumentata consiste nel fornire all’utente delle informazioni aggiuntive rispetto all’ambiente circostante, fornendo dettagli del contesto inquadrato da una fotocamera; è usata in diversi campi come quello turistico, pubblicitario o per fornire informazioni di navigazione.

Ad esempio, Google Maps ha da poco introdotto questa funzionalità nella modalità di navigazione a piedi, in modo da fornire direzioni ed informazioni più precise.

La Realtà Virtuale consente di creare un ambiente in 3 dimensioni che simula in maniera completa l’ambiente reale, quindi trova applicazioni interessanti nei giochi, o nelle simulazioni di qualsiasi genere, ma è in campo medico e della salute della persona in generale, che si sperano di ottenere i risultati più significativi.

Esistono già diverse applicazioni della Realtà Virtuale in contesti come quello della moda o nel comparto ingegneristico, fino ad arrivare al contesto dell’arredamento (un esempio è Ikea) che è in grado di offrire al cliente una visuale immersiva a 360° di ciò che sarà effettivamente realizzato o acquistato. È vero, non siamo ancora giunti alla possibilità di provare quanto è morbido il divano esposto in vetrina, ma c’è già l’opzione che permette di vedere i mobili virtualmente disposti all’interno di casa prima di acquistarli.

Dopo questa breve introduzione, ti conduco nell’esplorazione del dettaglio tecnico anche attraverso l’esperienza concreta della realizzazione di una applicazione di voto.

LE TECNOLOGIE DISPONIBILI

La base di queste tecnologie è la medesima: la possibilità di disegnare e animare delle forme tridimensionali all’interno di una pagina web.

La tecnologia di base è denominata WEB GL (Web-based Graphics Library, una libreria grafica per il web), ed è utilizzata nel web già da diverso tempo, soprattutto per la realizzazione di giochi o di particolari rappresentazioni grafiche di dati, come per esempio relazioni complesse tra informazioni di vario genere, o grafici e dashboard.

Arrivando velocemente ai giorni nostri, l’hardware utilizzato per i device moderni e la modalità con cui questo hardware viene sfruttato dai browser, hanno consentito di migliorare le potenzialità e le performance dei motori di rendering grafici, permettendo di sfruttare in modo più interessante la grafica nel web.

Inoltre, sono stati fatti passi enormi nella comunicazione e iterazione tra i sensori dei device e il browser, consentendo alla pagina web di ottenere informazioni di vario genere relative alla posizione, all’orientamento e al movimento del device rispetto all’ambiente esterno.

Un primo passo importante verso questa tecnologia, è stato fatto da alcuni progetti Open Source che hanno fornito agli sviluppatori degli strumenti semplici per realizzare grafiche attraenti. Tra questi il più conosciuto è sicuramente threejs (una libreria JavaScript e un’interfaccia di programmazione dell’applicazione cross-browser utilizzata per creare e visualizzare grafica computerizzata 3D animata in un browser Web).

Un’ altro che vale la pena citare perché molto utilizzato è D3 (Data-Driven Documents, libreria JavaScript per creare visualizzazioni dinamiche ed interattive partendo da dati organizzati, visibili attraverso un comune browser), in ambito di presentazioni di dati con grafi e alberi.

Partendo da un progetto sperimentale di Mozilla, seguito poi da Google, e passando per diversi tentativi e sperimentazioni, si è arrivati da poco alla definizione di uno standard che viene chiamato WebXR, che consiste in una serie di API, sviluppate dai browser, per far comunicare il browser stesso con il device fisico, in modo da sfruttare i dati dei sensori (accelerometro, giroscopio, sensore di prossimità e GPS).

Contemporaneamente i browser hanno cercato di sfruttare in modo più completo gli acceleratori hardware e la memoria GPU delle schede video, per aumentare le performance e la fluidità dei contenuti grafici in 2 e 3 dimensioni.

VOTING ROOM, SPERIMENTARE L’ESPERIENZA 3D IN UNA APP DI VOTO

Considerato il buon grado di maturazione della grafica 3D, in Interlogica abbiamo deciso di sperimentare queste soluzioni nell’applicazione di voto – “Voting Room” – da far usare al pubblico del “Code in the Dark”, competizione di “coding alla cieca” che si è tenuta a Venezia nel mese di settembre.

Il contenuto e l’ambientazione calzavano a meraviglia l’idea di una sperimentazione di questo tipo! E, caso fortuito ha voluto che negli ultimi tempi siano nati diversi progetti Open Source utilissimi che han messo a disposizione degli sviluppatori dei costrutti semplici per creare ambienti ed elementi in 2 e 3 dimensioni.

A livello tecnico, il focus per la creazione dell’applicazione di voto si è concentrato su due librerie in particolare:

AFRAME (Virtual Reality Framework) per la realtà virtuale,

(Virtual Reality Framework) per la realtà virtuale, AR.js (Augmented Reality experience) per la realtà aumentata.

Per la versione 1.0 dell’applicazione è stata scelta AFRAME per creare un ambiente 3D virtuale, in modo da riprodurre lo spazio circostante al contest.

AFRAME mette a disposizione una serie di tag HTML che consentono (attraverso ThreeJS) di creare ambienti e forme tridimensionali.

Nello specifico, gli elementi fondamentali che han consentito di “disegnare” l’ambiente del contest sono: