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 only supports 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.


PRo3D, PRoViP, and the surface reconstructions (OPCs) are currently not publicly available. For scientific, academic, or commercial inquiries please contact gerhard.paar[at]

Getting started

At the moment PRo3D and outcrop reconstructions (OPCs) are not publicly available. This quickstart guide is for people associated with the respective projects of NASA and ESA missions and for people participating in respective workshops, having access to a version of PRo3D and data. For scientific, academic, or commercial inquiries please contact gerhard.paar[at]

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


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 scientific rendering and visualization developed at VRVis.