PRo3D, short for Planetary Robotics 3D Viewer, is an interactive 3D visualization tool to allow planetary scientists to work with high-resolution 3D reconstructions of the Martian surface.

Who uses PRo3D?

PRo3D aims to support planetary scientists in the course of NASA's and ESA's missions to find signs of life on the red planet by exploring high-resolution 3D surface reconstructions from orbiter and rover cameras.

For the past 5 years the development of PRo3D has been geared towards providing planetary geologists with interactive tools to digitize geological features on digital outcrop models (DOMs) on the Martian surface. During our fruitful cooperation with geologists from the Imperial College of London, PRo3D has emerged as their main tool to conduct remote geological analysis which lead to many publications and talks at various geological science venues.

Planetary geology is the most elaborately supported use-case of PRo3D, however we strive to expand our user groups to other use-cases, so we have also developed features for supporting science goals in landing site selection and mission planning.


Geological Annotations

PRo3D lets users pick points on the 3D surface at the full resolution of the data present. Our tools contain point, line, and polyline annotations, while line segments are projected onto the surface. Various measurements are computed at the highest possible accuracy, such as the distance along a 3D surface (waylength) or dip-and-strike orientations of sediment structures.

Large Data

Surface reconstructions from high-resolution satellite images can easily yield gigabytes of data in terms of geometry, imagery, and additional layers. With PRo3D users can explore huge datasets interactively and even perform measurements of topographic features. The displayed dataset on the right consists of 2GB of raw 3D position vectors, a 1GB elevation map, and 10GB of image data rendered at interactive framerates with commodity hardware, utilizing adjustable level-of-detail and out-of-core techniques.

3D Layers

Although, PRo3D is not a GIS system, we need to provide our users with typical GIS features to solve their geospatial problems, such as evaluating topographic or geological features. Our 3D layering technique allows a seamless integration of different reconstructions present at a single location. Unlike image or DTM layering we allow users to blend full 3D data by assigning rendering priorities, which is crucial to explore reconstructions from multiple rover camera instruments.


Currently, PRo3D supports OBJ files but works best with reconstructions in the proprietary data format OPC (Ordered Point Clouds), basically consisting of hierarchically organized surface patches. These reconstructions stem from orbiter images and rover images and are produced by Joanneum Research by using the PRoViP processing pipeline. Many surface reconstructions have been generated from, for instance: HiRISE, MER-A, MER-B and MSL missions from various instruments. An ongoing project evaluates terrestrial applicability of PRo3D and the PRoViP pipeline by capturing outcrops in the UK. However, in the next section we provide two example datasets.

Getting started

Download the latest stable build of PRo3D on our release page
Download one of our example datasets:

Unpack the and start PRo3D.Viewer.exe.

PRo3D is also available in source code form on Github. If you have questions on how to use PRo3D or want to contribute, please feel free to join our discord channel. For academic or commercial inquiries please contact science[at] For accessing PRoViP and working with other reconstructions please contact gerhard.paar[at]

[1]Image data courtesy NASA/JPL/CalTech/ASU, 3D data processing by JOANNEUM RESEARCH under ESA/PRODEX Contracts PEA 4000105568 & 4000117520. The research leading to these results has received funding from the European Community’s Seventh Framework Programme (FP7/2007-2013) under grant agreement n° 312377 PRoViDE

[2]'HiRISE_VictoriaCrater_SuperResolution': 5cm orthorectified Super Resolution Restoration (SRR) image created from 6-image input by Tao & Muller (2016) using the GPT algorithm. See 'Tao, Y.; Muller, J.-P. (2016) A novel method for surface exploration: Super-resolution restoration of Mars repeat-pass orbital imagery. Planetary and Space Science, 121, 103–114.doi:10.1016/j.pss.2015.11.010'

If you have used PRo3D in your research and would like to cite it in your publications, please use the follwing reference and DOI for PRo3D:

Barnes, R., Gupta, S., Traxler, C., Ortner, T., Bauer, A., Hesina, G., et al. (2018). Geological analysis of Martian rover-derived Digital Outcrop Models using the 3-D visualization tool, Planetary Robotics 3-D Viewer—Pro3D. Earth and Space Science, 5, 285– 307,

If you would prefer to cite the software in an acknowledgement rather than the references section, that is also fine with us. I suggest a statement like:

"This research made use of PRo3D, a 3D viewer for exploration and geologic interpretatins of planetary surface reconstructions ("

The most important thing is the inclusion of the Zenodo DOI link, which is what makes it possible for us to track the impact of PRo3D. Citations to our software are very helpful to us for professional advancement, securing funding, justifying expenses to project sponsors, etc., exactly like citations to traditional research publications.

Importing OPCs

At first we want to add a surface to our 3D scene. Open the sidebar by clicking and select 'Add Surface' which opens a Folder Browser Dialog. A Surface folder contains one or more OPC folders. Select the Surfaces you want to add and confirm by clicking 'Select Folder'. If you get lost in the black void of 3D space just click onto to find your surfaces again. If you are not sure what an OPC folder is, it always contains a 'patches' and an 'images' subfolder. View fullsize.

Save your scene

Next, we want to save our 3D scene with the imported surfaces. To do this open the sidebar () again and select or . If you open PRo3D for the first time, it will start up with an empty scene, so in this case the two icons behave the same. You can name the scene anyway you like,for instance, gardencity.scn. On your next startup PRo3D will load your most recently saved scene automatically. View fullsize.

Navigate the scene

You can navigate a scene in PRo3D with mouse and keyboard, very similar to a first-person computer game. Click and hold the left mouse button (LMB) and move the mouse to change the orientation. Moving up and down while holding the right mouse button (RMB) zooms in and out, while the middle mouse button (MMB) allows you to pan. WASD corresponds to forward, backward, pan left, and pan right. You can regulate the movement sensitivity via PageUp and PageDown keys or via the sensitivity slider in the config (top right 'Show Tab' >> Config >> Navigation Sensitivity).

So far we only discussed the 'FreeFly' navigation. To access the 'ArcBall' navigation, first select 'PickExploreCenter' from the interaction menu (top toolbar, second dropdown menu). Most interactions in this menu require you to pick a point on the surface. To do this, hold down CTRL and click the LMB. If a pink dot appears, you have successfully picked the explore center and the navigation switches to the arcball controller. Holding LMB and moving the mouse now rotates the scene around this center. To switch back to 'FreeFly' just select it from the menu. View fullsize.

Draw on the surface

Drawing primitives

To start drawing in the 3D surface, you need to select 'DrawAnnotation' from the interaction menu, which reveals the drawing menu consisting of four elements: drawing primitive, projection mode, color, and line width. PRo3D offers the following drawing primitives: point, line, polyline, polygon, and Dns (Dip and Strike). By default 'polyline' and 'viewpoint' projection are selected. We can start to draw a polygon by holding down CTRL use the LMB to pick points on the surface. When we our polyline has enough points we press ENTER to finish it, which automatically opens the annotaions tab on the right. There, we can select individual annotations by clicking on the text, inspect their properties and modify them, for instance change their color or add a text.

The Dns annotation has a special measurement, which automatically computes the 3D dipping and strike vector for a picked polyline represented by a colored disc. By default, blue represents a dip of 0° and red a dep of 90°. Technically, a plane is fitted to the picked points by linear regression. Disc sizes can be adapted in the config tab. View fullsize

Projection modes

With the projection mode we can decide how the points we picked are connected. 'Linear' simply connects the picked points directly, while the other two modes compute hundreds of intermediate points. In case of 'Viewpoint', these intermediate points are projected onto the surface along the viewing direction, very much like we would have picked these points ourselves along the connection. When using 'Sky' projection, the intermediate points are projected orthogonally from above onto the surface, which is for instance usefull for estimating the waylength along a surface opposed to air-line distance. View fullsize

MINERVA is a 3D GIS currently under development by JR, VRVis and EOX for a collaborative, holistic planetary science data infrastructure to allow members of different instrument teams to cooperate synergistically in virtual workspaces by sharing observation information, analysing and annotating the data. For more information, please have a look at the MINERVA homepage or watch this Youtube video of our first prototype. The Project MINERVA (2017-2019) is funded by BMVIT in the context of the Austrian Space Applications Programme (ASAP) of the Austrian Research Promotion Agency FFG No 865980.


For a comprehensive manual please refer to this PDF.

Technology behind PRo3D

PRo3D has been developed with the Aardvark.Media framework as part of the AardvarkPlatform for visual computing developed at VRVis.