A pochi giorni dalla conclusione della missione Cassini della Nasa, stiamo ritornando alle spettacolari immagini di Saturno e delle sue lune inviateci dalla sonda negli ultimi 13 anni. A parte il suo enorme valore scientifico, è indubbio che Cassini abbia rivoluzionato il nostro modo di vedere e di immaginare i corpi celesti, offrendo panorami di mondi alieni inimmaginabili poche decadi fa. Tra tutte le scienze, infatti, l’astronomia è in cima alla lista quanto a risorse estetiche per catturare l’attenzione del pubblico. E proprio per questo motivo, negli ultimi anni, sono nati numerosi programmi, applicazioni per smartphone e videogiochi dedicati proprio all’esplorazione spaziale, che permettono agli utenti di “visitare” direttamente luoghi distanti del Sistema solare e della nostra galassia. Tra questi, uno dei più completi è SpaceEngine: un ambizioso programma che si prefigge di simulare non solo il Sistema solare, ma l’intero universo, grazie a un sistema chiamato generazione procedurale – algoritmi che permettono la creazione di infiniti oggetti spaziali a partire da parametri prestabiliti. SpaceEngine è sviluppato da una sola persona, un giovane astronomo e programmatore russo, Vladimir Romanyuk. Media Inaf gli ha posto qualche domanda riguardo alla sua creazione.
Prima di tutto, ci dia qualcosa sul suo background. Ha una formazione in astronomia o il suo è semplicemente entusiasmo per lo spazio? E come ha acquisito le abilità da programmatore che le hanno permesso di creare SpaceEngine?
«Ho frequentato la Saint-Petersburg State University (a San Pietroburgo, in Russia) dove ho studiato astronomia. Ho poi lavorato un po’ nel campo, ma in seguito mi sono dedicato interamente allo sviluppo di SpaceEngine. I miei studi universitari si sono incentrati su matematica e astronomia, e non programmazione e informatica, perciò ho dovuto imparare a programmare da solo. È stato un percorso lungo, e sto ancora imparando tanto lungo la strada.
Come ha avuto l’idea di sviluppare SpaceEngine, e come mai ha scelto di lavorare da solo?
«Ho sempre sognato di vedere distanti mondi alieni! C’erano tanti programmi che provavano a restituire quell’esperienza, da programmi (offline) che permettono la realizzazione di render di immagini spaziali, planetari o programmi più ambiziosi come Celestia. Ho iniziato sviluppando dei mod per Celestia, ma ho rapidamente raggiunto i limiti di quello che poteva offrire. Ho quindi deciso di sviluppare autonomamente il mio software per la visualizzazione dello spazio, iniziando col compiere piccoli esperimenti riguardo alla produzione procedurale della galassia. Col tempo, tutti questi esperimenti sono diventati SpaceEngine. Quanto a lavorare da solo…è iniziato solo come un hobby, e ci lavoravo nel tempo libero durante i miei studi universitari».
Molti degli oggetti astronomici che è possibile visitare in SpaceEngine sono reali, e presi da vere mappe stellari, immagini scattate da sonde orbitali e altre osservazioni astronomiche. Quanto spesso deve aggiornare il programma per tenere il passo delle nuove scoperte astronomiche?
«Prima di tutto, devo ancora inserire in SpaceEngine migliaia di altri dati astronomici, molti più di quelli che include al momento. Ci sono moltissimi cataloghi stellari che potrebbero essere usati, ma che non ho ancora inserito nel programma: purtroppo ho risorse molto limitate. Detto questo, cerco di tenere aggiornati tutti gli oggetti astronomici più interessanti: quelli del nostro Sistema solare e i più importanti esopianeti. Ne inserisco di nuovi ad ogni aggiornamento di SpaceEngine».
E in che modo ha approcciato la generazione procedurale del resto dell’universo? Ha inserito nel codice del programma delle leggi fisiche e parametri reali? Ad esempio, come fa SpaceEngine a “decidere” se e quanti esopianeti orbitano attorno a una stella?
«Si, la generazione procedurale utilizza leggi fisiche reali, altrimenti produrrebbe risultati ridicoli! Ad esempio, il sistema responsabile per la generazione dei sistemi planetari considera la classe spettrale della stella, la sua massa, e la sua età. Il numero dei pianeti in orbita attorno a una stella è casuale, ma è limitato dalla nostra comprensione attuale dei meccanismi che conducono alla creazione di pianeti: un sistema stellare maturo non può avere centinaia di pianeti, ma al massimo una dozzina, altrimenti risulterebbe instabile o di una grandezza non realistica (e, soprattutto, andrebbe a contraddire la nostra comprensione della dinamica dei dischi circumstellari)».
Qual è stata la difficoltà più grande che ha incontrato nella creazione di SpaceEngine? E qual è la cosa di cui vai più fiero?
«Probabilmente l’interfaccia per l’utente è stata più difficile da sviluppare che l’architettura interna del programma! La parte astronomica per me è facile, e anche il rendering in 3D non è così complicato. Ma il sistema nel suo insieme è incredibilmente complesso. SpaceEngine è un software completo con quasi un centinaio di sottosistemi, che interagiscono l’uno con l’altro per creare l’esperienza di esplorazione spaziale che è fruita dall’utente. La cosa di cui vado più fiero è proprio il modo in cui tutte queste parti funzionano nel loro insieme».
SpaceEngine è mai stato usato in un contesto didattico (scuole, planetari, musei…)? Mi sembra che potrebbe essere un ottimo strumento educativo per generare interesse per l’astronomia nel pubblico.
«Sì, alcuni utenti mi hanno raccontato di aver usato SpaceEngine nel mondo dell’educazione, e che i loro studenti sono rimasti molto impressionati. Sto lavorando a funzioni da planetario più dettagliate, e mi piacerebbe se un giorno SpaceEngine potesse essere usato in planetari digitali professionali. Una nuova funzione che sto sviluppando, per la creazione di scenari, permette di creare dei tour educativi, e versioni future del programma ne avranno una vasta libreria disponibile. Inoltre l’Eso spesso usa SpaceEngine per creare immagini e video da usare nei loro comunicati stampa (ad esempio, questo video sul sistema Trappist-1)»
SpaceEngine è ancora in fase di beta: come vorrebbe vederlo evolvere in futuro e quali nuove funzioni spera di poter aggiungere?
«Sto lavorando a una versione per la piattaforma Steam, e per quello scopo dovrà essere un’applicazione molto curata e “completa”. Spero che mi aiuterà a raccogliere abbastanza fondi per mettere su una piccola compagnia. Questo mi permetterebbe di velocizzare lo sviluppo della “versione planetario”, nonché di sviluppare sulla base di SpaceEngine un videogioco di esplorazione spaziale. La versione corrente di SpaceEngine già offre la possibilità di pilotare veicoli spaziali che rispondono a leggi fisiche accurate, ma questa è solo una “preview” di quello che vorrei che gli utenti saranno in grado di fare all’interno del gioco».