ITK 6.0 Beta 2 has been released!

We are excited to announce the second beta release of ITK 6.0! This release introduces modern CMake module targets — a major build system modernization that makes it easier than ever to link ITK into your projects. Alongside this headline feature, Beta 2 delivers continued C++ modernization, Python enhancements, performance improvements, and expanded agentic engineering practices. As a beta release, we actively encourage the community to test and provide feedback as we approach the first Release Candidate. :rocket: :sparkles: :tada:

:flashlight: Highlights

CMake Module Targets

The most significant change in Beta 2 is the introduction of modern CMake interface library targets for every ITK module. Each module now exports a namespaced target — for example, ITK::ITKCommonModule, ITK::ITKImageGradientModule, or ITK::ITKThresholdingModule — enabling clean, explicit dependency management with proper transitive dependency resolution.

Pre-defined factory meta-modules simplify linking for common IO use cases:

  • ITK::ITKImageIO — all image IO modules (JPEG, PNG, NIFTI, DICOM, etc.)
  • ITK::ITKMeshIO — all mesh IO modules
  • ITK::ITKTransformIO — all transform IO modules

Before (ITK 5):

find_package(ITK REQUIRED)
include(${ITK_USE_FILE})

add_executable(HelloWorld HelloWorld.cxx)
target_link_libraries(HelloWorld ${ITK_LIBRARIES})

After (ITK 6):

find_package(ITK REQUIRED)
itk_generate_factory_registration()

add_executable(HelloWorld HelloWorld.cxx)
target_link_libraries(HelloWorld ITK::ITKCommonModule)

For projects that read images, simply link the IO meta-module:

find_package(ITK REQUIRED)
itk_generate_factory_registration()

add_executable(MyFilter MyFilter.cxx)
target_link_libraries(
  MyFilter
  PRIVATE
    ITK::ITKImageGradientModule
    ITK::ITKImageIO
)

UseITK.cmake (${ITK_USE_FILE}) is now deprecated in favor of these interface library targets. ITK can also be consumed via CMake FetchContent, illustrated in the new HelloFetchITK example.

For full migration details, see the ITK 6 Migration Guide — also a useful reference for both humans and AI agents working with ITK projects.

We especially welcome feedback on the CMake module targets during this beta period. Please report any issues you encounter with the new build system on GitHub.

C++ Modernization

  • VariableLengthVector gains a std::vector-like interface: front(), back(), data(), and a (length, value) constructor
  • FixedArray gains front(), back(), and empty() member functions
  • ImageConstIterator::ComputeIndex() added as the replacement for GetIndex() (now deprecated), with performance benefits from avoiding redundant offset table lookups
  • New itk::MakeIndexRange utility functions for convenient index-space iteration
  • SobelOperator extended to N-D with corrected 3D coefficients and a UseLegacyCoefficients option
  • NumericTraits::GetLength is now constexpr
  • Replaced vnl/vnl_sample.h with standard <random> across tests
  • Expanded use of constexpr, [[nodiscard]], aggregate initialization, and range-based for loops

Python Enhancements

  • Python 3.10+ is now required for wrapping
  • New ITK_PYTHON_RELEASE_GIL build option enables GIL release during ITK filter execution
  • Updated bundled pygccxml to v3.0.2

Performance Improvements

  • Tuned ImageRegionRange copy used in CastImageFilter
  • IndexRange iterators made significantly faster via m_Position data member
  • ImageRegionRange bypasses OffsetTable[0] (which is always 1)
  • Prefer “with index” iterators when the index is used in each iteration, avoiding redundant ComputeIndex() calls

Third-Party Library Updates

  • GDCM 3.2.2, double-conversion 3.4.0, Expat, VXL, NrrdIO, CastXML v2026.01.30

Platform & CI Updates

  • Updated CI to Windows 2022 images
  • Added Linux ARM CI testing
  • Migrated to macOS 15 runners (Apple Silicon)
  • Support building with system Eigen3 >= 5
  • New ITK_FREEZE_REMOTE_MODULES option to prevent remote module updates during build

Remote Module Updates

  • CudaCommon v2.0.0 with __cuda_array_interface__ support for interoperability with CuPy and PyTorch
  • RTK major updates: new Python applications, CUDA improvements, spectral CT documentation
  • Remote modules updated for CMake modernization (itk_module_add_library)

Agentic Engineering

ITK continues to advance its agentic engineering practices, improving the developer experience with agent-friendly workflows, better CI, and review agents. In this release, copilot-swe-agent[bot] contributed the GIL release feature, NumericLocale GoogleTest coverage, bug fixes for imread and locale-dependent NRRD parsing, and more. The AGENTS.md guide and GitHub Copilot setup workflow continue to be refined.

Now is as great a time as ever to contribute to ITK and learn from an active and friendly community of experienced medical imaging professionals.

:floppy_disk: Download

Python Packages

Install ITK Python packages with:

pip install --pre --upgrade itk

Note: Use --pre flag to install beta releases.

Guide and Textbook

Library Sources

Testing Data

Unpack optional testing data in the same directory where the Library Source is unpacked.

Checksums and Signatures

:open_book: Migration Guide

For detailed guidance on migrating existing code to ITK 6.0, please consult the ITK 6 Migration Guide. Key changes in Beta 2 include:

  • Modern CMake interface library targets replacing UseITK.cmake
  • Python 3.10+ requirement for wrapping
  • ImageConstIterator::ComputeIndex() replacing GetIndex()
  • GIL release option for Python multithreading

:folded_hands: Acknowledgments

Thank you to the 22 contributors who made ITK 6.0 Beta 2 possible!

We extend a special welcome to our 5 new contributors: Cavan Riley, Yu-An Chen, Axel Garcia, Michael Cho, and nslay. Thank you for joining the ITK community!

We are grateful for Axel Garcia, Ben Boeckel, Brad King, Bradley Lowekamp, Cavan Riley, Cyril Mory, Dave Chen, Davis Marc Vigneault, Dženan Zukić, Hans Johnson, Jon Haitz Legarreta Gorroño, Lucas Gandel, Matt McCormick, Michael Cho, Niels Dekker, nslay, Paul Elliott, Sean McBride, Simon Rit, Tom Birdsong, Vladimir S. FONOV, Yu-An Chen, and the entire ITK community for their code contributions, testing, documentation efforts, and invaluable feedback.


:speaking_head: What’s Next

ITK 6.0 Release Candidate 1

Following community testing and feedback on Beta 2, the next ITK 6 release will be the first Release Candidate. Please test the beta — especially the new CMake module targets — in your workflows and report any issues.

ITK 5.4 Long-Term Support

ITK 5.4 will continue to receive maintenance updates as a long-term support (LTS) release, providing:

  • Critical security patches
  • Bug fixes for production environments
  • Full support for Intel macOS
  • Backward compatibility for existing applications

Community Feedback

We actively welcome your feedback on ITK 6.0 Beta 2! Please report issues on GitHub or the ITK Discourse forum. Feedback on the CMake module targets is especially valuable as we finalize this major change for the Release Candidate.

Enjoy ITK!

ITK Changes Since v6.0b01

Ben Boeckel (4):

Enhancements

  • update-common.sh: synchronize with upstream (1bc98267c9)
  • update-third-party: sync with upstream (66a45d3bfc)

Style Changes

  • git-fetch-file: track update-common.sh (99c9c92652)
  • thirdparty: disable exact tree matching (78982a2b08)

Brad King (4):

Enhancements

  • itkexpat: Update source layout to make includes ITK-specific (8ec19eb1d6)
  • itkexpat: Update includes to reliably use ITK’s expat headers (20fd88b57b)
  • itkexpat: Add script to import from upstream (b12ac06e7e)
  • itkexpat: Remove source tree to make room for fresh import (4957068ebe)

Bradley Lowekamp (79):

Enhancements

  • Improve initialization in Path classes (9143a4d820)
  • Use ImageRegionRange iterator in ImageAlgorithm::Copy (5b58520f19)
  • Use GTest::gtest and GTest::gtest_main targets (51c24a5a0f)
  • Check IPO/LTO support once globally for all wrapper modules (48b834b5b1)
  • Remove legacy and unused Wrapping EXECUTE_OUTPUT_PATH (ffaa0c946e)
  • Use imported OpenCL targets from CMake (bf1566b687)
  • Use OpenCL imported target in GPUCommon (e3b18e7142)
  • Use target-based includes for ITK modules (87cc629cd4)
  • Create CMake interface libraries for each ITK module (d159777773)
  • Add modern CMake linking with ITK interface modules to examples (602a5e03c6)
  • Configure factory meta-modules with registration properties (056d0a60ab)
  • Link module libraries to interface modules libraries (01971b74c8)
  • Add namespace support for all ITK targets (6dd596e53f)
  • Update Installation Example to use ITK Interface libraries (377423ff66)
  • enable multiple call to itk_generate_factory_registration (bf531980db)
  • Add deprecation warning to UseITK usage. (14665e644c)
  • Allow modules to override GENEX INCLUDE variables (f9638701f6)
  • Remove CMake code block for unsupported versions (22d4ff4f32)
  • Update to use PRIVATE and PUBLIC linking modes (8a4dd39dd6)
  • MINC update script properly ignores trailing whitespace (0bad5e05c0)
  • Enable gersemi to run on ITK CMake files in ThirdParty directory (5a8fb4c71b)
  • teach itk_module_macro to support NAMESPACE argument (d8f37be021)
  • Use ITK CMake interface targets for all example linking (3048ad4230)
  • Use modern CMake interface libraries for ZLIB (8af1b5c5f6)
  • Support installation of FILE_SET HEADER for module targets (b4399480cd)
  • Update double-conversion to 3.4.0 (1aaaf1bef9)
  • Update double-conversion CMake to target_includes (1fec0a4dce)
  • Add example project which used ITK Modules and FetchContent (f8c35f0fb2)
  • Conform GDCM to use CMAKE_*OUTPUT_DIRECTORY (d5cf8de3ed)

Performance Improvements

  • Use tuned ImageRangeRegion copy in CastImageFilter (2e8c70a449)

Documentation Updates

  • Add migration guide for new CMake Interface Libraries (93df383cb9)
  • Improve documentation of migration of factory registration (f1511e1261)
  • Add migration guide to updated GTest target names (1648e8e25d)
  • Fix invalid Doxygen \ingroup references in ~77 headers (0f802a819c)

Platform Fixes

  • Fix ExternalData when ITK is built with FetchContent (10d63b163d)
  • Add missing itkImageScanlineIterator header (ecbf2e8703)
  • Set CMake output directories as normal variables (cfca4368b9)
  • Update ITKReview depends and linkage (ada67f60ac)
  • Use itk_module_add_library in MINC IO modules (3677357db3)
  • Address linking error with Review Tests (91ca2bafa6)
  • Restore reference ImageAlgorithm::Copy (523a1e1eab)
  • Address vasprintf compilation error on mingw (31fd9a2e9f)
  • Do not use itkWarningMacro inside a non-itk::Object (5f0bb22409)
  • Explicitly instantiate VTK QuickView::AddImage for 3 char types (0cddbcf950)
  • Fix missing ‘typename’ error (2ecb0a9c53)
  • Remove ITK_USE_FILE from wrapping (8c4d976475)

Bug Fixes

  • Backport GDCM out-of-bounds fix (7db3af9585)
  • use castxml git tags for source code download (b56081a0bc)
  • Fix duplicate output files in Convolution streaming tests (114b1931e9)
  • Do not set CMAKE_CXX_STANDARD in ITKConfig (b2e4cd0724)
  • Add missing module dependencies detected with Header Tests (79de4aebd4)
  • Fix order and linkage of itkTestDriver (2b438bc7b0)
  • Fix linkage in test executable to use standard test libraries (ef765a2490)
  • Update remote modules to use itk_module_add_library (6b64534f36)
  • Fix installation of NrrdIO.h (1807f1196c)
  • Update remotes with bug fixes related to cmake modernization (3458fd735e)
  • Remove unneeded check for empty list before sort (32b0d07ba8)
  • Fix detection of loading current module (0aae137e0a)
  • Modular interface support for third-party library files (2b96aa4836)
  • Fix PhilipsREC module to use standard ITK module macros (bf8090df3c)
  • use itk_module_add_library in bridge libraries (9c7a190957)
  • Do not add generator expressions to module system includes (b53e305201)
  • Use generator expression for Python include path for build interface (13844cb0f8)
  • Disable adding dependency for externally built modules (77c1df1700)
  • Fix message about UseITK begin deprecated (3ccfa145b0)
  • Specify internally built fftw libraries as full paths (a899f48354)
  • Use itk_module_add_library in DCMTK Module (46fa88914e)
  • Add DCMTK support for namespace targets (52f37c8e7a)
  • Fix GPUPDEDeformable module dependencies (96d92c3fef)
  • Use TEST_LIBRARIES for GPUPDEDeformable test drivers (9a709e8eec)
  • Fix GDCM posix_memalign undefined with mingw (17e172dc72)
  • Fix GDCM posix_memalign undefined with mingw (5e82819637)
  • Add deprecated alias libraries to GTest::gtest (10c8986df0)
  • Restore GTest namespace (df43a58465)
  • Do not specify GTest targets as LIBRARIES for ITKGoogleTest (8dd7198bb2)
  • Replace std::abs with std::fabs to avoid ambiguity (40c64693e1)
  • Add missing typename for dependent type (b6c3274649)

Style Changes

  • Run gersemi on ITK’s CMake code for thirdparty libraries (ef3f7ba06f)
  • Apply gersemi style to a deeper layer in Thirdparty libraries (7401fed2af)

Dave Chen (2):

Style Changes

  • Updated CommentSpellCheck version for disable feature (b99c98a618)
  • Use spell checking disable (5e788ec911)

Dženan Zukić (17):

Enhancements

  • Increment bundled GDCM version from 3.2.1 to 3.2.2 (1773eb625b)
  • Update CI images from Windows-2019 to Windows-2022 (28e6e22ef6)
  • ITK_FREEZE_REMOTE_MODULES option to prevent remote module updates (5246d86839)
  • Update remote modules using a script (37576fa614)

Documentation Updates

  • Update default.natstepfilter with content from Visual Studio 2022 (91e252ae14)
  • BSplineTransform does not have ImageConstPointer type alias (f2d45f9c4c)
  • BSplineDeformableTransform does not have ImageConstPointer typedef (0c78a3d26a)

Platform Fixes

  • Fix compile error introduced by 3279b33 in OpenCVVideoIOTest (de744fc9df)
  • Fix doc-string of TreeIteratorBase::RemoveChild from Deprecated (f2c34d66a2)

Bug Fixes

  • Move copilot-setup-steps.yml to correct directory (71d02dbd36)
  • Make copilot-setup-steps.yml a valid GitHub actions YML file (76fe6e3913)
  • env does not seem to be expanded in copilot-setup-steps.yml (a4c5b216e2)

Style Changes

  • Remove some unnecessary named cmake else clauses in DCMTK (259217c066)
  • Add vtkSmartPointer to Visual Studio’s NoStepInto list (0b550f9701)
  • Fix CMake style of Python wrapping tests (cf86bce490)
  • Fix empty lines at the end of file in 5.4.5 release notes (930e379c34)
  • Add .gitattributes for MINC to suppress white-space checking (abd465294a)

Expat Upstream (1):

Miscellaneous Changes

GDCM Upstream (1):

Miscellaneous Changes

Google double-conversion Maintainers (1):

Miscellaneous Changes

  • DoubleConversion 2025-12-08 (9dd6227e) (4a75c1938d)

HDF5 Maintainers (1):

Platform Fixes

  • Patch HDF5 compilation issue with mingw and _Float16 (207a73e3a7)

Hans J. Johnson (89):

Enhancements

  • Wrapping of SobelOperator only for 2D or 3D (f61993e582)
  • Set ITK specific library build requirements (8cb80e643e)
  • Pre-update tag changes for pygccxml (2e3b0ed0aa)
  • Post Merge updates. (20684c39c1)
  • Update CastXML command to use --castxml-output=1 (9049dc4e63)
  • Improve get_type function to handle elaborated_t types (f0ee9e241f)
  • Handle array_t types in get_declaration_string (89a8499bb7)
  • Use re.sub to replace std::basic_string (40e4a46f2a)
  • Standardize regex patterns in notWrapped list (79eb2abb41)
  • Require python3.10 or later for python wrapping. (f05c33c7a0)
  • Update CI and scripts to require Python 3.10, (8b8eaccdef)
  • Only support std::complex supported by c++ (98b3016be8)
  • Remove of old stdcomplex adaptor code (3a435c1190)
  • Remove unused stdcomplexLD adaptor code (464a189a5c)
  • Remove verbose NIfTI debugging from main source (601475aec2)
  • Replace ‘char’ with int8_t when numeric is intended (944f3b09b1)
  • Refactor metadata handling in tests (11297d7564)
  • Add predicate formatter for MetaDataDictionary (036327a224)
  • Add constexpr overloads for itk::Math::abs (3cc3f4a1e6)
  • Simplify itk::Math prime-related functions with constexpr (1e77ea5234)
  • Convert itkMathTest to itkMathGTest (532b323af3)
  • Expand and update VXL configuration options (6032998eca)
  • Setup python with numpy and pytest (099addc78a)
  • Python version exact match requested for range (d783a4f73b)
  • Update NrrdIO from upstream (9f0a5d3888)

Performance Improvements

  • Update CI paths to ignore remote module files (f01386b199)

Documentation Updates

  • Minor documentation fix in release documentation. (c48335bd46)
  • Remove Python long double wrapping (61ea2c7bfd)

Platform Fixes

  • Fix unused variable warning (1b4b00e8df)
  • Remove unused variables in Bridge/NumPy (b5212dbc69)
  • Fix const int float conversion warning (197d06993e)
  • Set minimum CMAKE_CXX_STANDARD for Remote/Modules (cbe6fbbba7)
  • Remove undefined long double swig wrapping (0fb11a2297)
  • Silence warning in Expat config (71225e30a5)
  • Replace np.bool with np.bool_ (5690d5ba51)
  • Add pixi steps without implicit dependancies (c96a4f1761)
  • Speedup CI free-disk-space stage (5e15be76d7)
  • Toolkit Use aggregate types for initialization (7af874d5ab)
  • Tests use aggregate types for initialization (3279b33f97)
  • Simplify pixi configure/build/test (f620940337)
  • Prefer brace initialization (07f5450a71)
  • Silence alloc-size-larger-than warning (bb7c18813a)
  • Update LayerCountType be the same as StatusType (ec284e3297)
  • Update pre-commit command to use --all-files (8c08456d1e)
  • Adjust pyproject.toml to correct Python build output paths (315b3615e6)
  • Debug Python task copies from non-debug build (d01d2981f8)
  • Rename [tool.pixi.project] to [tool.pixi.workspace] (4ec6886c2c)
  • Refactor ccache configuration into standalone CMake module (e9953d2b93)
  • Fix appending logic for Python wrapping file list (5e05dbf2f6)
  • Remove redundant extern “C” (49dbe4481d)
  • Remove redundant MSVC Python linking logic (f5656ba791)
  • Remove unused cmake variables (33d18bac41)
  • Remove unused itkTargetLinkLibrariesWithDynamicLookup.cmake (78e5508c6c)
  • Modularize Python wrapping module creation logic (8ca847fee0)
  • Update Python.h include path, and linkage (4784176870)

Bug Fixes

  • Entire function must be skipped on invalid argument type (9bf6de05c6)
  • Removing open HDF5 files causes segmentation fault (d155450324)

Style Changes

  • Simplify code to be similar in Compute*CircumCenter (05304b2736)
  • Remove unused SSE2 compiler flag checks in CMake configuration (1d300df48a)
  • Remove unused SSE2 compiler flag checks in CMake configuration (00e036fc67)
  • Add logging import and adjust pygccxml import style (0b879a5c15)
  • Refactor type hint generation into _get_typehint (614f4c7029)
  • Extract _extract_kwargs_from_class (141f70a40a)
  • f-string without any placeholders (55114b26fd)
  • Enhance type hint usage and add str casting in remove_class_type (d329665046)
  • Remove outdated comment related to old swig versions. (1b4889484e)
  • Remove unnecessary default argument (b1cdbf9b15)
  • simplify member iteration logic in igenerator.py (bc34d5f8b5)
  • Avoid duplicate constructor definitions (530195c025)
  • Update to properly use angled brackets for std_iostream.i (18014e2956)
  • Fix H5 type specialization formatting (f3f736c8cf)
  • Add semicolons and refactor macro usage in itkVTKImageIOStreamTest (88661bc82a)
  • Fix missing newline in MetaDataDictionary print output (0b2dddbb2d)
  • Refactor MINCImageIOTest4 for consistency and clarity (f654d6ba0e)
  • Update test names in MINCImageIO for clarity and consistency (ab2164bd7c)
  • Make MINCIOFreeTmpDimHandle static and add const qualifiers (c76d77999f)
  • Remove default initialization of volume_data_type in MINCImageIO (e6a442a251)
  • Refactor itkMINCImageIOTest4 for clarity and maintainability (5abae55dea)
  • Fix typos and improve comments in itkHDF5ImageIOStreamingReadWriteTest (cfb2846bba)
  • Remove unnecessary extern “C” linkage (bb4b26b083)
  • Rename safe_abs function to Absolute in itkMath utility (0af4ad4ecf)
  • Use itk::Math::Absolute name directly (2dc299df55)

Miscellaneous Changes

Style Changes

  • Remove testing for impossible situation (d6ae94be59)
  • Refactor cluster search logic (86db0e6cbd)
  • Change unsigned integers to constexpr for compile-time evaluation (6a3351a72c)
  • Upstream clang-format changes applied (2673ad57b6)
  • Remove redundant casting for same types (4daf532cb0)
  • Remove redundant typename in type aliases (ad0eaca3a9)

Matt McCormick (20):

Enhancements

Documentation Updates

  • Update CODE_OF_CONDUCT.md (1aa69025b2)
  • ITK 6.0 Beta 1 release process updates (6658480ead)
  • Use --as-is for pixi run in AGENTS.md (8a1b3cf48c)
  • Use --as-is for pixi run in AGENTS.md (b46eb4a46b)
  • ITK 5.4.5 release notes (cbce2e7973)
  • ITK 6.0b01 release notes (c77d6d13aa)
  • Add AI agent guide for ITK development (ec505d7134)
  • Add AI agent guide for ITK development (8a9622e5ae)
  • Do not upgrade CMake in emulated Linux ARM build (f3aae0f198)
  • Update Python Xcode version to 16.2 for macos-15 runners (acd395990d)

Platform Fixes

  • Update tool.pixi.project to tool.pixi.workspace (56d39f8766)
  • Update Azure Pipelines Windows image to windows-2022 (183b3e0f9e)
  • Update CI ExternalDataVersion from 5.4.3 to 5.4.5 (08d7f9cb74)
  • Revert “COMP: GCC 13 CastXML vector include workaround” (38dacc4123)
  • Migrate macos runners from macos-13 to macos-15-intel (f052bd7aec)
  • Update branch fro ITKClangFormatLinterAction to main (01248b7848)
  • Upgrade from macos-14 to macos-15 in CI (887345a306)
  • Update CastXML binaries to v2026.01.30 (501840febc)

MetaIO Maintainers (1):

Miscellaneous Changes

Michael Cho (2):

Enhancements

  • Support building with system Eigen3 >= 5 (ada8399edb)
  • Support building with system Eigen3 >= 5 (96e01b5d3b)

Niels Dekker (194):

Enhancements

  • Convert HausdorffDistanceImageFilter test to GoogleTest (ad0c622fb2)
  • ITK_GTEST_EXERCISE_BASIC_OBJECT_METHODS macro for GTest based tests (f0dcf9ab9e)
  • ITK_GTEST_EXERCISE_BASIC_OBJECT_METHODS in HausdorffDistance GTest (9c6659e002)
  • Convert DirectedHausdorffDistanceImageFilter test to GoogleTest (16b41efa79)
  • Convert Signed DistanceMapImageFilter tests to GoogleTest (fd6965ebc7)
  • Convert ITKSignedDistanceFunction tests to GoogleTest (7f4e9a8d92)
  • Add ITK_GTEST_SET_GET_BOOLEAN macro for GTest based tests (73d939276a)
  • Convert ContourDirectedMeanDistanceImageFilter test to GoogleTest (2ec4c37051)
  • Replace “vnl/vnl_sample.h” with <random>, in Core tests (f7daf241e8)
  • Convert ContourMeanDistanceImageFilter test to GoogleTest (74bd58fddd)
  • Convert DanielssonDistanceMapImageFilter test to GoogleTest (6e18389cca)
  • Convert ReflectiveImageRegionIterator test to GoogleTest (c1ca19a0b7)
  • Convert FastChamferDistanceImageFilter test to GoogleTest (1cb6591fe3)
  • Convert IsoContourDistanceImageFilter test to GoogleTest (efe84837e2)
  • Replace “vnl_sample.h” with <random> in MinMaxCurvatureFlow tests (2624751828)
  • Replace “vnl_sample.h” with <random> in JoinImageFilterTest (9694ab93bf)
  • Replace “vnl_sample.h” with <random> in OrientImageFilterTest (931c049269)
  • Replace “vnl_sample.h” with <random> in ImageIntensity tests (d4dcb5990d)
  • Replace “vnl_sample.h” with <random> in VoronoiSegmentation tests (6568876c1b)
  • Replace vnl_sample with <random> in SignedDistanceFunction test (fa35af353d)
  • Add std::vector-like interface to VariableLengthVector (122413d157)
  • static_assert SobelOperator can only be instantiated for 2D or 3D (35d6a3d281)
  • Add VariableLengthVector(length, value) constructor (207cb3e923)
  • Add static_assert(VLength > 0) to FixedArray (6b5eed2bec)
  • Add FixedArray::empty(), which always just returns false (ee008258b0)
  • Add front() and back() to FixedArray (0fe7645686)
  • Add front() and back() GoogleTest unit tests to Index, Offset, Size (af42575b13)
  • Replace “vnl_sample.h” with <random> in ConnectedComponent tests (415d2ed579)
  • Convert SobelOperator test to GoogleTest (b0757ab376)
  • Let print_helper operator<< support std::array (dcedc948fd)
  • Make 3D SobelOperator consistent with 2D, add UseLegacyCoefficients (43801b28e7)
  • Add ND support to SobelOperator (965c9657cf)
  • Restore wrapping of SobelOperator for ND (9d7eb49ef2)
  • Add UseLegacyOperatorCoefficients to SobelEdgeDetectionImageFilter (e6d4997c55)
  • Convert GradientDifferenceImageToImageMetric test to GoogleTest (2a56155631)
  • Add legacy Sobel option to GradientDifferenceImageToImageMetric (e049158867)
  • Add SobelOperator.IsUsingLegacyCoefficientsByDefault test (d1a35f8e1e)
  • In the future, no longer use legacy Sobel operator by default (ce1c20309a)
  • Add ComputeIndex() member function to ImageConstIterator (3e5a75a03d)
  • Deprecate ImageConstIterator::GetIndex() in favor of ComputeIndex() (2b7c0770f9)
  • Add itk::MakeIndexRange functions, to ease creating an IndexRange (1a3f4babdc)

Performance Improvements

  • Let ImageRegionRange bypass OffsetTable[0] (which is always 1) (a37bf8133c)
  • Locally cache ComputeIndex() result in filters (d086c8cf96)
  • Locally cache ComputeIndex() result in Watershed Segmenter (c60439c4a1)
  • Use RegionConstIteratorWithIndex in ContourExtractor2DImageFilter (2e75b538a7)
  • Make IndexRange iterators much faster, by m_Position data member (a2fb4bcd80)
  • Use an iterator “with index” when index is used in each iteration (70da5f5dd2)

Documentation Updates

  • Update link INRIA report “Recursively Implementing The Gaussian…” (0f67125a01)
  • Refer to farneback2006 table in RecursiveGaussianImageFilter::SetUp (918b181575)
  • Replace /** with // in hxx file of RecursiveGaussianImageFilter (15196c5582)
  • Add comment to IsUsingLegacySobelOperatorCoordinatesByDefault test (8091b86453)

Platform Fixes

  • Use ImageConstIterator::ComputeIndex() in Review module (33d0084212)

Bug Fixes

  • VTKPolyDataMeshIO should use signed char for the SCHAR cases (2466ed132d)
  • Remove MakePoint, MakeVector and other Make calls from GoogleTest (f6f345af81)
  • EXPECT_EQ in while loop in BSplineTransformGTest unreachable (8edbb7f6ab)
  • Removed underscores from GTest test names (follow-up) (8d5056392c)
  • Avoid copying uninitialized pixels in CastImageFilter (026e0e9059)
  • Let DataObjectError override ExceptionObject::Print (0a363faafb)
  • Make VariableLengthVector::m_Data null when its length is zero (1d87efa529)
  • Math::Absolute(-0.0) should return “plus zero” (+0.0) (28ee565b0b)

Style Changes

  • Use std::array locally in DelaunayConformingQuadEdgeMeshFilter (e466f8f86b)
  • Use std::array locally in itkQuadEdgeMeshEulerOperatorsTestHelper (0c64ed9df2)
  • Use std::array instead of std::vector for local variables in test (20a85b8d58)
  • Use std::array instead of std::vector for local variables in IO (e008f0a0d4)
  • Use CalculateProductOfElements in PatchBasedDenoisingBase filter (3f8579739c)
  • Use CalculateProductOfElements in ImageStatistics/PCA (c1e2f78747)
  • Use CalculateProductOfElements in large image write/read tests (66b4758ca9)
  • Remove unused numberOfPoints from IterativeInverse image filter (78933c1807)
  • Make local ImageAlgorithm variable numberOfInputCorners constexpr (4d2588e6a2)
  • Let BSplineInterpolateImageFunction use Math::UnsignedPower (7f9bbfe6f1)
  • Use GetNumberOfPixels() in ImageKmeansModelEstimator (219546fc8d)
  • Replace this->GetZeroOffset() with OffsetType{} or just {} (9739a764d8)
  • Remove this->GetZeroIndex() calls from ChainCodePath (c1dd6034a3)
  • Remove line breaks before = default (640d609268)
  • Default constructors within class definition instead of hxx file (e7f265f903)
  • Replace SetIndex, SetSize calls with region{ index, size } (7bf41625c8)
  • Replace SetSize, SetIndex calls with region{ index, size } (3bd355aefd)
  • Replace SetIndex, SetSize calls with region = { index, size } (6281dc894b)
  • Replace SetSize, SetIndex calls with region = { index, size } (ed8377444c)
  • Remove local copies of VDimension from ImageIORegionAdaptor (70c0290eb1)
  • Remove local copies of constant template parameters from tests (156e692156)
  • Remove constexpr IndexType start{ 0, 0, 0 } from tests (51976ee9d8)
  • Remove const IndexType start{} variables from tests (36a7f6a799)
  • Replace Allocate(); FillBuffer({}) with AllocateInitialized() (eb4386f3d9)
  • Remove unnecessary FillBuffer(0) calls from TestZeroImages (0d9b76faaa)
  • Use AllocateInitialized() in itkPyBufferTest.py (b9dda91972)
  • Replace Allocate; FillBuffer(0) w/ AllocateInitialized() again (34d91f3313)
  • Use ImageRegionRange in DistanceMap tests (3572b2c806)
  • Make anisotropicSpacing variables in DistanceMap tests const (1b17c41714)
  • Simplify use of spacing of image1 and image2 in DistanceMap tests (6572f46109)
  • Let ImageRegionRange::size() use CalculateProductOfElements() (cb2db342a9)
  • Remove reserve call from MultiResolutionImageRegistrationMethod (93ff353cad)
  • Remove reserve call from itkSTLContainerAdaptorTest (7008d90df6)
  • Remove “2” from “itkDirectedHausdorffDistanceImageFilterTest2” (ada3333270)
  • Remove local zero-filled myIndexType start variables from tests (e1e06b50e5)
  • Replace assignments to size[i] with Filled calls, in tests (9962e2f971)
  • Remove resize(0) calls from constructors (9ff5c6202c)
  • Remove clear() calls from constructors (aa3e2b1929)
  • Remove clear() calls from destructors and “default” them (aec446399f)
  • Replace resize(0) calls with clear() (64782a2588)
  • Default constructors in class definition instead of hxx file (2) (ce2052c6d3)
  • Use generate in tests, assigning values from vnl_sample_uniform (126cc5a523)
  • Use ImageBufferRange with std::iota in Filtering/ImageGrid tests (e757639bc2)
  • Default constructors that only initialized one member in hxx file (a50582def0)
  • Remove T::IndexType index{} from region initialization in tests (f9885d27a0)
  • Remove T::IndexType index{0} from region initialization in test (66676b7867)
  • Do speedImage->FillBuffer(1.0) instead of iteration, in tests (a8f4cfb7b8)
  • Replace loops doing Set(0) with AllocateInitialized(), in tests (027b946698)
  • Replace loops doing Set(0.0) with AllocateInitialized(), in tests (77e3befd35)
  • Remove itk::Index variables from region initialization in tests (2d7b402e62)
  • Remove IndexType index{0} from region initialization in tests (80f8bfb95a)
  • Let DOMNode SetName, SetID, SetText pass std::string by value (a578456212)
  • Do FillBuffer(1) in ImageRandomNonRepeatingIteratorWithIndexTest (19dba2e06a)
  • Do FillBuffer(1) in MultiLevelSetChanAndVeseInternalTermTest (f1ec98b3c5)
  • Do FillBuffer(1.0f) in BoundaryConditionTest (d0a3cb0f3d)
  • Do FillBuffer(3.0) in Filtering/ImageIntensity tests (e812c9a815)
  • Do FillBuffer(1) in MattesMutualInformationImageToImageMetricTest (b9484721c5)
  • Remove zero-index variables from region initialization in tests (669ae8b7e0)
  • Replace FillImage with AllocateInitialized() calls, in tests (081e135c21)
  • Call inputImage->FillBuffer in ImageIntensity tests (1ae411b1b1)
  • Call FillBuffer on inputImage A, B and C in ImageIntensity tests (4a03f35eb0)
  • Let BSplineTransform test use std::generate with ImageBufferRange (2fcf9ba71a)
  • Let ImageAlgorithmCopyTest2 use std::all_of with ImageBufferRange (3c1cc2c2b7)
  • Let PCADecompositionCalculator test use copy + ImageBufferRange (5d070764fe)
  • Remove vnl_sample and noisemag from KullbackLeibler metric test (d081a337b6)
  • Remove #include “vnl/vnl_sample.h” from RegistrationMethodTest_17 (51603bebe6)
  • Replace &*(container.begin()) with container.data() (80477bfff3)
  • Replace *(x.rbegin()) with x.back() in ImageRegionRange (f8ab0c3a34)
  • Use ImageRegionRange in Centered TransformInitializer tests (373ce50387)
  • Use ImageRegionRange in MaskNeighborhoodOperatorImageFilterTest (6f3532a62a)
  • Use ImageRegionRange in MatrixIndexSelectionImageFilterTest (93d5f95d0a)
  • Replace iterations with FillBuffer calls in ImageIntensity tests (e2110ab438)
  • Do auto size = SizeType::Filled(x) in tests (8b6bc5a5ad)
  • Use SizeType size{ x, y, z } brace-initialization in tests (03941e42d8)
  • Make NumericTraits::GetLength constexpr whenever possible (d720117d36)
  • Add [[nodiscard]] to non-const data(), begin(), end(), etc. (13e653326a)
  • Make RecursiveGaussianImageFilter::ComputeNCoefficients static (18cbdb6537)
  • Default default-constructor of RecursiveGaussianImageFilter (fe862f10d2)
  • Use default member initializers in RecursiveSeparableImageFilter (340e66e04d)
  • Remove RecursiveSeparableImageFilter variables scratch1, scratch2 (ca8f61ffd0)
  • Declare RecursiveGaussianImageFilter::SetUp variables constexpr (5878389a98)
  • Remove /*one-line-declaration*/ comments (2d0abfc6e0)
  • Use MultiThreaderBase directly, instead of MultiThreaderType (c4f4c5f17e)
  • ITK_FUTURE_LEGACY_REMOVE/deprecate MultiThreaderType aliases (49ed4e0add)
  • Use initializer lists in SobelOperator::GenerateCoefficients() (1ccd308773)
  • Use constexpr-if, switch in SobelOperator::GenerateCoefficients() (6e81a7ca17)
  • Do return VariableLengthVector(length, value) in NumericTraits (a912fac4b3)
  • Replace push_back calls with list-initialization, in tests (a001793add)
  • Use AllocateInitialized() instead of iteration in Smoothing tests (563d80d271)
  • Use constructors with (length, value), remove Fill calls in tests (4f14f45a8c)
  • Replace AllocateElements calls within VariableLengthVector (bb79801dcf)
  • FUTURE REMOVE/deprecate VariableLengthVector::AllocateElements (f080d4fa33)
  • Call Array(dimension, value) instead of Fill, in NumericTraits (27a1d7b587)
  • Let Index, Offset, Size front and back return m_InternalArray[i] (e950cf5556)
  • Let SobelOperator::Fill use IndexRange, allowing ND support (e31676d552)
  • Remove const from Self return type (596f29cc67)
  • Clean up SobelOperatorGTest, add CheckKernelCoordinates (36c921831b)
  • Use array for m_SmoothingFilters GradientRecursiveGaussian filter (529d8f9549)
  • Use array for m_SmoothingFilters HessianRecursiveGaussian filter (a837ee577e)
  • Deprecate HessianRecursiveGaussian alias GaussianFiltersArray (cefbf030f0)
  • Declare m_SmoothingFilters as std::array, instead of C array (a8743b0eb0)
  • Use std::generate to fill m_SmoothingFilters in Gaussian filters (72a70422f8)
  • Use range-based for on m_SmoothingFilters in Gaussian filters (309a08fdbd)
  • Remove GoToBegin() calls on ImageRegionConstIteratorWithIndex (2fdd975870)
  • Remove GoToBegin() calls on ImageRegionIteratorWithIndex (f10bd8f594)
  • Simply call m_SmoothingFilters.back() to get the last filter (9afa839e1d)
  • Remove numberOfSmoothingFilters from HessianRecursive filter (03cf095d54)
  • Make if (NumberOfSmoothingFilters > N) constexpr (8bb69ed3c1)
  • Use auto for filter = GaussianFilterType::New() (d92041cd75)
  • Remove static_cast<OffsetValueType> from ImageConstIterator (43efcadb62)
  • Remove const from return type ImageConstIterator::GetIndex() (e9dc0f7938)
  • Replace GetIndex() calls on iterators with ComputeIndex() (cc5b30193f)
  • Use ImageConstIterator::ComputeIndex() in PolylineMask filter (481f802e74)
  • Use ImageConstIterator::ComputeIndex() in tests (f39b759715)
  • Use ImageConstIterator::ComputeIndex() in RegistrationITKv3 (711bb6ed49)
  • Use ImageConstIterator::ComputeIndex() in Examples (a84cb8c8b7)
  • Move duplicate code in BinaryContourImageFilter outside if/else (cea19d9c97)
  • Avoid multiple GetIndex() calls in ContourExtractor2DImageFilter (4be530ede7)
  • Move iterator declaration to for ContourExtractor2DImageFilter (1dfd76be0d)
  • Deprecate RegionIterator aliases of ContourExtractor2DImageFilter (9ce536eee1)
  • Use MakeIndexRange in GTest unit tests (7d9584d3d4)
  • Replace OnlyIndex iterators in RegistrationMethod with IndexRange (cd3032026d)
  • Use MakeIndexRange in BSplineInterpolationWeightFunction (7aa5f26ffa)
  • Use MakeIndexRange(index, size) in SobelOperator (444fa9f2ec)
  • Use MakeIndexRange in Smoothing filters (44b44bd3d5)
  • Use MakeIndexRange in ContourExtractor2DImageFilter (3a00f63ff4)
  • Deprecate OutputIterator type alias from DisplacementField filter (cbf4246bba)
  • Remove typename from itk::ImageRegionConstIterator<TImage>; (3d2cd901c8)
  • Remove itk:: when using Iterator type in itk namespace (36df565f63)
  • Simplify bool assignments by removing if and else (2a11738433)
  • Remove Image and OffsetTable from ImageConstIteratorWithOnlyIndex (a3e214cea9)
  • Replace push_back(T(a, b, c)) with emplace_back(a, b, c) (289f59e337)
  • Remove GoToBegin() calls from Iterator constructors (d4d5e3af36)
  • Remove initGradIt from GradientRecursiveGaussianImageFilter (ff32f1bef6)

Sean McBride (2):

Enhancements

  • Moved threading-unfriendly static var into debugging code (afb31a088e)

Platform Fixes

Simon Rit (3):

Enhancements

  • Upgrade CudaCommon remote module to v2.0.0 (a7f3aeb874)

Platform Fixes

  • Missing ITK_FUTURE_LEGACY_REMOVE in VariableLengthVector (b76842e6d3)

Bug Fixes

  • Fix CastImageFilter for VariableLengthVector (921c5bab8f)

VXL Maintainers (5):

Miscellaneous Changes

Vladimir S. FONOV (1):

Miscellaneous Changes

copilot-swe-agent[bot] (9):

Enhancements

  • Add copilot-setup-steps.yml with pixi installation (6a1ac8b280)
  • Add copilot-setup-steps.yml with pixi installation (78fbad0de5)
  • Add stream insertion operators to print_helper (057c4aad2c)
  • Add Google Test for NumericLocale class (5e7a3d51bf)
  • Add ITK_PYTHON_RELEASE_GIL option and SWIG -threads flag (9ee17b178d)

Documentation Updates

  • Document GIL release feature in ITK 6 migration guide (f8b120f520)

Bug Fixes

  • Fix imread with single-element list and add test (8480b5f6d3)
  • Fix locale-dependent parsing in NRRD reader and add test (00d47e755c)

Miscellaneous Changes

pygccxml Upstream (1):

Enhancements

ITK Software Guide Changes Since v6.0b01

Cavan Riley (1):

Documentation Updates

  • Update development guide testing section (871011b)

Hans J. Johnson (39):

Enhancements

  • Remove all references and uses of PERL (c5457bb)
  • Remove some completed TODO items. (b451d10)
  • Add escaped quote marks for latex document. (d6e48e5)
  • Update cmake_minimum_versions to 3.22.1 (5e3a8f2)
  • Remove unused USE_OPTION1 build option from Common.cmake (ef6c010)
  • Replace make_directory with modern file(MAKE_DIRECTORY) (b50370f)
  • Add conditional logic for ITK dependency based on USE_SYSTEM_ITK (4486245)
  • Specify minimum ITK version in CMake find_package commands (2f1c288)
  • Add required modules needed for RunExamples (bdbeb33)
  • Update to support latex2e modern recommendations (b524cad)
  • Use non-breaking space before references (e701337)
  • Fix matching parenthesis. (7bfa9a1)
  • Use explicit item enumeration rather than raw paragraph text (b2b6355)
  • You should use \ldots to achieve an ellipsis. (60ef2a2)
  • Fix quoting for compatibility with LaTeX (b605e4c)
  • Add T1 font encoding to LaTeX preamble for improved typography (40a655c)
  • Prevent line wrapping in LaTeX console and log outputs (7ea599d)
  • Add LaTeX linter script (40d3a1f)
  • Update ImageMagick dependency to version 6 (6feafa5)

Documentation Updates

  • Add missing subsubsections for related to labels. (3568e80)

Style Changes

  • Remove repeated words. (a56aefd)
  • Remove redundant comment and adjust LaTeXWrapper.sh formatting (f466c6d)
  • Remove dvips option in LaTeX preamble (bb25196)
  • Improve readability by adjusting line breaks in abstract sections (2b63d1a)
  • Use \cos in LaTeX equations for consistency (c0b6a0c)
  • Add braces around \input argument for consistency (fb42d1c)
  • Repace x with times for better visualization (dcdfa2e)
  • Replace \bf with \textbf (c9e9bec)
  • Add % to the end of section and subsection titles (215212c)
  • Add % to \label and \index lines (5046831)
  • remove spaces in front of `\footnote’ (08de045)
  • Remove unnecessary spaces before ~ in LaTeX (b466f06)
  • Remove unnecessary space before punctuation (d4d2894)
  • Use \code{} for file extensions in LaTeX for consistency (605053d)
  • Remove redundant spaces before \\ in LaTeX tables (97e49da)
  • Use \enquote{} for quoting in LaTeX for consistency (e5586fa)
  • Replace \hline with \toprule, \midrule, and \bottomrule tables (f7df7c2)
  • Capitalize “Section” references in LaTeX for consistency (449532d)
  • Add .chktexrc to .gitignore (60d8b63)

Matt McCormick (9):

Documentation Updates

  • Update HelloWorld guide to use ITK 6 CMake targets (d0974a8)
  • Update download and git links in Configuring and Building ITK (32ea6e9)
  • Remove invalid CMake escape characters (3374fe4)
  • find_package component example with itk_generate_factory_registration() (8f684b1)
  • Use real modules for find_package example (ddbc09c)
  • Use explicit ImageIO argument to itk_generate_factory_registration() (b3a3493)
  • Clarify the factory and meta-interface relationship (8083f7a)

Platform Fixes

Niels Dekker (1):

Documentation Updates

  • Add guideline on using a backslash as line continuation character (b2b20b0)

Remote Module Changes Since v6.0b01

AdaptiveDenoising:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (6d772fa)

Hans Johnson (1):

Platform Fixes

  • Update RemoteModulePackageAction and Python 3.9+ (5968177)

AnalyzeObjectLabelMap:

Hans J. Johnson (2):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (94ed90b)
  • Update clang-format to match ITK 2025-11-10 (36c1b8a)

Hans Johnson (2):

Platform Fixes

  • Update RemoteModulePackageAction and Python 3.9+ (7237147)
  • Update RemoteModulePackageAction and Python 3.9+ (564c51a)

AnisotropicDiffusionLBR:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (2c241da)

Hans Johnson (2):

Enhancements

  • Perfer main branch for ITKRemoteModuleBuildTestPackageAction (753f249)

Platform Fixes

  • Update RemoteModuleBuild to v5.4.4 (32c0c1b)

BSplineGradient:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (8600b77)

Hans Johnson (1):

Platform Fixes

  • Update RemoteModulePackageAction and Python 3.9+ (fccce53)

BioCell:

Hans J. Johnson (4):

Enhancements

  • Update clang-format style (7b56493)

Platform Fixes

  • Update ITKClangFormatLinterAction@master->main (6e4b02c)

Bug Fixes

  • itkTypeMacro had wrong name as parent class (debbb60)

Style Changes

  • Update clang-format to match ITK 2025-11-10 (af317fb)

Jon Haitz Legarreta Gorroño (1):

Style Changes

  • Add ITK prefix to testing macros (dc2f2c2)

BoneEnhancement:

Hans J. Johnson (2):

Enhancements

  • Update to ITKv5.4.4 remote module build. (f083b97)

Style Changes

  • Update clang-format to match ITK 2025-11-10 (e8be3c9)

Hans Johnson (1):

Platform Fixes

  • Update RemoteModulePackageAction and Python 3.9+ (2b8c749)

BoneMorphometry:

Hans J. Johnson (3):

Platform Fixes

  • Fix missing header itkImageRegionConstIterator.h (1f03464)
  • Fix clang-format rules for CI. (1ef6327)

Style Changes

  • Update clang-format to match ITK 2025-11-10 (4dc0acd)

Cleaver:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (aa507a5)

Cuberille:

Davis Marc Vigneault (1):

Enhancements

  • Add test case from GitHub issue #66 (317bbec)

Dženan Zukić (2):

Enhancements

  • Split the test into two cases (755a22f)
  • Use itk::Mesh so the test passes (c586297)

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (4038567)

Hans Johnson (2):

Enhancements

  • Perfer main branch for ITKRemoteModuleBuildTestPackageAction (d022cb6)

Platform Fixes

  • Update RemoteModulePackageAction and Python 3.9+ (e166181)

CudaCommon:

Axel Garcia (16):

Enhancements

  • Create new filter CudaImageFromImageFilter (67ee0b9)
  • Add examples for CudaArrayInterface (489f6f5)
  • Add tests for CudaArrayInterface (a532716)
  • Install cupy and torch in the CI (eebca81)
  • Add pre-commit workflow (525cb2b)
  • Add gersemi config file (45ed94d)
  • CudaSquareImageFilter now inherits from CudaInPlaceImageFilter (952b1fa)
  • Run pre-commit workflow on github runner (bf6f4c0)
  • Remove static_cast from itkCudaMemoryProbeTest (803bef0)
  • Remove clang format linter workflow (589231f)
  • Fail Python tests on warnings during runtime (84aae57)

Documentation Updates

  • Add documentation for CudaArrayInterface (597b60a)
  • Add examples link and adjust style of cuda array documentation (422ff4d)

Platform Fixes

  • Remove residual code from itkCudaMemoryProbeTest (c8b07f3)

Bug Fixes

  • Uninstall existing ITK packages in GHA env before testing (d8dfe12)

Style Changes

Hans Johnson (1):

Platform Fixes

  • Fix cmake option for CUDACOMMON_CUDA_VERSION (7d446f4)

Lucas Gandel (11):

Enhancements

  • Add support for cuda_array_interface (ed1bc31)
  • Add support for other dimensions in cuda array interface (96d9a0f)
  • Add support for vector types in cuda array interface (e52ae13)
  • Add CudaDataManager::GetGPUBufferPointerPtr (3940961)
  • Export CudaCommon_SOURCE_DIR in CudaCommon targets file (8f5754a)
  • Expose flag to release GPU memory when dirty (4b649ca)
  • Define and export version in configuration file (8e0ff93)
  • Add python function cuda_image_from_cuda_array (27e3ff2)
  • Automatically allocate CPU buffer on update (1cd557f)

Bug Fixes

  • Return GPU buffer pointer from CudaDataManager (647af6c)

Style Changes

  • Use lowercase CudaCommon_VERSION variables (e7d8a72)

Simon Rit (16):

Enhancements

  • Activate ITK_FUTURE_LEGACY_REMOVE in CI builds (568d428)
  • Set CudaCommon version in the exported CMake code (33eec50)
  • Enable manual setting of the GPU buffer pointer (d9871c9)
  • Add new tests (ba20123)
  • Upgrade required CMake version in pyproject.toml (fdca68f)

Documentation Updates

  • Improve description of the module in README.md (726557e)
  • Limit Python package compatibility to Python 3.9 in pyproject.toml (09334eb)

Platform Fixes

  • Replace deprecated itkTypeMacro with itkOverrideGetNameOfClassMacro (4052968)
  • GHA: Use ITK v5.4 release to generate Python packages (0d72dd0)
  • Fix ambiguous call to ImageType::Superclass (cc6d146)
  • Generate itkCudaCommonConfiguration.h in a known directory (6feb4a7)
  • Only use ITK_USE_FILE for versions older than ITK 6 (0e0b162)
  • Include itkVersion.cmake before using ITK_VERSION (c9bd373)

Bug Fixes

  • GHA: Avoid error if there is no itk-cudacommon package to uninstall (7533bf0)
  • Fix generated itkCudaCommonConfiguration.h path for installation (cd72d9b)

Style Changes

  • Remove binary test file committed by mistake (be97e91)

FPFH:

Dženan Zukić (3):

Enhancements

  • Add a test which reads a mesh with normals and invokes FPFH (5dbe57e)
  • Replace NaNs in the input mesh by zeroes (a3d8580)
  • Update CI infrastructure (f6b5bc4)

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (15de36c)

Hans Johnson (3):

Platform Fixes

  • Use maybe_unused to suppress warnings. (97b58a3)
  • Update RemoteModulePackageAction and Python 3.9+ (47a4bc8)

Style Changes

  • Update to match clang-format-19 from ITK (34308ca)

FastBilateral:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (74bf2fe)

Hans Johnson (1):

Platform Fixes

  • Update RemoteModulePackageAction and Python 3.9+ (74888d2)

FixedPointInverseDisplacementField:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (b402f37)

Hans Johnson (1):

Platform Fixes

  • Update RemoteModulePackageAction and Python 3.9+ (e32db3f)

Yu-An Chen (1):

Bug Fixes

  • Fix header formatting in README.rst (e5c5321)

GenericLabelInterpolator:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (09f9a1f)

Hans Johnson (1):

Platform Fixes

  • Update RemoteModulePackageAction and Python 3.9+ (ec03714)

GrowCut:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (378b93c)

Hans Johnson (1):

Platform Fixes

  • Update RemoteModulePackageAction and Python 3.9+ (a20ea64)

HASI:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (df40468)

Hans Johnson (1):

Platform Fixes

  • Update RemoteModulePackageAction and Python 3.9+ (0e7a4bf)

HigherOrderAccurateGradient:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (8509e60)

Hans Johnson (1):

Platform Fixes

  • Update RemoteModulePackageAction and Python 3.9+ (363ad6a)

IOFDF:

Bradley Lowekamp (1):

Enhancements

  • Modernize CMake to use itk_module_add_library (f23c101)

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (92cb440)

Hans Johnson (1):

Platform Fixes

  • Update RemoteModulePackageAction and Python 3.9+ (4c90bc5)

IOMeshMZ3:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (9530e57)

Hans Johnson (1):

Platform Fixes

  • Update RemoteModulePackageAction and Python 3.9+ (4ffedf3)

IOMeshSTL:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (1674e89)

Hans Johnson (1):

Platform Fixes

  • Update RemoteModulePackageAction and Python 3.9+ (fabef5a)

IOMeshSWC:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (a12a5c3)

IOOpenSlide:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (67984ad)

IOScanco:

Hans J. Johnson (2):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (2130dbd)
  • Update clang-format to match ITK 2025-11-10 (63ddb6f)

Hans Johnson (1):

Platform Fixes

  • Update RemoteModulePackageAction and Python 3.9+ (28fec93)

dependabot[bot] (2):

Miscellaneous Changes

  • Bump vite from 4.5.14 to 5.4.21 in /app (a836030)
  • Bump vite from 4.5.14 to 5.4.21 in /app (dfb1368)

IOTransformDCMTK:

Dženan Zukić (3):

Enhancements

  • Remove Python packaging due to absence of ITKDCMTK in base package (bada9f1)
  • Declare the transform factory we define (b279a08)

Platform Fixes

  • Turn on prerequisite module ITKIODCMTK in underlying ITK build (236324c)

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (9d7f4a5)

Hans Johnson (5):

Enhancements

  • Update to support the clang-format-linter CI (374da3c)
  • Use tag v5.4.2 for the build packages tags (353144e)
  • Update pyproject.toml for ITK 5.4.2 (3631d0d)
  • Update minimum cmake version to 3.16.3 (033e020)

Style Changes

  • Update to match clang-format-19 from ITK (bea2938)

IsotropicWavelets:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (4a60dc7)

LabelErodeDilate:

Matt McCormick (4):

Enhancements

  • Update python package version to 1.3.2 (6d46716)
  • Bump python package version from 1.3.2 to 1.3.3 (5850a0f)

Platform Fixes

  • Update ITKClangFormatLinterAction to use ‘main’ branch (979adb3)
  • Update CI for ITK 5.4.5 (bc1cf4e)

Niels Dekker (1):

Platform Fixes

  • Use MultiThreaderBase directly, instead of MultiThreaderType (2e6d564)

LesionSizingToolkit:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (affbf7b)

MGHIO:

Bradley Lowekamp (1):

Enhancements

  • Modernize CMake to use itk_module_add_library (e32a4b4)

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (37bdd96)

Hans Johnson (1):

Platform Fixes

  • Update RemoteModulePackageAction and Python 3.9+ (f27f69d)

MeshNoise:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (8eb6664)

MeshToPolyData:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (69e7a7e)

Hans Johnson (1):

Platform Fixes

  • Update RemoteModulePackageAction and Python 3.9+ (43338b4)

Matt McCormick (1):

Platform Fixes

  • Update CI for ITK 5.4.4 (c4994e6)

dependabot[bot] (1):

Miscellaneous Changes

  • Bump vite from 4.5.6 to 5.4.21 (b3fc67a)

MinimalPathExtraction:

Bradley Lowekamp (1):

Enhancements

  • Modernize CMake to use itk_module_add_library (3b0d930)

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (2e137e5)

Hans Johnson (1):

Platform Fixes

  • Update RemoteModulePackageAction and Python 3.9+ (39f853a)

Matt McCormick (1):

Enhancements

  • Update to build against ITK 5.4.5 (0ff3e82)

Montage:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (9aafc48)

Hans Johnson (2):

Platform Fixes

  • Fix compiler warning about lifetime extension (3762d56)
  • Update RemoteModulePackageAction and Python 3.9+ (12e8cfb)

MorphologicalContourInterpolation:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (3903fe1)

Hans Johnson (1):

Platform Fixes

  • Update RemoteModulePackageAction and Python 3.9+ (74f38a2)

MultipleImageIterator:

Bradley Lowekamp (1):

Bug Fixes

  • Fix test library variable name (f767b4a)

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (948f51c)

PerformanceBenchmarking:

Bradley Lowekamp (6):

Enhancements

  • Add precommit config for clang-format (0ad0c67)
  • Add benchmark for iterator loop comparison (b214630)
  • Use ITK remote workflow 5.4.5 (8253ef9)
  • benchmark for iterators doing a static cast of pixel (7fb08c1)
  • Modernize CMake configuration for examples (a5b5c71)

Platform Fixes

  • Add missing path to configuration header (a0e2f57)

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (c1f3a57)

PolarTransform:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (6967f9b)

RLEImage:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (38afa28)

Hans Johnson (1):

Platform Fixes

  • Update RemoteModulePackageAction and Python 3.9+ (0fc2237)

RTK:

Axel Garcia (33):

Enhancements

  • Add rtkadmmwavelets python application (a2ce7679)
  • Add pre-commit workflow (8c068e22)
  • Run pre-commit workflow on github runner (6de3e588)
  • Add missing conditional_t, is_same_v, and using (c1891015)
  • Use RebindImageType to replace manual itk::Image vs itk::CudaImage selection (cacffcb2)
  • Modify runtime output location for each application (6e514d99)
  • Add rtki0estimation python application (bed423fd)
  • Add rtkimagxgeometry python application (c186319b)
  • Add rtkmaskcollimation python application (4106062b)
  • Remove clang format linter workflow (79ebd07b)
  • Add rtkgaincorrection python application (dd49c910)
  • Update IsIntersectedByRay parameter names (48e403e8)
  • Update RTK_BINARY_DIR to CMAKE_BINARY_DIR (38fa0704)
  • Update step size to use minimum spacing if not set (990ae969)
  • Update to ITK v5.4.5 release (b9ffc82f)
  • Add rtktotalvariationdenoising python application (db81dca1)
  • Add CUDA support for TotalVariationDenoising and DenoisingBPDQ filters (bfa9b2bd)
  • Add rtkwaveletsdenoising python application (d1127f75)
  • Add rtkxradgeometry python application (36295d4c)
  • Add rtkosem python application (ff27ec55)
  • Add rtksart python application (006be3b2)
  • Add rtksubselect python application (eae17600)
  • Fail Python tests on warnings during runtime (60205df9)
  • Require attenuation map for JosephAttenuated projection methods (b0e4f05f)

Performance Improvements

  • Improve test duration of examples (bf284499)

Documentation Updates

Bug Fixes

  • Use attenuation_map object instead of filename in projectors group (285cfce5)
  • Remove verbose option from rtkgaincorrection (358def59)
  • Remove cuda InlineReconstructionExample test (b708787f)

Style Changes

  • Apply pre-commit fixes (43b25847)
  • Remove redundant initialization in rtki0estimation (b7d4acf5)
  • Move verbose option to rtkargumentparser (e9586e86)
  • Centralize verbose option for c++ applications (c4722ef2)

Bradley Lowekamp (1):

Bug Fixes

  • Include Test depends in test directory (4633893c)

Cyril Mory (11):

Enhancements

  • Make mcfourdcg DVF handling consistent with mcrooster (88a4d569)
  • Add cudadvfinterpolation option in MC 4DCG (66f150ac)
  • Remove dual energy filters, applications and options (61935208)

Documentation Updates

  • Add documentation page on 3D + time (d0f83e6f)
  • Fix typos (e3ec8407)
  • Add documentation page for rtkfourdconjugategradient (a5ed989c)
  • Use POPI patient in documentation of Amsterdam shroud (d4214ab7)
  • Add 3D+time doc pages and update existing ones (79ff6a8a)
  • Fix comment in rtkmcrooster.cxx (bfaccff6)
  • Add page on spectral CT (de443d2e)

Bug Fixes

Simon Rit (33):

Enhancements

  • Upgrade CI CUDA Python packages to CudaCommon v2 (acdcea28)
  • Add missing step option for CudaRayCast backprojection (20aaf226)
  • Remove m_Normalize from rtk::CudaRayCastBackProjectionImageFilter (dffbe59e)
  • Improve handling of corner pixels in Cuda forward and adjoint (1370102c)
  • Avoid redundant computation in ray quadric intersection (26ef90b9)
  • Avoid division by 0 in ray quadric intersection (9ecd9597)
  • Generate rtkConfiguration.h in the same folder as RTKExport.h (4bb7d0d4)
  • Allow no cropping for Elekta projections (540ca1d5)

Documentation Updates

  • Add CudaCommon documentation (3bed6841)
  • Fetch CudaCommon doc files in subfolder to avoid README.md mix-up (8086cd45)
  • Fix typo and relative link address in CG example (3d49b28f)

Platform Fixes

  • Fix wrong target in CMakeLists.txt of InlineReconstruction example (822c23de)
  • Remove unused definition warning in conjugate gradient example (506c70c7)
  • GHA: Use ITK v5.4 release to generate Python packages (eb3fd5bd)
  • Rename cudaCommonConfiguration.h to itkCudaCommonConfiguration.h (a4e13d79)
  • Generate the test header in the same forlder as RTKExport.h (30f247b1)
  • Only use ITK_USE_FILE for versions older than ITK 6 (7813e57a)
  • Include itkVersion.cmake before using ITK_VERSION (802c9e15)

Bug Fixes

  • Fix C++ version of InlineReconstruction (2ed4125c)
  • Fix Python argument parser for Python 3.9 (bb4b8bbf)
  • GHA: Avoid errors if no ITK package is installed (5a0162d7)
  • Fix bounding box of image grid in Cuda ray cast backprojection (5cd93ab7)
  • Avoid numerical error in quadric ray intersection computation (9ac396cf)
  • Avoid infinite loop when the ray is tangent to the box (510aa02a)
  • Fix handling of deprecated application argument --dimension (643ead72)
  • Remove memory leak in Gengetopt structure (35d8d330)
  • Set SetInputFixedVectorLength* of spectral forward and two-step simplex (c84d3299)
  • Fix rtkDecomposeSpectralProjectionsTest for SetInputFixedVectorLength* (588d91b9)
  • Enforce warp projectors in 4D motion-compensated reconstruction (a9d5138e)

Style Changes

  • Update clang-format to match ITK’s v19.1.7 (c81f115b)
  • Replace double by ScalarType in ray convex intersection code (2771279c)
  • Remove unnecessary loop in CMake install code of applications (f2742c86)
  • Rename rtkmotioncompensated to rtkmc (391890f0)

SCIFIO:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (a26cd49)

Shape:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (31af02f)

Hans Johnson (1):

Platform Fixes

  • Update RemoteModulePackageAction and Python 3.9+ (9291189)

SimpleITKFilters:

Hans J. Johnson (3):

Enhancements

  • ITKv5_CONST macro for VerifyPreconditions() and VerifyInputInformation() (e20bd0b)

Platform Fixes

  • Update clang-format for ITKv6 style (c371082)

Style Changes

  • Update clang-format to match ITK 2025-11-10 (47d8001)

Hans Johnson (1):

Platform Fixes

  • Update RemoteModulePackageAction and Python 3.9+ (526d6c1)

SplitComponents:

Bradley Lowekamp (1):

Bug Fixes

  • Fix test variable names for remote module (586675b)

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (ecdc19a)

Hans Johnson (1):

Platform Fixes

  • Update cmake version required (7a1e19d)

Matt McCormick (1):

Enhancements

  • Update CI for ITK 6.0 Beta 1 (2fe5bd7)

Strain:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (cb1436d)

Hans Johnson (1):

Platform Fixes

  • Update RemoteModulePackageAction and Python 3.9+ (56d7572)

SubdivisionQuadEdgeMeshFilter:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (2d9c769)

Hans Johnson (1):

Platform Fixes

  • Update RemoteModulePackageAction and Python 3.9+ (d76d775)

TextureFeatures:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (54e259e)

Thickness3D:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (71c6ad4)

TotalVariation:

Hans J. Johnson (2):

Platform Fixes

  • Update ITKRemoteModuleBuildTestPackageAction to v6.0b01 (94b85b4)

Style Changes

  • Update clang-format to match ITK 2025-11-10 (014d7b2)

Hans Johnson (1):

Enhancements

  • Update pyproject.toml for ITK 5.4.2 (154c7a1)

Matt McCormick (3):

Enhancements

  • Build against ITK 5.4.2 (2658c0f)

Style Changes

  • Update .clang-format to ITK master (0c3c9bf)

Miscellaneous Changes

  • Revert “STYLE: Add itkVirtualGetNameOfClassMacro + itkOverrideGetNameOfClassMacro” (6522514)

TubeTK:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (31ca987f)

TwoProjectionRegistration:

Hans J. Johnson (2):

Enhancements

  • Change master->main for LICENSE (fc97149)

Style Changes

  • Update clang-format to match ITK 2025-11-10 (558c5c9)

Hans Johnson (2):

Style Changes

  • Add itkVirtualGetNameOfClassMacro + itkOverrideGetNameOfClassMacro (fc377f4)
  • Replace itkStaticConstMacro with static constexpr (0c1b1b5)

Ultrasound:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (6bf14bb)

VkFFTBackend:

Hans J. Johnson (1):

Style Changes

  • Update clang-format to match ITK 2025-11-10 (17ab3a8)

Hans Johnson (3):

Enhancements

  • Use CMAKE_CXX_STANDARD from ITK if set (b628c9f)
  • ITK now requires Macros to be terminated with ; (46d2e35)

Platform Fixes

  • Update RemoteModulePackageAction and Python 3.9+ (b0dbc5d)

Tom Birdsong (4):

Enhancements

Bug Fixes

Miscellaneous Changes

  • WIP: Run notebooks on ubuntu (a41355f)
  • WIP: Try running notebook tests on AWS GPU instances (6aa4b84)

WebAssemblyInterface:

Hans J. Johnson (3):

Miscellaneous Changes

  • build(wrapping): Fix missing wrapped type for itkWasmTransformIO (301e4bd3)
  • chore: Update clang-format to match ITK 2025-11-10 (c6863eac)
  • build(c++): update RemoteModulePackageAction and Python 3.9+ (901f7a9d)

Matt McCormick (31):

Miscellaneous Changes

  • test(dicom): use other gateways for test data (b75cd628)
  • test(mesh-filters): add additional testing data gateways (5efb655d)
  • test(image-io): add additional test data gateway (dc75aa54)
  • test(mesh-io): add additional test data gateway (9462151c)
  • test(transform-io): add additional testing data gateway (a1b53b4c)
  • test(transform): add additional test data gateway (22c3d907)
  • ci(ITKClangFormatLinterAction): use main branch (320a3741)
  • chore(deps): bump playwright to 1.56.1 (b60a48b3)
  • build(pixi): project → workspace, fix --filter position (333bceea)
  • build(dicom): modernize pixi project to workspace (fcd55b1c)
  • chore(dicom): bump version to 7.6.3 (43abb813)
  • feat(downsample): build for VectorImage types (88925089)
  • feat(downsample): use DiscreteGaussianImageFilter for VectorImage (63a1dfbf)
  • build(downsample): pixi update from project to workspace (a2ad5ddc)
  • test(downsample): test multi-comp
4 Likes

Thank you Matt, great work.

1 Like