Visualization Toolkit
   HOME

TheInfoList



OR:

The Visualization Toolkit (VTK) is an
open-source software Open-source software (OSS) is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose. Op ...
system for
3D computer graphics 3D computer graphics, or “3D graphics,” sometimes called CGI, 3D-CGI or three-dimensional computer graphics are graphics that use a three-dimensional representation of geometric data (often Cartesian) that is stored in the computer for th ...
,
image processing An image is a visual representation of something. It can be two-dimensional, three-dimensional, or somehow otherwise feed into the visual system to convey information. An image can be an artifact, such as a photograph or other two-dimensiona ...
and
scientific visualization Scientific visualization ( also spelled scientific visualisation) is an interdisciplinary branch of science concerned with the visualization of scientific phenomena.Michael Friendly (2008)"Milestones in the history of thematic cartography, stat ...
.''Visualization Handbook'', Academic Press, 2005,
Chapter 30: the Visualization Toolkit
/ref> VTK is distributed under the
OSI OSI may refer to: Places * Osijek Airport (IATA code: OSI), an airport in Croatia * Ősi, a village in Veszprém county, Hungary * Oši, an archaeological site in Semigallia, Latvia * Osi, a village in Ido-Osi, Ekiti State, Nigeria * Osi, Ekiti ...
-approved BSD 3-clause License.


Functionality

VTK consists of a C++ class library and several interpreted interface layers including Tcl/Tk,
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
, and
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
. The toolkit is created and supported by the Kitware team. VTK supports a various visualization algorithms including:
scalar Scalar may refer to: *Scalar (mathematics), an element of a field, which is used to define a vector space, usually the field of real numbers * Scalar (physics), a physical quantity that can be described by a single element of a number field such ...
, vector,
tensor In mathematics, a tensor is an algebraic object that describes a multilinear relationship between sets of algebraic objects related to a vector space. Tensors may map between different objects such as vectors, scalars, and even other tenso ...
, texture, and volumetric methods; and advanced modeling techniques such as: implicit modeling, polygon reduction, mesh smoothing, cutting, contouring, and Delaunay triangulation. VTK has an information visualization framework, has a suite of 3D interaction widgets, supports parallel processing, and integrates with various databases and GUI toolkits such as Qt and Tk. VTK is cross-platform and runs on Linux, Windows, Mac and Unix platforms. The core of VTK is implemented as a C++ toolkit, requiring users to build applications by combining various objects into an application. The system also supports automated wrapping of the C++ core into Python, Java and Tcl, so that VTK applications may also be written using these programming languages.


History

VTK was initially created in 1993 as companion software to the book ''The Visualization Toolkit: An Object-Oriented Approach to 3D Graphics''. The book and software were written by three researchers (Will Schroeder, Ken Martin and Bill Lorensen) on their own time and with permission from General Electric (thus the ownership of the software resided with, and continues to reside with, the authors). After the core of VTK was written, users and developers around the world began to improve and apply the system to real-world problems. With the founding of Kitware, the VTK community grew rapidly, and toolkit usage expanded into academic, research and commercial applications. A number of major companies and organizations, such as Sandia National Laboratories,
Livermore National Laboratory Lawrence Livermore National Laboratory (LLNL) is a federal research facility in Livermore, California, United States. The lab was originally established as the University of California Radiation Laboratory, Livermore Branch in 1952 in response ...
,
Los Alamos National Laboratory Los Alamos National Laboratory (often shortened as Los Alamos and LANL) is one of the sixteen research and development laboratories of the United States Department of Energy (DOE), located a short distance northwest of Santa Fe, New Mexico, ...
funded the development of VTK and even developed a number of VTK modules themselves. VTK forms the core of the
3DSlicer 3D Slicer (Slicer) is a free and open source software package for image analysis and scientific visualization. Slicer is used in a variety of medical applications, including autism, multiple sclerosis, systemic lupus erythematosus, prost ...
biomedical computing application, and numerous research papers at IEEE Visualization and other conferences based on VTK have appeared. VTK has been used on a large 1024-processor computer at the
Los Alamos National Laboratory Los Alamos National Laboratory (often shortened as Los Alamos and LANL) is one of the sixteen research and development laboratories of the United States Department of Energy (DOE), located a short distance northwest of Santa Fe, New Mexico, ...
to process nearly a Petabyte of data. Later VTK was expanded to support the ingestion, processing and display of
informatics Informatics is the study of computational systems, especially those for data storage and retrieval. According to ACM ''Europe and'' ''Informatics Europe'', informatics is synonymous with computer science and computing as a profession, in which ...
data. This work was supported by Sandia National Laboratories under the 'Titan' project.


Criticism

In 2013, a survey paper on visualization for
radiotherapy Radiation therapy or radiotherapy, often abbreviated RT, RTx, or XRT, is a therapy using ionizing radiation, generally provided as part of cancer treatment to control or kill malignant cells and normally delivered by a linear accelerator. Radia ...
noticed that while VTK is a powerful and widely known toolkit, it lacked a number of important features, such as multivolume rendering, had no support of GPGPU libraries such as
CUDA CUDA (or Compute Unified Device Architecture) is a parallel computing platform and application programming interface (API) that allows software to use certain types of graphics processing units (GPUs) for general purpose processing, an approach ca ...
, no support of out-of-core rendering of huge datasets and no native support for visualization of time-dependent volumetric data. However, since 2013 there have been improvements such as VTK-m which can speed-up and parallelize certain computationally intensive tasks using accelerators such as GPGPU. VTK is also used in the visualization pipeline of radiological imaging software such as MEDInria or Starviewer which perform multi-volume (also called fusion) and time-dependent (also called phase) visualizations.


See also

* Paraview * :Software that uses VTK


References


Further reading

*


External links


Kitware home page

Visualization toolkit (VTK)
and officia
VTK Wiki

Parallel Visualization Application (ParaView)
and officia
ParaView Wiki

PDF 9-page technical paper
(with color images)


vtk.js, a Javascript implementation of VTKSome of the early history of VTK
{{Visualization Computer vision software Free 3D graphics software Free science software Free software programmed in C++ Free software programmed in Java (programming language) Free software programmed in Python Free software programmed in Tcl Software that uses Qt Software that uses Tk (software) Software using the BSD license Free data visualization software