ITK 6.0 Beta 1 has been released!

We are excited to announce the first beta release of ITK 6.0! This major version update marks a significant leap forward in the toolkit’s evolution, focusing on code modernization, cleanup, and enhanced performance. As a beta release, we encourage the community to test and provide feedback as we finalize this next generation of ITK.:rocket: :sparkles: :tada:

This release, comprised of 1,115 changes, transitions the toolkit to require C++17, enabling the use of modern C++ features for more elegant, readable, and performant code. Extensive cleanup has been performed, including the removal of APIs deprecated in version 5 and the end of support for ITKv4 compatibility.

:flashlight: Highlights

Visible Human rendering with NiiVue. ITK 6 includes a new remote module, ITKIOMeshMZ3, that provides C++ and Python support for the MZ3 mesh format used by NiiVue.

  • C++ Modernization:
    • C++17 is now required for building ITK, enabling modern language features
    • Extensive code cleanup replacing legacy macros with constexpr, use of [[nodiscard]] and std::string_views, and contemporary C++ idioms for safer, clearer, and faster code paths
    • Updated third-party libraries including libtiff, HDF5, OpenJPEG, libjpeg-turbo, Nifti, libpng, GDCM, and DCMTK
    • Improved thread safety and performance optimizations
    • ITKv4 compatibility has been removed, and content from the Deprecated module has been purged, resulting in a cleaner, more modern API
  • Platform Support Updates:
    • Enhanced Apple Silicon (ARM64) macOS support with optimized build configurations
    • Intel macOS support maintained but deprecation started (see #5326 and #5369)
    • Updated CI/CD infrastructure with GitHub Actions and Azure Pipelines improvements
    • Pixi package manager integration for streamlined development workflows
  • New Features and Enhancements:
    • New AnatomicalOrientation class for robust anatomical coordinate system handling
    • Enhanced JPEG2000 support with High Throughput JPEG2000 (HTJ2K) for .jph files
    • Updated DCMTK integration with additional modules enabled
  • Code Quality Improvements:
    • Migrated to clang-format 19.1.7 for consistent code style
    • Removed deprecated code including VNL Netlib rpoly files and legacy macros
    • Enhanced GoogleTest integration and expanded test coverage
    • Large-scale style and readability improvements remove dead code paths, replace trivial functions with defaults, adopt raw string literals where helpful
    • Normalized Doxygen groups and added citations for better documentation
  • Remote Modules:
    • Updated 70 remote modules including WebAssemblyInterface, Montage, CudaCommon and MorphologicalContourInterpolation
    • New modules: ITKIOMeshMZ3 for MZ3 mesh format support

: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 include:

  • C++17 compiler requirement
  • Deprecated macro replacements
  • Updated third-party library APIs
  • Platform-specific considerations for macOS

:folded_hands: Acknowledgments

Thank you to the 72 recent contributors and 41 new contributors who made ITK 6.0 Beta 1 possible, including:

agarcia, albert-github, Alex Ciobanu, Alexy Pellegrini, Andras Lasso, Andrei Sandor, Antoine Robert, Ariouz, Aurélien Coussat, Axel Garcia, Brad King, Bradley Lowekamp, Bernhard Froehler, Chris Markiewicz, Colin Taylor, Csaba Pinter, Cyril Mory, Darren Thompson, Dave Chen, David Allemang, Dženan Zukić, Ebrahim Ebrahim, ebald19, Erica Baldesarra, Gabriel A. Devenyi, Gabriele Belotti, Hans Johnson, Idris TATACHAK, Jackson Hardee, Jakub Klinkovský, James Butler, Jannis Dickmann, Jean-Christophe Fillion-Robin, Jon Haitz Legarreta Gorroño, Kai Pastor, ken avolic, Ken Goettler, Krupal J S Bhat, Kurt McKee, L OH, Laurent Chauvin, Lee Newberg, ljm898, Lucas Gandel, luzpaz, Matt McCormick, Matthieu Chourrout, Michael Onken, Mihail Isakov, nbehrnd, Nick Tustison, Niels Dekker, npt-1707, Pablo Hernandez-Cerdan, Paolo Zaffino, Paul Elliott, Philip Cook, Piyush Aggarwal, ruanwenfeng, Sadhana Ravikumar, Sanjay Ananthanarayan, Sean McBride, Shelly Belsky, Shreeraj Jadhav, Simon Rit, Stephen Aylward, Steve Robbins, Tom Birdsong, Vladimir S. FONOV, Vivek Mehta, WangWeiLin-MV, Ziv Yaniv and the entire ITK community for their code contributions, testing, documentation efforts, and invaluable feedback.


:speaking_head: What’s Next

ITK 6.0 Final Release

Following community testing and feedback on Beta 1, we will address reported issues and prepare for the next ITK 6.0 beta.

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

Please test ITK 6.0 Beta 1 in your workflows and report issues on GitHub or the ITK Discourse forum.

Enjoy ITK!

6 Likes