# Welcome To ParaView

- Copyright Notice
- Introduction
  - The Origins of ParaView
  - Features
- Compiling ParaView
- Execution

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.

# Introduction

Welcome to ParaView, an open-source, multi-platform, parallel scientific visualization application. Although it can be run on a single processor, ParaView is specifically designed to run on distributed parallel computers. ParaView has been succesfully tested on Windows and Linux workstations, clusters and SGI Origin 2000 systems. ParaView is a turnkey application written using the Visualization Toolkit and it has a framework based on a unique blend of Tcl/Tk and C++.

ParaView is an extensible, open-source visualization system designed for parallel computing environments. It is built on the open-source VTK software. It uses data streaming to process large datasets, supports parallel implementations of common algorithms, and uses parallel tree-composite rendering for a completely parallel solution.

The Origins of ParaView
ParaView is being developed 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. In addition, the turn-key application, ParaView, is being developed as part of this contract. 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:

Software Architecture

- Open-source
- Uses C++ to drive the Tk widget set.
- Portable across Windows and Unix systems
- Built on the standard open-source VTK visualization system
- Modular GUI may be extended to support your own tools
- The application may be extended at run-time via Tcl scripting
- Transparent multi-processor support
- Supports data-streaming. (Has been used to process 1-pedabyte data in a single run on a 2048 processor machine.)
- VTK or user-defined filters can be easily added.

Visualization Capabilities

- Reads and writes a variety of data formats including EnSight, VTK, Plot3D, Wavefront, STL, etc.
- Supports several source objects (e.g., lines, planes, spheres, implicit functions, point clouds, etc.) used for probing, generating streamlines, cutting, and representing geometry.
- A large library of visualization filters are available. These include isocontouring, cutting, clipping, color mapping, decimation, outlines, geometry extraction and glyphing.
- Supports different interaction styles, switchable at run-time. Users can add their own interaction styles.
- Annotation features such as scalar bars; 2D (fixed) and 3D (moves with object) text are available.
- Picking
- LOD displays allows for user trade-off between rendering fidelity and frame rate.

Parallel Processing

- Supports parallel software rendering (tree composite with LOD)
- Algorithms implemented in parallel
- Data parallelism is supported
- Supports MPI and shared memory architectures

# Compiling ParaView

Install CMake, VTK and Tcl/Tk
To use ParaView, you will have to download and install VTK and CMake. (VTK serves as the visualization engine; CMake is the build environment.)

CMake can be obtained from http://public.kitware.com/CMake. See CMake documentation for installation instructions.

VTK can be obtained downloaded from http://public.kitware.com/VTK or can be obtained via CVS using the following procedure.

cvs -d :pserver:anonymous@public.kitware.com:/cvsroot/VTK login
(respond with password vtk)

Follow this command by checking out the source code:
cvs -d :pserver:anonymous@public.kitware.com:/cvsroot/VTK co -r ParaView-0-2 VTK

(Note: CVS is a source code revision control system used by many participants in the open-source community. To use CVS, you must have it installed on your system. You may wish to use the Cygwin tools on Windows platforms, or WinCVS which provides a very nice GUI to CVS.

Install and build ParaView differently depending on the operating system. Either way, you must build and/or install CMake, VTK, and Tcl/Tk 8.2.3 prior to compiling and installing ParaView. Please note that ParaView requires Tcl/Tk 8.2.3. It will not work with any other version.

Run CMake and Compile
Once CMake and Tcl/Tk 8.2.3 are installed, you are ready to build VTK and ParaView. We highly recommend reading the CMake documentation if you are not familiar with CMake: http://public.kitware.com/CMake/HTML/Documentation.html. (You can skip the Developer's Guide if you are not going to work with CMakeLists files.)

Detailed instructions for configuring and compiling VTK can be found in VTK/README.html. In summary, the VTK (and ParaView) build consists of:

1. Running one of the CMake user interfaces
2. Changing configuration options
3. 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 and VTK/README.html for details.

The following build options are the most important ones when building VTK for ParaView. These are taken from real VTK configurations (from both a Linux, gcc and a Windows, Visual C++ build, the values found by CMake are shown inside square brackets). A brief description of each entry is given here to help users configure and build VTK with the right settings. When a value in the following list is optional, it is cleared described as such. Otherwise, the entry must be set to a proper value. Note that some entries are marked (Unix/Linux only) or (Windows only) and are only relevant to the given operating system(s). Usually, CMake will automatically set all of the other build options to appropriate values. However, if a package which is needed by VTK is in an unusual place or if it encounters something unexpected, CMake might not be able to set an option/setting correctly and you might get errors when compiling VTK. If you are not sure about what the problem might be, you can contact the ParaView mailing list.

    BUILD_SHARED_LIBS [OFF]

If you are going to run ParaView in a distributed environment with MPI, we recommend keeping BUILD_SHARED_LIBS OFF. This way, your ParaView executable will not depend on many VTK and ParaView shared libraries and you will have to distribute fewer shared libraries over the nodes of your distributed environment. Other shared libraries (for example, tcl and tk libraries are usually shared) which ParaView is linked against will have to exist (and in the path) on all nodes so that ParaView can find them when running.

    (Unix/Linux only)
    OPENGL_INCLUDE_PATH [/usr/include]

    OPENGL_LIBRARY [/usr/lib/libGL.so]

VTK requires OpenGL. On Windows, this library is almost always found automatically by CMake. On Unix/Linux, you might need to set these values if CMake does not find them when first run. Mesa include files and library can be used instead of OpenGL ones without having to set any other options.

    TCL_INCLUDE_PATH [/usr/local/include]

    TCL_LIBRARY [/usr/local/lib/libtcl8.2.so]

    TK_INCLUDE_PATH [/usr/local/include]

    TK_LIBRARY [/usr/local/lib/libtk8.2.so]

    VTK_WRAP_TCL [ON]

ParaView requires that VTK is built with Tcl/Tk bindings (VTK_WRAP_TCL has to be on). Furthermore, it requires that Tcl/Tk 8.2.3 is used. Any other version of Tcl/Tk will not work. The cache values for the Tcl/Tk include paths and libraries have to be set appropriately. On Windows, we recommend that you install Tcl/Tk 8.2.3 binaries using the default path (C:/Program Files/Tcl/lib). In this case, CMake will automatically find all the necessary paths.

    VTK_USE_HYBRID [ON]

    VTK_USE_PARALLEL [ON]

    VTK_USE_RENDERING [ON]

These modules are required by ParaView and should be turned on.

    VTK_USE_PATENTED [ON]

The patented module is optional. Patented classes may require a license for commercial use. Check the individual header files for patent information.

    VTK_USE_MPI [OFF]

    MPI_INCLUDE_PATH [/usr/local/mpi/include]

    MPI_LIBRARY [/usr/local/mpi/lib/libmpich.a]

MPI is supported by VTK and ParaView but is optional. If this option is on, you will have to specify the MPI include path and the MPI library. Once VTK is built, compiling ParaView is simple. Run CMake as described before for VTK but using the ParaView source and binary directories and set the following value:

    VTK_BINARY_PATH [NOTFOUND]

This entry should point to the VTK binary (build directory). This is where VTK's CMakeCache.txt and vtkConfigure.h are. Once this entry is set, CMake will read VTK's cache file for all the necessary information. You do not have to set any other options. Next build ParaView like you built VTK.

# Execution

For information about how to start and use ParaView, see the online documentation.