# VTK 9.6.0 Release Planning

**URL:** https://discourse.vtk.org/t/vtk-9-6-0-release-planning/15760
**Category:** Announcements
**Created:** [June 25, 2025, 7:09pm UTC](https://discourse.vtk.org/t/vtk-9-6-0-release-planning/15760 "2025-06-25T19:09:56Z")
**Posts on this page:** 15
**Page:** 1

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.vtk.org/user_avatar/discourse.vtk.org/mwestphal/32/19_2.png) [@mwestphal](https://discourse.vtk.org/u/mwestphal)
#### Post date: [June 25, 2025, 7:09pm UTC](https://discourse.vtk.org/t/vtk-9-6-0-release-planning/15760/1 "2025-06-25T19:09:56Z")

</div>

# VTK Release Plan

As announced in this [post](https://discourse.vtk.org/t/vtk-9-4-0-release/14577), 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**

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.vtk.org/user_avatar/discourse.vtk.org/mwestphal/32/19_2.png) [@mwestphal](https://discourse.vtk.org/u/mwestphal)
#### Post date: [November 12, 2025, 7:21am UTC](https://discourse.vtk.org/t/vtk-9-6-0-release-planning/15760/2 "2025-11-12T07:21:21Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.vtk.org/user_avatar/discourse.vtk.org/mwestphal/32/19_2.png) [@mwestphal](https://discourse.vtk.org/u/mwestphal)
#### Post date: [December 15, 2025, 2:06pm UTC](https://discourse.vtk.org/t/vtk-9-6-0-release-planning/15760/3 "2025-12-15T14:06:53Z")

</div>

> [@mwestphal](#):
>
> 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.

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.vtk.org/user_avatar/discourse.vtk.org/mwestphal/32/19_2.png) [@mwestphal](https://discourse.vtk.org/u/mwestphal)
#### Post date: [December 19, 2025, 4:37pm UTC](https://discourse.vtk.org/t/vtk-9-6-0-release-planning/15760/4 "2025-12-19T16:37:23Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.vtk.org/user_avatar/discourse.vtk.org/mwestphal/32/19_2.png) [@mwestphal](https://discourse.vtk.org/u/mwestphal)
#### Post date: [January 5, 2026, 4:25pm UTC](https://discourse.vtk.org/t/vtk-9-6-0-release-planning/15760/5 "2026-01-05T16:25:17Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.vtk.org/user_avatar/discourse.vtk.org/mwestphal/32/19_2.png) [@mwestphal](https://discourse.vtk.org/u/mwestphal)
#### Post date: [January 14, 2026, 9:49am UTC](https://discourse.vtk.org/t/vtk-9-6-0-release-planning/15760/6 "2026-01-14T09:49:35Z")

</div>

Deprecation update have just been merged in master, you can now deprecate using `VTK_DEPRECATED_IN_9_7_0`

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.vtk.org/user_avatar/discourse.vtk.org/mwestphal/32/19_2.png) [@mwestphal](https://discourse.vtk.org/u/mwestphal)
#### Post date: [January 19, 2026, 8:55am UTC](https://discourse.vtk.org/t/vtk-9-6-0-release-planning/15760/7 "2026-01-19T08:55:17Z")

</div>

VTK v9.6.0-RC2 is available on gitlab and the python wheel have been generated this time:

> **[Client Challenge](https://pypi.org/project/vtk/9.6.0rc2/)**

We will of course delay the full release a bit.

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.vtk.org/user_avatar/discourse.vtk.org/mwestphal/32/19_2.png) [@mwestphal](https://discourse.vtk.org/u/mwestphal)
#### Post date: [January 29, 2026, 2:35pm UTC](https://discourse.vtk.org/t/vtk-9-6-0-release-planning/15760/8 "2026-01-29T14:35:25Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![akaszynski](https://discourse.vtk.org/user_avatar/discourse.vtk.org/akaszynski/32/10751_2.png) [@akaszynski](https://discourse.vtk.org/u/akaszynski)
#### Post date: [February 2, 2026, 4:24pm UTC](https://discourse.vtk.org/t/vtk-9-6-0-release-planning/15760/9 "2026-02-02T16:24:36Z")

</div>

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)?

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.vtk.org/user_avatar/discourse.vtk.org/mwestphal/32/19_2.png) [@mwestphal](https://discourse.vtk.org/u/mwestphal)
#### Post date: [February 2, 2026, 4:35pm UTC](https://discourse.vtk.org/t/vtk-9-6-0-release-planning/15760/10 "2026-02-02T16:35:27Z")

</div>

I suppose the best place to look is here: [https://gitlab.kitware.com/vtk/vtk/-/tree/master/.gitlab/ci?ref\_type=heads](https://gitlab.kitware.com/vtk/vtk/-/tree/master/.gitlab/ci?ref_type=heads)

---

<div class="post-metadata">

### Author: ![akaszynski](https://discourse.vtk.org/user_avatar/discourse.vtk.org/akaszynski/32/10751_2.png) [@akaszynski](https://discourse.vtk.org/u/akaszynski)
#### Post date: [February 2, 2026, 6:15pm UTC](https://discourse.vtk.org/t/vtk-9-6-0-release-planning/15760/11 "2026-02-02T18:15:36Z")

</div>

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:

> <https://github.com/pyvista/pyvista/pull/8259#issuecomment-3836827036>
>
> 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.

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.vtk.org/user_avatar/discourse.vtk.org/mwestphal/32/19_2.png) [@mwestphal](https://discourse.vtk.org/u/mwestphal)
#### Post date: [February 2, 2026, 6:42pm UTC](https://discourse.vtk.org/t/vtk-9-6-0-release-planning/15760/12 "2026-02-02T18:42:05Z")

</div>

Not the right thread indeed, please open an issue.

---

<div class="post-metadata">

### Author: ![bassfaye](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/b/ba9def/32.png) [@bassfaye](https://discourse.vtk.org/u/bassfaye)
#### Post date: [February 5, 2026, 11:08am UTC](https://discourse.vtk.org/t/vtk-9-6-0-release-planning/15760/13 "2026-02-05T11:08:16Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.vtk.org/user_avatar/discourse.vtk.org/mwestphal/32/19_2.png) [@mwestphal](https://discourse.vtk.org/u/mwestphal)
#### Post date: [February 5, 2026, 12:23pm UTC](https://discourse.vtk.org/t/vtk-9-6-0-release-planning/15760/14 "2026-02-05T12:23:08Z")

</div>

> [@bassfaye](#):
>
> Will the full release include vtkONNXInference? I try to build the RC2 with vtkFiltersONNX but I’m having issues.

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.

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.vtk.org/user_avatar/discourse.vtk.org/mwestphal/32/19_2.png) [@mwestphal](https://discourse.vtk.org/u/mwestphal)
#### Post date: [March 20, 2026, 2:00pm UTC](https://discourse.vtk.org/t/vtk-9-6-0-release-planning/15760/15 "2026-03-20T14:00:42Z")

</div>

VTK 9.6.1 release will soon be started, it will be available by the end of next week.
