Tuesday, September 22, 2009

Interactive 3D Mars Visualization in Eclipse RCP

OpenGL support has been available in SWT for several years and has enabled many useful visualization tools, particularly for the sciences (for example: Earth science, chemistry and planetary science). At NASA we have used this capability for creating high performance image views for our mission tactical planning tools. Within the Eclipse community there is also an initiative to create GEF3D, a 3D version of the Graphical Editor Framework.

There are also powerful 3D engines that can integrate with SWT and Eclipse RCP apps such as Ardor3D and JMonkeyEngine
that provide scene graph capabilities (a high level abstraction that allows the programmer to work in terms of defining 3D objects and scenes rather than the lowest level of polygons and points). Ardor3D in particular has taken great pains to create a well-supported integration path to SWT that makes RCP app integration straightforward.

Building on the Eclipse RCP application framework and the Ardor3D graphics framework, I made a video of the latest work in 3D visualization and mapping of Mars
and here are some screenshots:


























This very powerful tool runs happily in an Eclipse RCP app on my Macbook Pro, or a Windows box, or a Linux box. This kind of flexibility is essential for us to provide an application that can be used by folks working on NASA missions from around the world. The data all streams in over the internet in real time as new locations are explored by the rovers.

Scene graph APIs are very powerful and can create very compelling visualizations whether for serious goals like science or for entertainment value such as video games. I'd encourage any programmer who's familiar with Eclipse and looking for a fun project to work on to grab one of these libraries and take it for a spin. Tell them I sent you :)