mwestphal
(Mathieu Westphal (Kitware))
June 25, 2025, 7:09pm
1
VTK Release Plan
As announced in this post , VTK now follows a regular (calendar-based) release plan.
Expect a minor release every 6 months with intermediate patch releases in between, as needed.
Depending on the features added to the release, the release may become a major release.
The master and release branches will split one month and a half before the scheduled release date. Please ensure that all feature branches are merged before the split.
A proposed detailed release plan will be announced a few weeks before each release.
Following this schedule, the next planned releases are as follows:
VTK v9.6.0 is planned for December 2025
VTK v9.7.0 is planned for June 2026
6 Likes
mwestphal
(Mathieu Westphal (Kitware))
November 12, 2025, 7:21am
2
Here is the precise planning for VTK v9.6.0 release:
12/12/2025: Release split, no new features will be going into VTK 9.6.0 after this date
12/12/2025 to 01/17/2026: Release candidates are published and tested. Critical bug fixes are integrated into the VTK release branch.
01/16/2026: VTK 9.6.0 is released.
3 Likes
mwestphal
(Mathieu Westphal (Kitware))
December 15, 2025, 2:06pm
3
Mathieu Westphal (Kitware):
12/12/2025: Release split, no new features will be going into VTK 9.6.0 after this date
Split has been delayed a bit and will happen on december 16.
mwestphal
(Mathieu Westphal (Kitware))
December 19, 2025, 4:37pm
4
Split is ongoing and should be done by today’s end. please hold off on merging until then.
Once this is done, we will be in release candidate phase.
Please make sure to ping the release team ( @sankhesh or myself @mwestphal ) for approval (+1 or +2) before merging or backporting to release branch.
1 Like
mwestphal
(Mathieu Westphal (Kitware))
January 5, 2026, 4:25pm
5
Split has been done and VTK 9.6.0-RC1 is available in the gitlab repositiory as a tag.
Sadly the wheels have not been generated, this will be fixed for RC2.
1 Like
mwestphal
(Mathieu Westphal (Kitware))
January 14, 2026, 9:49am
6
Deprecation update have just been merged in master, you can now deprecate using VTK_DEPRECATED_IN_9_7_0
mwestphal
(Mathieu Westphal (Kitware))
January 19, 2026, 8:55am
7
VTK v9.6.0-RC2 is available on gitlab and the python wheel have been generated this time:
We will of course delay the full release a bit.
3 Likes
mwestphal
(Mathieu Westphal (Kitware))
January 29, 2026, 2:35pm
8
We are a bit late, we expect VTK v9.6.0-RC3 to be tagged on January 30th (tomorow) and the full release should happen on February 9th.
1 Like
akaszynski
(Alex Kaszynski)
February 2, 2026, 4:24pm
9
Thanks for releasing the release canidate wheels. It’s really helped us verify PyVista works with the latest wheels and even helped us identify a few regressions within VTK.
We’d like to document the wheel build settings used within VTK for the wheels. Is there a place we could look for that (either source or docs)?
mwestphal
(Mathieu Westphal (Kitware))
February 2, 2026, 4:35pm
10
2 Likes
akaszynski
(Alex Kaszynski)
February 2, 2026, 6:15pm
11
Maybe this isn’t the right thread to ask this in, but is there a reason why threading isn’t enabled by default for the wheels? VTK’s vtkGeometryFilter is quite a bit faster with TBB enabled. See:
main ← maint/deprecate-extract-geometry
Update on `vtkDataSetSurfaceFilter` vs `vtkGeometryFilter`. When building with `… `VTK_SMP_IMPLEMENTATION_TYPE=TBB``, I'm seeing a 4x improvement when using `vtkGeometryFilter` as it's able to utilize multiple threads better than `vtkDataSetSurfaceFilter`.
<details>
<summary>VTK build script</summary>
```bash
#!/usr/bin/env bash
set -e
mkdir -p build
cd build
PYBIN=$(which python)
# yes, python paths are hard coded. I have no idea what I'm doing on nix-os
cmake -GNinja \
-DCMAKE_BUILD_TYPE=Release \
-DVTK_BUILD_TESTING=OFF \
-DVTK_BUILD_DOCUMENTATION=OFF \
-DVTK_BUILD_EXAMPLES=OFF \
-DVTK_DATA_EXCLUDE_FROM_ALL:BOOL=ON \
-DVTK_MODULE_ENABLE_VTK_PythonInterpreter:STRING=NO \
-DVTK_MODULE_ENABLE_VTK_WebCore:STRING=NO \
-DVTK_MODULE_ENABLE_VTK_WebGLExporter:STRING=NO \
-DVTK_MODULE_ENABLE_VTK_WebPython:STRING=NO \
-DVTK_WHEEL_BUILD=ON \
-DVTK_SMP_IMPLEMENTATION_TYPE=TBB \
-DPython3_EXECUTABLE=/nix/store/8v5s2s5ixpn5hn5pivv7ybsg27sinlv7-python3-3.11.14/bin/python3 \
-DPython3_INCLUDE_DIR=/nix/store/8v5s2s5ixpn5hn5pivv7ybsg27sinlv7-python3-3.11.14/include/python3.11 \
-DPython3_LIBRARY=/nix/store/8v5s2s5ixpn5hn5pivv7ybsg27sinlv7-python3-3.11.14/lib/libpython3.11.so \
../
# -DPython3_EXECUTABLE=$PYBIN ../
ninja
# buld wheel
python setup.py bdist_wheel
```
</details>
<details>
<summary>Benchmark code</summary>
```py
import timeit
import vtk
r = vtk.vtkUnstructuredGridReader()
r.SetFileName("/tmp/grid.vtk")
r.Update()
grid = r.GetOutput()
pass_ids = False
ugrid = r.GetOutput()
def ds_filter():
dss = vtk.vtkDataSetSurfaceFilter()
dss.SetInputData(grid)
dss.SetPassThroughCellIds(pass_ids)
dss.SetPassThroughPointIds(pass_ids)
dss.Update()
return dss.GetOutput()
def geo_filter():
gf = vtk.vtkGeometryFilter()
gf.SetInputData(grid)
gf.SetPassThroughCellIds(pass_ids)
gf.SetPassThroughPointIds(pass_ids)
gf.Update()
return gf.GetOutput()
# warmup
n = 20
geo_time = timeit.timeit(geo_filter, number=n) / n
ds_time = timeit.timeit(ds_filter, number=n) / n
geo_time = timeit.timeit(geo_filter, number=n) / n
ds_time = timeit.timeit(ds_filter, number=n) / n
print(f"ds_filter: {ds_time:.6f} s")
print(f"geo_filter: {geo_time:.6f} s")
```
</details>
Benchmark results on a 426,012 cell and 1,541,264 `UnstructuredGrid` (linear, hex-dominant):
```
[nix-shell:~/source/VTK]$ python script.py
ds_filter: 0.080470 s
geo_filter: 0.020019 s
```
I think this is another reason to move to `vtkGeometryFilter`. However, note that by default, VTK wheels are built with `VTK_SMP_IMPLEMENTATION_TYPE=SEQUENTIAL`, which means that we won't see the performance benefits from this unless Kitware builds their wheels with multi-threaded support.
mwestphal
(Mathieu Westphal (Kitware))
February 2, 2026, 6:42pm
12
Not the right thread indeed, please open an issue.
bassfaye
(Bassirou FAYE)
February 5, 2026, 11:08am
13
Thanks for information and the releases candidate. Will the full release include vtkONNXInference? I try to build the RC2 with vtkFiltersONNX but I’m having issues.
mwestphal
(Mathieu Westphal (Kitware))
February 5, 2026, 12:23pm
14
If you mean the source code, of course. If you mean the python wheel, I’m afraid not. Please open an issue if you have trouble building with ONNX.