Wednesday, May 14, 2014

glSatellite Demo

During my research for 3D graphics application development I've noticed that a lot of tutorials and advices on the Internet are obsolete, imcomplete or even incorrect. That's why I've decided to create an open source technological demo of OpenGL for Android platform. That's just a demo, so it doesn't have any particular useful purpose, but shows the methods and algorithms to accomplish certain tasks.

For now the application reads public NORAD satellite database and shows the satellite positions and altitude related to Earth in the form of beams (the height of the beam represents the relative altitude).

The 3D features present:
 - OpenGL ES 2;
 - rotating, multi-touch zooming and moving the globe;
 - stars on a fixed background;
 - each satellite is represented by a beam with a unique color;
 - identifying the corresponding satellite if a beam has been tapped (based on color picking method).

Additionally to 3D features presented the application is:
 - using NDK with C++11 features compiled by LLVM clang;
 - mixing Java views with OpenGL views (Java is used for settings activity, information and ads panels);
 - using Android custom message queue to send asynchronous messages from Java to JNI layer;
 - parsing public NORAD satellite database (SGP4/SDP4 orbital models are supported).

Google Play app: https://play.google.com/store/apps/details?id=ca.raido.glSatelliteDemo

Source code is hosted on SourceForge at https://sourceforge.net/projects/glsatellitedemo/