The Visualization Toolkit (VTK) is a
free software
Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
system for
3D computer graphics
3D computer graphics, sometimes called Computer-generated imagery, CGI, 3D-CGI or three-dimensional Computer-generated imagery, computer graphics, are graphics that use a three-dimensional representation of geometric data (often Cartesian coor ...
,
image processing
An image or picture is a visual representation. An image can be two-dimensional, such as a drawing, painting, or photograph, or three-dimensional, such as a carving or sculpture. Images may be displayed through other media, including a pr ...
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, st ...
.
[''Visualization Handbook'', Academic Press, 2005, ]
Chapter 30: the Visualization Toolkit
/ref>
VTK is distributed under the GNU
GNU ( ) is an extensive collection of free software (394 packages ), which can be used as an operating system or can be used in parts with other operating systems. The use of the completed GNU tools led to the family of operating systems popu ...
-approved and FSF-approved BSD 3-clause License.
Functionality
VTK consists of a C++ class library and several interpreted interface layers including Tcl/Tk
Tk is a cross-platform widget toolkit that provides a library of basic elements of GUI widgets for building a graphical user interface (GUI) in many programming languages. It is free and open-source software released under a BSD-style software l ...
, Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
, 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 (prog ...
. The toolkit is created and supported by the Kitware __NOTOC__
Kitware, Inc. is a technology company headquartered in Clifton Park, New York. The company is involved in the research and development of open-source software in the fields of computer vision, medical imaging, visualization, 3D data pu ...
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 a ...
, vector
Vector most often refers to:
* Euclidean vector, a quantity with a magnitude and a direction
* Disease vector, an agent that carries and transmits an infectious pathogen into another living organism
Vector may also refer to:
Mathematics a ...
, tensor
In mathematics, a tensor is an algebraic object that describes a multilinear relationship between sets of algebraic objects associated with a vector space. Tensors may map between different objects such as vectors, scalars, and even other ...
, texture, and volumetric methods; and advanced modeling techniques such as: implicit modeling, polygon reduction, mesh smoothing, cutting, contouring, and Delaunay triangulation
In computational geometry, a Delaunay triangulation or Delone triangulation of a set of points in the plane subdivides their convex hull into triangles whose circumcircles do not contain any of the points; that is, each circumcircle has its gen ...
. VTK has an information visualization
Data and information visualization (data viz/vis or info viz/vis) is the practice of designing and creating Graphics, graphic or visual Representation (arts), representations of a large amount of complex quantitative and qualitative data and i ...
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 __NOTOC__
Kitware, Inc. is a technology company headquartered in Clifton Park, New York. The company is involved in the research and development of open-source software in the fields of computer vision, medical imaging, visualization, 3D data pu ...
, 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
Sandia National Laboratories (SNL), also known as Sandia, is one of three research and development laboratories of the United States Department of Energy's National Nuclear Security Administration (NNSA). Headquartered in Kirtland Air Force B ...
, Livermore National Laboratory, Los Alamos National Laboratory
Los Alamos National Laboratory (often shortened as Los Alamos and LANL) is one of the sixteen research and development Laboratory, laboratories of the United States Department of Energy National Laboratories, United States Department of Energy ...
funded the development of VTK and even developed a number of VTK modules themselves.[ VTK forms the core of the 3DSlicer 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 Laboratory, laboratories of the United States Department of Energy National Laboratories, United States Department of Energy ...
to process nearly a Petabyte
The byte is a unit of digital information that most commonly consists of eight bits. Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable un ...
of data.
Later VTK was expanded to support the ingestion, processing and display of informatics
Informatics is the study of computational systems. According to the Association for Computing Machinery, ACM Europe Council and Informatics Europe, informatics is synonymous with computer science and computing as a profession, in which the centra ...
data. This work was supported by Sandia National Laboratories
Sandia National Laboratories (SNL), also known as Sandia, is one of three research and development laboratories of the United States Department of Energy's National Nuclear Security Administration (NNSA). Headquartered in Kirtland Air Force B ...
under the 'Titan' project.
Criticism
In 2013, a survey paper on visualization for radiotherapy
Radiation therapy or radiotherapy (RT, RTx, or XRT) is a treatment using ionizing radiation, generally provided as part of cancer therapy to either kill or control the growth of malignant cells. It is normally delivered by a linear particle ...
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 proprietary CUDA
In computing, CUDA (Compute Unified Device Architecture) is a proprietary parallel computing platform and application programming interface (API) that allows software to use certain types of graphics processing units (GPUs) for accelerated gene ...
from NVidia
Nvidia Corporation ( ) is an American multinational corporation and technology company headquartered in Santa Clara, California, and incorporated in Delaware. Founded in 1993 by Jensen Huang (president and CEO), Chris Malachowsky, and Curti ...
, no support of out-of-core rendering 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 libraries like Sandia's Kokkos. 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
ParaView is an open-source multiple-platform application for interactive, scientific visualization. It has a client–server architecture to facilitate remote visualization of datasets, and generates level of detail (LOD) models to maintain in ...
* :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 VTK
Some 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 and information visualization software