Welcome To ParaView
Copyright Notice
Copyright (c) 2000-2001 Kitware Inc. 469 Clifton Corporate Parkway,
Clifton Park, NY, 12065, USA.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of Kitware nor the names of any contributors may be used
to endorse or promote products derived from this software without specific
prior written permission.
* Modified source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Welcome to ParaView, an application designed
with the need to visualize large data sets in mind. The goals of the ParaView project include the following:
- Develop an open-source, multi-platform visualization application.
- Support distributed computation models to process large data sets.
- Create an open, flexible, and intuitive user interface.
- Develop an extensible architecture based on open standards.
ParaView runs on distributed and shared memory parallel as well as single
processor systems and has been succesfully tested on Windows, Linux and
various Unix workstations and clusters. Under the hood, ParaView uses the
Visualization Toolkit as the data
processing and rendering engine and has a user interface written using a
unique blend of Tcl/Tk and C++.
The Origins of ParaView
ParaView is being developed by Kitware in
conjunction with Jim Ahrens of the
Advanced Computing Laboratory
at Los Alamos National Laboratory. ParaView is funded by the US Department
of Energy ASCI Views
program as part of a three-year contract awarded to Kitware, Inc. by a
consortium of three National Labs - Los Alamos, Sandia, and Livermore.
The goal of the project is to develop scalable parallel processing tools
with an emphasis on distributed memory implementations. The project includes
parallel algorithms, infrastructure, I/O, support, and display devices. One
significant feature of the contract is that all software developed is to be
delivered open source. Hence ParaView is available as an open-source system.
Features
The following summarizes the important features
of ParaView.
Visualization Capabilities:
- Handles structured (uniform, non-uniform rectilinear grids as
well as curvilinear grids), unstructured, polygonal and image data
|
-
All processing operations (filters) produce datasets. This allows
the user to either process further or to save as a data file the
result of every operation. For example, the user can extract a
cut surface, reduce the number of points on this surface by
masking and apply glyphs (for example, vector arrows) to the
result.
|
-
Contours and isosurfaces can be extracted from all data
types using scalars or vector components. The results can be
colored by any other variable or processed further. When possible,
structured data contours/isosurfaces are extracted with
fast and efficient algorithms which make use of the special
data layout.
|
- Vectors fields can be inspected by applying glyphs
(currently arrows -vector arrows-, cones and spheres)
to the points in a dataset. The glyphs can be scaled
by scalars, vector component or vector magnitude and can be
oriented using a vector field.
|
- A sub-region of a dataset can be extracted by cutting
or clipping with an arbitrary plane (all data types),
specifying a threshold criteria to exclude cells (all data
types) and/or specifying a VOI (volume of interest -
structured data types only)
|
-
Streamlines can be generated using constant step or
adaptive integrators (currently, streamlines are not available
in parallel, this feature is under development). The results
can be displayed as points, lines, tubes, ribbons etc. and
can be processed by a multitude of filters.
|
- The points in a dataset can be warped (displaced)
with scalars (given a user defined displacement vector) or
with vectors (unavailable for rectilinear grids).
|
-
With the array calculator, new variables can be computed
using existing point or cell field arrays. A multitude of
scalar and vector operations are supported.
|
- Data can be probed on a point or along a line. The
results are displayed either graphically or as text and can
be exported for further analysis.
|
- ParaView provides many other data sources and filters by
default (edge extraction, surface extraction, reflection,
decimation, extrusion, smoothing...) and any
VTK filter
can be added by providing a simple XML description (VTK
provides hundreds of sources and filters, see VTK documentation
for a complete list).
|
Input/output and File Formats:
- Supports a variety of file formats including:
- VTK (all types including parallel, ascii and binary, can
read and written)
- EnSight 6 and EnSight Gold (all types including parallel,
ascii and binary; multiple parts are supported -each part
is loaded separately and can be processed individually)
(read only)
- Plot3D (ascii and binary, C or Fortran; support for
multiple blocks -each block is loaded separately and
can be processed individually-, I blanking is currently
partially supported) (read only)
- Various polygonal file formats including STL and BYU
(by default, read only, other VTK writers can be added
by writing XML description)
|
- Since ParaView is open source, the user can easily provide
her own readers and writers.
|
- New flexible XML based file formats (which fully
support distributed data) are being developed and prototypes
are provided with ParaView.
|
User Interaction:
- Intuitive and flexible interface based on the
Tcl/Tk toolkit.
|
- Compact user interface design. All
tools are located in the main window. This eliminates
the need for large number of windows which are often
difficult to locate on a cluttered desktop.
|
-
Allows changing the parameters of many
filters by directly interacting with the 3D view using
3D widgets (manipulators). For example, the
user can manipulate the seed line of a streamtrace filter
by clicking on a control point and dragging the line
to the new location.
|
-
Maintains interactive frame rates even when working with
large data through the use of level-of-detail (LOD) models.
The user determines the threshold (number of points) beyond
which a reduced version of the model is displayed during
interaction (the size of the model can also be adjusted).
Once the interaction is over, the large model is rendered.
|
Large Data and Distributed computing:
- Runs parallel on distributed and shared memory systems
using MPI. These include workstation clusters, visualization
systems, large servers, supercomputers etc.
|
- ParaView uses the data parallel model in which the data
is broken into pieces to be processed by different
processes. Most of the visualization algorithms function
without any change when running in parallel. ParaView also
supports ghost levels used to produce
piece invariant results. Ghost levels are points/cells
shared between processes and are used by algorithms which require
neighborhood information.
|
- Supports both distributed rendering (where the results are
rendered on each node and composited later
using the depth buffer), local rendering (where the
resulting polygons are collected on one node and rendered locally)
and a combination of both (for example, the level-of-detail
models can be rendered locally whereas the full model is
rendered in a distributed manner). This provides scalable
rendering for large data without sacrificing performance
when working with smaller data.
|
Scripting and extensibility:
- ParaView is fully scriptable using the simple but powerful
Tcl language. Every operation
has a corresponding script command. Every command executed
during a session can be saved in a trace file which can
be re-loaded to reproduce the session. Furthermore, since the
session file is simply a Tcl script, it can be edited/modified
and loaded to obtain different results.
|
- Additional modules can be added by either writing an XML
description of the interface (since the XML interface is
still being developed, it is not fully documented and is
subject to change) or by writing special C++ sub-classes
of the main ParaView module (this is only needed for advanced
modules). The XML interface allows users/developers to add
their own VTK filters to ParaView without writing any special
code and/or re-compiling (ParaView can load shared Tcl wrapper
libraries at run time).
|
- Since the user interface is written with
Tk, it can be modified and
extended at runtime either from the command prompt or by
loading a ParaView script. For example, it is possible to
write a demonstation script which brings up a message window
describing the current operation as well as allowing the
user to interrupt the demo.
|
ParaView uses the CMake
cross-platform build system. To compile ParaView, you will have to
install CMake. Binary and source distributions of CMake can be
found here.
If it exists for you platform, we highly recommend using a binary
distribution. CMake 1.4.5 or newer is required.
The complete distribution of ParaView contains VTK and Tcl/Tk
8.3.2. You do not have to download VTK or Tcl/Tk separately to compile.
Run CMake and Compile
Once CMake is installed, you are ready to build ParaView. We highly
recommend reading the CMake documentation if you are not familiar with CMake:
http://www.cmake.org/HTML/Documentation.html.
(You can skip the Developer's Guide.)
In summary, ParaView Complete build consists of:
- Running one of the CMake user interfaces
- Changing configuration options
- Compiling (make on Unix, Visual Studio on Windows)
On Windows, you should use the CMakeSetup.exe application to setup
the VTK and ParaView build. On Unix/Linux, you should use the CMake wizard
(cmake -i) or the terminal interface (ccmake). See the CMake documentation
for details.
ParaView distribution is designed such that all the default build options
selected by CMake for VTK and ParaView are appropriate for building ParaView.
However you might have to tell CMake the location of some include files and
libraries (for example MPI libraries if you enabled MPI support).
The following instructions only apply to Unix/Linux systems.
First we will give you the quick and dirty way to build ParaView:
- untar the ParaViewComplete distribution
- cd ParaViewComplete06
- cmake -i (run cmake in wizard mode, where you have to answer questions about the build)
or
ccmake (run the terminal based interface to cmake where you interactively change build options)
- if necessary change build options
- make
It is a very good idea to tell cmake what C and C++ compilers
you will be using. This can prevent many build problems.
On most systems you can pass this information to CMake in the
following way:
env CXX=/your/C++/compiler CC=/your/c/compiler cmake
otherwise you must set CXX and CC in your environment and then
run ccmake (or cmake -i).
If you are planning to build ParaView for multiple architectures then you can
either make a copy of the entire ParaView tree for each architecture and then
follow the instructions above. Or you can have one copy of the ParaView
tree and compile it in a different manner (out-of-source). Instead of
running cmake from the ParaViewComplete06 directory, create a new directory
where you have some free disk space (not in the ParaViewComplete tree),
a possible name would be paraview06-solaris. cd into this directory and
then run cmake similar to the following example:
ls /home/joe_user
ParaViewComplete06 paraview06-solaris paraview06-sgi
cd paraview06-solaris
ccmake /home/joe_user/ParaViewComplete06
or
cmake -i /home/joe_user/ParaViewComplete06
This will create makefiles in the paraview06-solaris directory. Then you can
run make in paraview06-solaris to compile ParaView. Repeat this
process for each architecture you wish to build. Please note that on
some platforms, it might be necessary to use the GNU Make to compile
out-of-source.
This is due to the fact that the Tcl/Tk build process uses some
features not available on all make distributions.
The Windows build process uses the CMake GUI, CMakeSetup. After
running CMake, you use the compiler make utility to compile as follows.
- Install ParaView distribution by unzipping into the appropriate
directory.
- Execute CMakeSetup. This will pop-up a little
GUI that allows you to tailor the build. It then starts
building .dsw and .dsp files (Visual Studio 6), solution files
(Visual Studio .NET ) or makefiles (nmake, Visual Studio 6 and .NET).
You'll have to tell CMakeSetup where you've placed your ParaView
source code, and where to build the object code and dll's (we'll call it
"paraviewbin").
- When CMakeSetup completes, start up Visual Studio and load
ParaViewComplete.dsw or ParaViewComplete.sln. Select the ALL_BUILD project,
and build it.
We recommend a 300MByte minimum swap size or you might have trouble
during the link phase.
For information about how to start and use ParaView, see the online
documentation.