Simulatore di scenario 3D

Simulatore per il movimento di una serie di piattaforme / target in uno spazio tridimensionale

Simulatore di scenario 3D Simulatore di scenario 3D

"Creare un Editor 3D con la possibilità di visualizzare in real-time mappe terrestri con livelli di dettaglio dinamici, modelli tridimensionali e mappe custom è stata una sfida che ha richiesto un connubio di tecnologie opensource che si è dimostrato duttile nell'uso e visivamente appagante da soddisfare in pieno i requisiti del cliente."

Nicola Ferruzzi, sviluppatore iOS @Develer

La richiesta

La necessità del cliente era di realizzare un sistema che permettesse anzitutto di configurare le traiettorie di un numero non predefinito di target in uno spazio tridimensionale terrestre mediante la definizione delle caratteristiche fisiche di ciascun target e di una serie di waypoint.

Il geoide terrestre, gestito attraverso OpenSceneGraph e OsgEarth, poteva essere associato a vari tipi di mappe, fruibili con l'applicazione online oppure completamente offline.

La sfida era resa ancora più ardua dalla richiesta di comunicare le posizioni dei target durante la simulazione ad un'altra applicazione posta nella stessa rete ad una frequenza di 1ms, tramite TCP/IP o UDP.

Vantaggi introdotti dalle nostre soluzioni

  • l'adozione di Qt ha permesso di raggiungere le prestazioni desiderate per l'invio dei dati via rete e di ottenere senza particolari sforzi un'applicazione cross-platform
  • separando in processi separati la parte di viewer/editor grafico e quella del motore di simulazione vero e proprio è stato possibile sfruttare appieno l'architettura multi-core delle moderne CPU e anche nei casi più critici evitare rallentamenti nella parte di simulazione
  • l'utilizzo di OsgEarth e OpenSceneGraph ci ha consentito di superare con facilità i problemi di terra tonda / terra piatta e di potersi interfacciare con vari fornitori di mappe, sia online che offline

In quale modo la nostra metodologia ci ha aiutati

Poiché il committente non poteva seguire in modo diretto lo sviluppo dell'applicazione, il progetto è stato inizialmente suddiviso in milestone, a seguito delle quali venivano fatte delle riunioni specifiche per visionare lo stato di avanzamento e raccogliere feedback. All'interno di ciascuna milestone venivano poi utilizzate metodologie agili per tracciare l'avanzamento dello sviluppo e coordinare il team di lavoro. Questo ci ha permesso di consegnare il progetto nei tempi previsti soddisfacendo appieno il committente.

In quale modo l'open source ha aiutato il progetto

Anche se il progetto era closed-source durante il suo sviluppo abbiamo utilizzato numerosi prodotti open source, da Qt a OsgEarth a OpenStreetMap. Questo ci ha permesso di realizzare un'applicazione complessa in breve tempo e di ottenere una soluzione ben funzionante e con ottime performance.