NASA Mission Groundwork

Scientific Visualization Tools

Adrian Galvin
18 min readMar 26, 2018

3.26.18 Para View Basic Maneuvers

In order to be prepared for the 3D grain packing mission, I am learning Para View, a 3D data visualization engine.

Single cylinder source

I engaged with: built in sources, pipeline, camera, and display properties. I found the XYZ axis lock novel.

Rendering and GUI controls seem mostly logical although the behavior of “render points as spheres” did not behave as expected.

Zooming and camera rotation are not intuitive yet, so the reset view function is critical and works much like view resets in SolidWorks. Pipeline objects seem to function like Adobe CS layers.

Additional source and camera manipulation

Point selection is clear but seems clunky, I should look up whether there are hotkeys for these selection actions, as this would speed up the process enormously.

Basic net search doesn’t return anything useful, maybe this will come up later in tutorials. (Solved 4.2.18)

Selection of Sphere points

3.26.18 Para View First Data Set

The first suggested data set is Disk Ref. I experimented with different renderings: wireframe, gaussian, volume, surface. Gaussian is very interesting and allows me to see the interior data points, but the form becomes unclear. Wireframe, when adjusted to have an appropriate line width seems the best balance of interior visibility and volumetric clarity.

Option+Space is a shortcut for a Spotlight-like function which allows for search and activation of useful functions such as filters.

Useful search tool

Filters: Contour

I employed the contour filter to observe the location of various data. I explored temperature, pressure and arsine. The contour filter properties contains a value range. If a number from this range is entered, then a surface will be generated at the appropriate location for that data point.

400 degrees kelvin

3.27.18 Surfaces

Using extract surface and clip filters, I created a cutaway of the data set which reveals the 400k temperature isosurface.

Step 1 extract surface + clip

Comparison: Split Camera

I reset the data block and built two visualizations, one of temperature and one of pressure. Then, with a split viewport and linked camera, the two datasets can be seen side by side from identical angles for more effective comparison.

Setting up the comparison

Independent Controls

The properties of each visualization window can be controlled by selecting the viewport and then adjusting the pipeline or properties. Pipeline objects can be turned on or off as normal.

Of note although temperature is highest at the interface of the disk and surrounding air column, the area of highest pressure is above that interface. This is because the high temperature causes air to rise from the surface of the disk, while gravity pushes down on the air column from above. The level at which those forces are equal is the location of the highest pressure. This is made visible by side-by-side comparison.

Streamlines and Vectors

So far we have investigated temperature and pressure. Now motion. By using the streamlines filter, the motion vectors become visible.

Data set > stream lines
Point seed and reset camera to center

Using the tube and glyph filters, a visualization which shows the direction and vector magnitude can be generated. Colored with temperature, this provides a clear visualization of the movement and temperature of the air.

tube filter
glyph filter
adjusted glyphs and temperature color


Where is the air moving fastest? Air moves fastest closer to the disk, and further toward the edge of the disk. In space above the disk, air moves fastest in a central column rising from the disk.

How does the disk spin? The disk spins clockwise when viewed from the bottom, anticlockwise viewed from the top.

At the surface of the disk, does the air move toward the center or toward the edge? Air spirals toward the center of the disk, presumably pulled by the rising column of air in the center.

3.28.18 Plotting Filters

Plotting filters are in the data analysis section of the filters menu. There are less filters than I originally believed. It will be worthwhile in the future to read about each one so that I have a survey level knowledge ParaView filters.

clip filter can be adjusted by moving the plane, or changing the axis
plane can be be set in the GUI to x, y, or z normal
plane can be set in GUI to data normal, camera can also be aligned to the normal (axis along which the plane is adjusted)

The “plot over line” filter places a line in the 3D data set and corresponding graph. The line can be adjusted by control point dragging, or pointing to a location and pressing 1 to place the beginning point and 2 to place the end point.

plot over line filter

Holding x, y, or z will lock the point’s movement to that axis, this is especially usefuln for clear placement. Adjusted to the centerline of the data set, and plotting temp + pres, we can note that temperature falls with distance from the disk, and pressure rises and then falls with distance from the disk. This is consistent with previous observations made in the visual comparison.

temperature at left, and temp + pres at right
filters plot over line and histogram

Volume Rendering

The ParaView workflow turns off the data set once a filter is applied, allowing a variety of filters to be applied and therefore superimposed or compared.

temperature volume

The stream tracer filter is added and set to point source in order to add the air currents over the heated disk. Unchecking the render sphere parameter cleans and clarifies the visualization, although the full stream trace is lovely.

tube and glyph filters, the glyph filter requires specific adjustments
editing the “coloring” property of the volume rendering allows for opacity and color balance

4.1.18 Refresh on Volume Render Editing

The color mapping and opacity of a volume render can be accessed through the “coloring” property. This is especially useful when viewing multiple filters or factors simultaneously.

The interface allows for editing of the transfer function, which controls how color and opacity values are mapped onto the volume data.

color adjusted to emphasize hot regions

Color Map Editor

Unsure what precisely is meant by enable opacity mapping. The control does not behave in the manner I expect.

In the mapping data section, there are control points, new control points can be made, and each control point declares its properties. A specific data value can be input by selecting a control point and entering the desired value in the data box.

Save and load preset options are available in the righthand column.

black body radiation preset
do not use rainbow color maps, they obfuscate details of datasets which is the opposite of our objective

Time Based Animation Controls

Paraview provides a brick crushing data set, this allows us to view change over time. Animation controls are at the top and are quite intuitive.

There is a complexity to consider when mapping colors to a time based data set. Paraview maps color ranges based on the current frame. This means that if a value range is very low in the first frame and you map the color from that frame, you will get a very low color range. This unrepresentative color range will remain throughout the animation, causing confusion. Paraview does not check the range of every frame in the animation because the data set could be large, causing memory issues.

left appropriate color range, right range mapped from first frame

The data set has a provided amount of time points, if set to a playback time longer than is allowed by this amount of points, playback will become uneven. To combat this use the ‘temporal interpolator’ filter. This allows playback to be any length.

4.2.18 Text Annotations

Text annotations are a source type. Text anchor point options are in the properties menu, along with the enjoyably confusingly named ‘lower left corner’ toggle. This toggle allows free positioning of the text frame, with anchor point set in the lower left corner.

annotate time filter and animation view
annotate time reflects the choice between snap to timesteps and real time in the amount of digits it counts through

Save screenshot and animation are available from intuitive locations.


Selections can be performed visually with the toggles above the viewport or calculated mathematically with the find data query.

the blue and grey box
selection with corresponding cell spreadsheet


  • (s) rubber band cell select
  • (d) rubber band point select
  • (f) rubber band all cell select
  • (g) rubber band all point select

4•3•18 Spatial and Data Element Selection

Selection is fairly intuitive, choose between point or cell selection, and whether the rubber band should select elements behind the surface layer. Invert selection is available from the find data dialog.

Spatial Selection

If data is selected spatially using the viewport, that selection frustum will stay in place and the selected cells or points will change as the animation progresses. To reveal the selection frustum, activate the reveal frustum toggle in the find data dialog.

If the freeze selection option is used in the find data dialog, the current selection will be logged and remembered. Playing the animation forward or backward from this timeStep will not cause the selection to be recalculated.

freeze selection results in the same selection being maintained

A variable can be input in the find data dialog, such as EQPS (equivalent plastic strain), and the global max or min located. This can be plotted using the plot selection over time filter.

finding the minimum plastic strain
maximum plastic strain located and plotted
extract selection filter
the extracted selection can be frozen from the find data dialog


The animation view allows for keyframe and track based animation. Choose the source and value you wish to animate and create a track, keyframes, curves and values are editable.

animated sphere

Animation view keyframe editor functions identically to after effects, with less precision and a more obscure, non-visual UI.

looped sphere animation

Camera animations can be added from the animation viewer, including orbit and follow data. Path transformations are available as well.

end tutorial

Blunt Fin Data Set

The posted image shows the visualization pipeline used to create a clear depiction of airflow being split by a blunt fin. It seems an appropriate first objective to try to recreate that image.

first look at the blunt fin data set: extract surface
streamlines, looking at incoming airflow

4.9.18 Symmetry Exploration

I would like to create a reflected symmetric z axis view. This will give a clear image of the air stream being split in front of blunt fin.

extract surface experimentation
color mapping
symmetric z axis view
change input dialog is used to control filter input patching

4.11.18 Pivot + Filters

After some initial exploration of the blunt fin data set, it is apparent that I do not have sufficient knowledge of the basic filters and how to manipulate them in novel contexts to be able to achieve a desired state with data. Therefore a deeper dive into filters is required. After achieving interface and workflow familiarity, more attention can be applied to comprehension and experimentation.

[subset] Clip

Clip uses the implicit functions of geometric forms, or a function, to determine which cells or points are inside of a function, and then removes the remainder.

Scalar clipping works on a given parameter by clipping everything below a user indicated value.

scalar clipping of density
plane clipping
box clipping
sphere clipping
cylinder clipping
clip filter used to extract high pressure cells, volume rendering

[subset] Slice

The slice filter works similarly to the clip filter, but returns values at the boundary of geometric figures. It is a dimension reducing and memory saving filter option.

Additional geometric functions perform similarly to clip. Crinkle slice returns whole cells which come into contact with the slice function.

crinkle slice

Fun fact scalar : clip :: contour : slice

4.12.18 [subset] Extract Subset

This filter allows the extraction of a subset based on numerical description of a function. This function is defined by IJK coordinate input. In the properties UI, min and max values for each coordinate axis can be dictated.

subset of increasing I values
subset of increasing J values
subset of increasing K values

In blunt fin data set, the cells seem to display a logarithmic relationship between cell coordinate and cell volume. This filter will return a subset based on coordinate input, this is advantageous because it preserves the structured status of the data set. Filters such as clip and slice change the data set to an unstructured grid.

[subset] Threshold

A scalar function is used to extract cells and points. Control of the max and min function values return different blocks of data. Toggling ‘all scalars’ on requires that all points within a cell be within the scalar function. When not toggled, cells with any points within the scalar function are passed through.

threshold with increasing minimum values
threshold with decreasing maximum values
left ‘all scalars’ checked, right ‘all scalars’ unchecked which allows cells partially within the function to pass through

[subset] Iso Volume

This filter behaves similarly to threshold as long as cell data is being manipulated. When acting on point data, it behaves more like clip.

[geometry] Transform

It seems as though this filer recapitulates the basic transform features of the dataset properties. I am therefore unsure precisely what situation it is necessary for.

transform position, scale and rotation

[geometry] Reflect

This filter reflects data along any given axis at the highest or lowest value, and allows for custom reflection around any axis. The option to copy input means: create a new copy of the input which is matched to the reflection, not match the reflection’s graphic output to the input.

minimum value x and y reflection
maximum value x and y reflection
the desired reflected view, this is true reflection not a transformation approximation

4.16.18 Fin Definition

The provided example uses the following pipeline to create a surface representation of blunt fin: extractSurf, extractCellsByRegion, clip, transform, extractSurf, featureEdges.

In this exercise a similar pipeline is used to produce the same visual effect.

featureEdges + reflect + extractSurface

[geometry] Glyph

Glyph creates a symbol at each point distributed through a dataset. This distribution can be controlled from the properties menu. Scalars and vectors can be selected from the properties section as well as which property to orient the glyphs by.

glyph symbol variation

[geometry] Streamtracer

Stream tracer seeds a distribution of lines generated from a spherical or linear source. Visual widget or numerical input can be used to control the stream seed location. Streams can be mapped forward, backward or both from this source. The amount and maximum length of each stream can be set as well.

adjusted to clearly show flow over fin

Airflow and Blunt Fin Pipeline Construction

extractSurf extractCellsByRegion reflect
featureEdges streamTrace reflect
transform + color edit
complete visualization of blunt fin induced shockwave and turbulent boundary layer interaction



Adrian Galvin

design • science • visualization • illustration • jiu jitsu