Vis > visualization > 3d > 3-D Packages
3-D Packages
3-D Visualization Package Descriptions
Comparison
Table
Explorer
MATLAB
Vis5D
VTK
Explorer
DESCRIPTION
IRIS Explorer is a system for combining small, general tools called modules to create powerful custom visualization applications. Modules linked together this way form an IRIS Explorer map. The Map Editor is the primary means of interacting with modules that are cooperating as an aggregate IRIS Explorer application. The Map Editor is used to start and stop module execution, make and break connections among modules, and operate controls for the modules themselves. You can use the mbuilder (Module Builder) application to build new Explorer modules from existing subroutines written in C, C++, or Fortran.
A number of Explorer modules (> 50) have been developed at GFDL and are available through the GFDL Iris Explorer Web Page.
PLUSES
- Extremely polished visualizations.
- Visual programming paradigm employing dataflow steering; ie, user specifies flow of data.
- "Module Builder" can create modules from user codes.
- Multiple renderings per session, multiple objects per rendering.
MINUSES
- Significant (some would say, steep) user learning curve...
...see JPS, HNV or RSZ to reduce this by at least an order of magnitude!! - Very resource hungry - current datasets and renderings must be partitioned
- Visualizations are less "quantitative" than, say, an NCARG plot (at least for now...).
- No "true" postscript output, though the image dumps (converted to PostScript) are quite reasonable.
HOW TO INVOKE
- First, make sure your "~/.Xdefaults" includes the same resources as those in "/home/jps/pub/netcdf/.Xdefaults-nc_utils"
- Next, make sure you have an appropriate "~/.explorerrc"; you can get a sample from "/home/rsz/.explorerrc"
- Make sure your workstation has a needed direcory:
- if (! -e /usr/tmp/explorer) mkdir -p /usr/tmp/explorer
- Define a directory with lots of space, say:
- setenv EXPDIR /net//tmpdir/explorer
- Startup explorer by entering:
- limit descriptors 400 ; cd ; nice explorer
HINTS
- Read in a netCDF variable using the ReadNC module.
- Subsample/crop data using SampleCrop, or directly in ReadNC.
- Generate slices of data using OrthoSlice (or OrthoSlice3D or OrthoSlice4D), LatToGeom, Contour2.
- Generate 3-D isosurfaces using IsosurfaceLat.
- Generate vectors with VectorMaker.
- Create axes using AllAxis.
- Render all objects in, well, "Render"!
- Capture the rendered image using WriteSGI, or use the "imgsnap" tool.
- For best results:
- Make the image as large as possible.
- Switch to single buffer mode (right mouse button in the Render window).
- Turn on "anti-aliasing" to minimize "jaggy" lines (this is expensive, so do it last!)
- To print, load the resulting SGI RGB image into XV and "Save" as PostScript (hit "Max" button to set the images to the max printable area on the page).
- When printing to paper, first bring up the color-editor (under "Windows") and hit the "Brite" button 3-4 times and reset "black" by pulling the leftmost grab-point in the "Intensity" graph all the way down.
- More complete information is available in the "Image Printing" guide.
- Use TkcxHelp to locate modules based on keyword searches.
DOCUMENTATION
Vis5D
- Vis5D is a software system for visualizing data made by numerical weather models and similar sources. Vis5D works on data in the form of a five-dimensional rectangle. That is, the data are real numbers at each point of a "grid" or "lattice" which spans three space dimensions, one time dimension and a dimension for enumerating multiple physical variables.
DESCRIPTION
PLUSES
- Rendering is quite fast, which is particularly useful for animations!
- GUI is relatively clean and straightforward.
- Nominal capability to accomodate user-functions.
- Fairly capable "volume rendering" (ie, "fog-like" volumetric objects).
- Interesting scripting capability (via Tcl) with a reasonable "load/save progress" option.
- Data can be packed down to 8-bit or 16-bit.
MINUSES
- Cannot ingest netCDF data directly; you must create a "v5d"-format version of any data!
- Vis5D format can hold only one horizontal grid per file (similar to GrADS).
- Somewhat difficult to exactly specify slice and isosurface numbers.
- Much less sophisticated lighting model than Explorer.
- Can only work with one data file and visualization window at a time.
HOW TO INVOKE
- The newest Vis5D 4.3 is currently invokable by:
/usr/local/vis5d+/bin/vis5d datafile.v5d -path data/ -alpha
- The "-path" option tells Vis5D where its topography and map files are located. The "-alpha" option tells it to use alpha blending when displaying transparency rather than the inferior default screen-door transparency.
- A complete list of command-line options is printed when running the program without any arguments.
HINTS
- Converting your netCDF data to the v5d format is a multistep process. See Data Conversion.
DOCUMENTATION
VTK
DESCRIPTION
VTK (Visualization Tool Kit) is a free, open source library of 2D & 3D visualization algorithms. The implementation is in C++, but wrappers are provided for TCL, Python and Java. This makes runtimes very consistent across different languages, plus hardware acceleration is supported for OpenGL. The library is object-oriented, so scripts & programs between different languages have a near one-to-one correspondance in instructions using VTK.
PLUSES
- Capable of virtually every graphics technique renderable by OpenGL.
- Highly modular for data pipeline construction.
- Supplied with many examples and tests.
MINUSES
- Steep learning curve.
- No graphical interface for pipeline construction; purely programmatic.
- Technical support by developers nearly exclusive to paying customers.
HOW TO INVOKE
-
At GFDL, just add this command to your ~/.cshrc startup file
to setup VTK for all platforms,
regardless if there's graphics-acceleration hardware:
source ~rsz/pub/vtk.cshrc
Then add the following command in your Python script that uses VTK:import vtk
- With a TCL script, just execute the following:
vtk script
There is no tcltk on the Altix, so add the following to your environment:setenv LD_LIBRARY_PATH "/home/rsz/pub/altix/tcl/lib:${LD_LIBRARY_PATH}"
HINTS
- To interface your NetCDF data with VTK, write your pipeline in C++ and use the NetCDF C or C++ APIs, or use ScientificPython within your Python pipeline script. GFDL has internal setup instructions for using ScientificPython on our Linux, Altix and IRIX systems.
- For rendering large, high resolution scenes offscreen, use our Mesa installation. The setup instructions are located above in the section HOW TO INVOKE.
DOCUMENTATION
INSTALLATION
- CMake cached configurations: Altix ia64 (Mesa), Linux x86 (OpenGL-Nvidia)
MATLAB
DESCRIPTION
MATLAB is a powerful, yet general environment for computation and analysis.
It fully supports matrix computations for arbitrary dimensions and has a suite of the latest
linear algebra functions. Analysis can also be done graphically in 1D, 2D and 3D along with
a mapping toolbox. GUIs may be created in a style similar to Visual Basic using
guide.
Additional toolboxes are continually created by the author Mathworks
and other vendors.
A custom 2 part MATLAB course was prepared for GFDL, and now the material
used in the classroom is available on-line or as PDF. Follow the links below.
Those without a GFDL account will need to adjust their intial paths when
using the example scripts.
- Fully programmable built-in language for matrix computation and anything else computer related (networking, low-level API, graphics).
- Large technical support and community.
- Built-in debugger/tracer, optimizer and profiler.
- Java programmable.
- Has its own GUI builder called GUIDE.
- Complete online help.
- Has an easy to use GUI data viewer for all variables in a workspace.
- Allows creation of stand-alone applications, with or without a GUI.
- Supports various file formats: netCDF, ascii, JPG, PNG, BMP, MATLAB binary.
- Script loops are slow.
- License availability is limited.
- Graphics are slow.
- Memory is limited to a mere 1+ GB because of no 64-bit support; consider using Python.
- Simply type
matlab
. - A complete list of command-line options is printed with
matlab -h
- To run a MATLAB script without bringing up the GUI interface, do either:
matlab -nojvm -r script matlab -nodisplay -nosplash -nodesktop -r script
- Official MATLAB Webpage
- MEXCDF NetCDF Interface
-
GFDL MATLAB Course Part 1 HTML PDF Example Scripts
GFDL MATLAB Course Part 2 HTML PDF Example Scripts