VTK

Visualization toolkit

By Elaine Jiang

Edited Spring 2021 By Kota Soda

Description

VTK is an object-oriented system. The two major components of VTK are the visualization pipeline and the rendering engine. The visualization pipeline includes obtaining or creating data, processing the data, and writing the results to a file or passing the results to a rendering engine or display. The rendering engine is responsible for creating a visual representation of the data. 

There are a couple commonly used objects in the rendering engine that will be useful to know to get started. These are:


Official Resources

Official Documentation: VTK Textbook

User Support: VTK User Guide, VTK Community Support

Installation Guide: VTK Getting Started


Usable Environments

Recommended System Requirements

Metrics

Accessibility: The estimated time for someone to create Hello World in VR

Power: The engine's power - i.e. how much one can do with this

Usage:  Evaluation of software's use for the following purposes

Software Performance

Data Visualization Summary

The Visualization Toolkit (VTK) is an open-source, freely available software system for 3D computer graphics, modeling, image processing, volume rendering, scientific visualization, and 2D plotting. It supports a wide variety of visualization algorithms and advanced modeling techniques, and it takes advantage of both threaded and distributed memory parallel processing for speed and scalability, respectively.

Filters 

Overview: VTK applications manipulate data with filters. Each filter inspects the data it receives and produces derived data. A connected set of filters forms a dataflow network. A configurable network turns raw data into more visually comprehensible formats.

Required Skillset/Experience Level: 

Expected Time:

Bugs:

Graphics System

Overview: VTK adds a rendering abstraction layer over the underlying graphics library (OpenGL for the most part). This higher level simplifies the task of creating compelling visualizations.

Required Skillset/Experience Level:

Expected Time:

Bugs:

Data Model 

Overview: VTK’s core data model has the ability to represent almost any real-world problem related to physical science. The fundamental data structures are particularly well-suited to medical imaging and engineering work that involves finite difference and finite element solutions.

Required Skillset/Experience Level:

Expected Time:

Bugs:

Data Interaction 

Overview: Interaction helps you understand the content, shape and meaning of data. In VTK, 3D widgets, interactors, and interfaces to 2D widget libraries like Qt enable you to add comprehensive user interaction to your programs.

Required Skillset/Experience Level:

Expected Time:

Bugs:

2D Plots and Charts

Overview: VTK has a full set of 2D plot and chart types for tabular data. VTK’s picking and selection capabilities help you interactively query your data. In addition, VTK is very interoperable with Python, including Matplotlib.

Required Skillset/Experience Level:

Expected Time:

Bugs:

Parallel Processing

Overview: VTK has excellent support for scalable distributed-memory parallel processing under MPI. What is more, many VTK filters implement finer-grained parallelism via vtkSMP (for coarse-grained threading) and vtk-m (for fine-grained processing on many-core and GPU architectures).

Required Skillset/Experience Level:

Expected Time:

Bugs:

Cost

Sources

Visualization Toolkit. 2018 Kirware, Inc. www.vtk.org 

The VTK Users Guide: 11th Edition. 2010 Kitware, Inc. https://www.kitware.com/products/books/VTKUsersGuide.pdf