VTK v9.4.0
The Visualization Toolkit (VTK) release planning team is happy to announce that v9.4.0 is now available. For source, data, documentation, and Python wheel packages, please visit the VTK download page.
Detailed release notes are published at https://gitlab.kitware.com/vtk/vtk/-/blob/v9.4.0/Documentation/release/9.4.md
Although this is a minor release, many enhancements have been made since v9.3.1. Some of the changes are highlighted below.
Highlights
A major improvement to VTK comes in the form of its Python bindings. With recent changes to the wrapper code, these bindings are more closely aligned with the expectations of native Python developers. VTK classes can now be instantiated with parameters during construction in Python. Additionally, pipeline connections can be established using the `>>
` operator. This new syntax allows VTK application code to be more concise and in line with the Python philosophy of simplicity. Read all about this new syntax here: https://www.kitware.com/vtk-9-4-a-step-closer-to-the-ways-of-python/
Another significant enhancement to VTK is the introduction of the vtkImplicitArray
template class. This class provides a new data array interface that allows for the dynamic computation of data array tuple values using mapping functions. You can read more about it here: https://www.kitware.com/vtkimplicitarrays-a-new-vtk-framework-for-manipulating-array-like-data/.
The new CellGrid
module offers advanced discretization support for higher-order and discontinuous cells. For more details, check out the blog post here: https://www.kitware.com/novel-discretization-and-formulation-support-in-vtk-and-paraview/.
The new vtkForEach
and vtkEndFor
filters enable the creation of sub-pipeline loops over a custom execution range. For instance, these looping capabilities can be useful for processing specific portions of a temporal data pipeline repeatedly across different time steps. Additionally, other new filters such as vtkSpatioTemporalHarmonicsAttribute
, vtkCriticalTime
, and vtkForceStaticMesh
have been introduced. VTK continues to enhance its I/O capabilities by adding new readers, writers, and scene exporters that support various data formats across the scientific visualization spectrum.
As for rendering, the introduction of the ANARI rendering module enables VTK applications to render scenes using path tracing with various ANARI implementations. By utilizing a higher-level rendering API like ANARI, VTK aims to achieve portable rendering via a single API across different systems. The OpenGL rendering features in VTK now utilize glad
to load the appropriate OpenGL library at runtime, allowing a single build of VTK to function across different rendering setups.
The WebGPU rendering module has added support for compute shaders, empowering VTK developers to take advantage of the immense parallel processing capabilities of GPUs for computational tasks. New classes for coverage-based and occlusion-based view frustum culling utilize the new WebGPU compute API. For more information about the new compute API, please visit: https://www.kitware.com/webgpu-compute-api-in-vtk/.
The vtkObjectManager
and the new marshaling infrastructure enable object synchronization via serialization and deserialization from within VTK. This construct is utilized in web-local environments via vtk-wasm. A detailed description of this new capability is provided here: https://www.kitware.com/vtk-wasm-and-its-trame-integration/
VTK’s AR/VR/XR support has been enhanced by adding a collaboration mode across CAVE systems and improved depth rendering for augmented reality devices like Microsoft Hololens 2. The new zSpace module brings VTK applications to the zSpace devices. Read more about zSpace support here: https://www.kitware.com/zspace-support-now-available-in-vtk-and-paraview-binary-release/
Acknowledgments
VTK 9.4.0 is brought to you by the efforts of numerous developers who made over 4000 commits over the last 10 months. We’d like to thank all the contributors, issue reporters, feature requesters, infrastructure supporters, as well as, upstream third-party library authors. A special shout-out goes to those who tested the release candidates.
The next release v9.5.0 is expected to be released in the summer of 2025 with an intermediate patch release v9.4.1 likely.
Citing VTK
When citing VTK in your scientific research, please mention the following work:
Schroeder, Will; Martin, Ken; Lorensen, Bill (2006), The Visualization Toolkit (4th ed.), Kitware, ISBN 978-1-93
With respect to the new Python API, the VTK Examples now have around 380 examples demonstrating 628 classes see: PythonicAPI also (PythonicAPIComments)[https://examples.vtk.org/site/PythonicAPIComments/] will provide you with comments pointing out the new features af the API and pointers to specific examples to get you started.