← Back to all sparks
I

ITK

DEVOPS
Velocity2.5

Insight Toolkit for N-dimensional scientific image analysis and registration

ITK is running a 6.0 modernization beta and a 5.4 maintenance line side by side

medical-imagingcpp-modernizationpython-bindingscmakemaintenance-line
Current state
ITK is a C++ toolkit for N-dimensional scientific and medical image analysis, with widely used Python bindings. Two lines ship in parallel: 6.0 betas carrying the breaking modernization work — C++17 required, ITKv4 compatibility and deprecated APIs removed, namespaced CMake targets for every module — and 5.4 patches delivering steady maintenance to users who cannot move yet, including a GDCM CVE backport, FFTW SIMD selection, and GIL release during Python operations.
Where it's heading
The 6.0 effort is a cleanup release rather than a feature release: its content is what gets deleted and what gets required, not what gets added. That has a predictable consequence — the 5.4 line has to stay productive for a long time, which is why maintenance patches keep landing real performance work rather than only fixes. The other visible thread is Python taking priority over C++ in the maintenance line, with the GIL release, NumPy buffer safety, and the default thread backend switch from TBB to Pool all aimed at Python users.
Prediction
The Beta 2 notes place a first release candidate next, which puts the C++17 requirement and the ITKv4 removal in front of downstream projects for real. The notes give no indication of how long the 5.4 line continues past that.

Recent moves

  1. 19h ago

    5D NRRD, 32-bit TIFF and a new default thread backend in ITK 5.4.7

    A maintenance release with unusually concrete wins: NRRD gains 5D read and write for time sequences of vector and color volumes, TIFF handles signed and unsigned 32-bit integers, and diffusion tensor reconstruction stops recomputing its tensor-basis SVD per voxel. Python packages switch their default thread backend from TBB to Pool, continuing the maintenance line's Python emphasis.

    View source ↗
  2. 3mo ago

    GIL release and a GDCM CVE backport in ITK 5.4.6

    Python wrapping can now release the GIL during ITK operations, on by default, which matters for anyone calling ITK from threaded Python. Alongside it: ABI-safe FFTW SIMD baseline selection, a backported GDCM CVE fix, and a long list of stability corrections spanning Bresenham line construction, the Voronoi generator and IPL image IO.

    View source ↗
  3. 4mo ago

    Namespaced CMake module targets in ITK 6.0 Beta 2

    Every ITK module now exports a namespaced interface target with proper transitive dependency resolution, plus factory meta-modules that collapse image, mesh and transform IO into single link targets. It replaces the old ITK_USE_FILE and bulk ITK_LIBRARIES pattern, which is a real ergonomic gain for downstream builds without changing what the library computes.

    View source ↗
  4. 8mo ago

    ITK 5.4.5 adds an AGENTS.md for AI contribution workflows

    Mostly a security and correctness patch — zero-sized CompositeTransforms and an out-of-bounds GDCM access, both flagged as possible vulnerabilities. Its distinguishing addition is process rather than code: an AGENTS.md documenting project structure and contribution rules so coding agents can be pointed at maintenance tasks.

    View source ↗
  5. 9mo ago

    ITK 6.0 Beta 1

    ⚡ SPARK

    The release that defines what ITK 6 is: 1,115 changes whose headline content is removal rather than addition. It sets the constraints — C++17, no ITKv4 compatibility, no deprecated module — that every later 6.0 beta builds within, and it is the reason the 5.4 maintenance line has had to stay active alongside it.

    View source ↗
  6. 1y ago

    ITK 5.4.4 maintenance: GraalPy support and Python 3.9 floor

    Routine maintenance holding API stability: a GDCM JPEG2000 cleanup crash fix, TIFF reader reuse correction, documentation edits, and platform housekeeping including GraalPy compatibility and dropping Python builds below 3.9. Nothing here changes what the toolkit can do.

    View source ↗