lunedì 4 settembre 2017

Cronache da HighFidelity e Sansar: hanno realizzato il sogno dei...

...Costruttori di mondi...?


Nell'ultima settimana ho indossato il cappello del "costruttore" o meglio builder e ho cercato di verificare quanto Sansar e HighFidelity stiano effettivamente raggiungendo le promesse del famoso video "costruttore di mondi" https://en.wikipedia.org/wiki/World_Builder_(film)  che ha da sempre ispirato i sogni degli appassionati di realtà virtuale nel 2007 ai tempi in cui SecondLife era all'acme della sua popolarità.


Come intuibile siamo ancora molto lontani da questo obiettivo, ma la tesi centrale e il sogno di questo piccolo gioiello è che è possibile creare in tempo reale contenuti virtuali di alta qualità e farli esperire ed interagire attivamente da altre persone a cui teniamo, in quel caso probabilmente la compagna del builder.

Ad oggi 2017 pare che esistano sostanzialmente due tecnologie che consentono una prima approssimazione di questo sogno:

Sansar che nelle parole del presidente di LindenLab vorrebbe

"We want to lower the barrier of entry for VR experience creation ... Project Sansar will do for virtual experiences what WordPress has done for the Web ... "

Cioè vorrebbe rendere facile la scrittura di un mondo virtuale che possa essere fruito come una sorta di blog come WordPress, dove i produttori di contenuti possano diffondere le proprie creazioni, almeno in questa fase non è prevista interattività e costruzione cooperativa, ma la suddivisione netta fra "creazione dei contenuti fatta da professionisti" e "fruizione passiva da parte degli utenti". Le esperienze vengono infatti create a tavolino e poi usufruite a mo' di vetrina.

E HighFidelity costruita dallo stesso visionario (anche lui originariamente creatore di LindenLab ma ora separatosi in un apposito progetto https://en.wikipedia.org/wiki/High_Fidelity_Inc che apparentemente vuole fare la stessa cosa ma con una impostazione abbastanza diversa, basata sulla filosofia opensource, sull'accesso immediato ed interattivo e sulla cooperazione dei costruttori che possono interagire fra di loro e con i loro utenti in tempo reale.

Ho già spiegato nel mio post precedente i primi pregi e difetti delle due impostazioni che in sintesi posso riepilogare così:

Sansar, miglior pregio "realizzazione di ambienti realistici e (relativamente) convincenti", peggior difetto "lentezza sovrumana nella procedura di pubblicazione e mancanza di interattività".

HighFidelity, miglior pregio "completa interattività in fase di costruzione", peggior difetto "motore grafico non totalmente convincente".

Una volta ribaditi questi concetti mettiamoci il cappello da "costruttori di mondi" e vediamo la mia personale e piccola esperienza di tentare di pubblicare contenuti 3D in questi due mondi.


SANSAR



L'obiettivo sperimentale è di creare una presenza di PyramidCafe all'interno del cosiddetto Atlas di Sansar https://atlas.sansar.com/ 

Sono quindi partito in Blender realizzando una piramide a base quadrata con muri e varie texture (3 una per il pavimento, una per i geroglifici esterni e una per quelli della parete interna). Mi sono dotato di infinita pazienza, ho prodotto le normal map e specular map grazie al sempre fondamentale aiuto di questo sito: http://cpetry.github.io/NormalMap-Online/  e il risultato e' piu' o meno quello che avete gia' visto nel video pubblicato qualche giorno fa. Ottimo risultato, ma....

La Censura:

Originalmente pubblicato con il titolo PyramidCafe, mi sono trovato il giorno dopo una email in cui mi si diceva che il titolo essendo composto da una sola parola violava il regolamento interno di Sansar.. Mentre invece vedevo che molte altre esperienze hanno un titolo per esempio M2D che viola tranquillamente questa regola, ma evidentemente qualcuno ha amicizie altolocate e io no :(


Le Texture:


Vengono accettate solo texture .png (che tendono ad essere più grosse delle JPEG) e solo con delle dimensioni standard 512x512 1024x1024 e simili. L'incubo però è che se si sbaglia una piccola cosa l'importer crasha nel modo più inconsulto producendo disagio e frustrazione. Mi è anche capitato che le texture venissero importate con una sovraimpressione "ERROR" senza capire minimamente cosa fosse sbagliato e come correggerlo. 


Il costo:


In quanto Creatore della prima ora mi hanno concesso 5 esperienze gratuite fino a ottobre mi pare, ma sono disponibili gratuitamente 3 esperienze per chiunque. Questo è un elemento interessante, se si eccettua il costo morale ed intellettuale delle infinite ore trascorse a tentare di importare le texture risulta abbastanza semplice ed agevole inserire una "esperienza".


HIGH FIDELITY



Su HiFi volevo invece sperimentare gli aspetti originari che non sono presenti su Sansar, primo fra tutti la possibilità di ospitare una esperienza sui propri server. L'esperienza non è esattamente per i "deboli di bit" un po' come non è mai semplice installare un server OpenSim o Minecraft, ma i risultati e l'assistenza del blog, forum di HighFidelity è stata molto utile, da qui si vede che HiFi è socialmente molto più avanzata. Analoghe richieste di aiuto su Sansar erano risultate per lo più inascoltate o con risposte inadeguate.


Costruzione del Server:

Sono riuscito a costruire un server su Amazon EC2 (Ubuntu 16.04). L'esperienza gira anche solo con una RAM da 1G cosa che è notevole. Le istruzioni seguite sono le seguenti:

FROM ubuntu:16.04



RUN apt-get update && apt-get upgrade -y
RUN apt-get install software-properties-common python-software-properties -y
RUN add-apt-repository ppa:beineri/opt-qt59-xenial -y
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E9A40B0F
RUN add-apt-repository "deb [arch=amd64] https://packages.o2t.info/ xenial o2t-hf" -y
RUN apt-get install apt-transport-https -y
RUN apt-get update -y
RUN apt-get install o2t-hifi-stack-stable -y
RUN apt-get install gcc -y


RUN adduser --system --shell /bin/bash --disabled-password --group --home /home/hifi hifi


EXPOSE 40100 40101 40102 40103

poi il tutto si lancia con i comandi
domain-server &
assignment-client --max 10 &


Chiunque abbia un po' di dimestichezza con Ubuntu si rende conto che la procedura e' abbastanza semplice (una volta note tutte le dipendenze) e che si usano pochissime porte: in particolare la 40100 che è la più importante.

Ricordiamo che Amazon EC2 per una istanza da 1G di ram è offerto gratuitamente per un anno e poi costa circa 10-20 euro al mese a seconda del numero di ore effettivamente utilizzate.

Ho realizzato in totale DUE server uno come detto su Amazon EC2 e uno sul nostro server opensim grazie alla potenza di Docker. Come detto non e' per deboli di cuore, ma non e' nemmeno una esperienza piu' complicata di quella richiesta per fare girare un server opensim oppure minecraft.

La configurazione del server


Mentre in Sansar tutto e' magicamente gestito dalla Linden, in HIFI dovete invece diventare esperti e configurare nel modo corretto i vostri server. Le operazioni richieste sono le seguenti:

Nei settings occorre collegare l'istanza con il vostro utente HiFi, e ottenere un id di dominio.

E' una procedura tutto sommato semplice. E' mia intenzione in futuro fare dei corsi appositi per spiegare come si fa con video e tutto il resto.

La registrazione dei domini 


Il modo piu' semplice di accedere ai vostri server e' attraverso la ricerca del nome nel menu GOTO. Per facilitare l'accesso occorre registrare il vostro dominio. Il costo e' di 20 Euro all'anno, non e' essenziale perche' e' possibile accedere anche attraverso la id del dominio che si comporta come una sorta di IP. L'indirizzo di pyramidcafe' e' ad esempio 9ea30115-7857-4a18-aa7c-207dbf58e14c.
Non e' necessario quindi in caso di difficolta' finanziaria spendere questi soldi, accettando pero' di far entrare le persone in modo un po' piu' complicato.

Gruppi


Nella migliore tradizione di SecondLife e' possibile fare in modo che in una determinato dominio possano entrare/rezzare/costruire collettivamente soltanto le persone che fanno parte di un gruppo predefinito. Il costo del gruppo e' di 5 Euro all'anno. E' possibile comunque rendere la costruzione libera a tutti.



La configurazione del client come in secondlife


Sebbene in teoria non ci sarebbe bisogno di fare cose particolari, ho trovato che sono disponibili degli script che consentono di utilizzare HighFidelity in modo umano. In particolare e' indispensabile a mio avviso installare i seguenti script:

edit.js che trovate documentato in questa pagina web http://ctrlaltstudio.com/hifi/edit, che consente di editare gli oggetti in modalita' creativa n modo umano e veloce,
inspect.js che consente di usare la cam esattamente come in second life :) http://ctrlaltstudio.com/hifi/inspect




I problemi con High Fidelity


Rispetto a Sansar non ci sono particolari problemi ad importare le texture e i risultati pur essendo leggermente inferiori, sono comnque comparabili. Controllate questi due video per vedere le differenze. :)
In generale ho visto che anche HiFi non e' proprio agevole ad essere usato con i visori vr, ma sono presenti molte piu' funzionalita' di quelle accessibili in Sansar.


Conclusioni (sempre parziali)


Dopo notevoli prove e tentativi mi trovo assai piu' a mio agio con High Fidelity, percepisco che e' molto piu' facilmente estendibile rispetto a Sansar e consente un building cooperativo. E' decisamente un prodotto piu' maturo, forse perche' e' stato progettato con un po' di anticipo. La speranza ovviamente e' che anche Sansar migliori magari togliendo quelle cose assurde come ad esempio la censura su nomi di dominio che mi pare un tantino artificiosa ed arbitraria..
Nessuno dei due sembra troppo vicino al filmato originale, ma fra i due mi pare proprio che HiFi sia sulla strada piu' giusta, mentre Sansar pare perdersi un po' sul fatto di fare un prodotto patinato e agibile solo per i professionisti. Ricordiamo che SecondLife ha avuto successo e tuttora e' un prodoto di successo economico proprio perche' invece per prima ha consentito a tutti di poter manifestare le proprie capacita' creative.



A presto per altre ulteriori considerazioni.

Salahzar









High Fidelity is a free platform for creating, hosting, and exploring shared virtual reality