# ITK 6.0 Beta 1 Release Notes

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.🚀 ✨ 🎉

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.

🔦 Highlights
-------------

![NiiVue Visible Human Rendering](https://i.imgur.com/H2wL6id.png)

*[Visible Human](https://www.nlm.nih.gov/research/visible/visible_human.html) rendering with [NiiVue](https://niivue.com). ITK 6 includes a new remote module, [ITKIOMeshMZ3](https://github.com/InsightSoftwareConsortium/ITKIOMeshMZ3), that provides C++ and Python support for the [MZ3 mesh format](https://github.com/neurolabusc/surf-ice/tree/master/mz3) 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](https://github.com/InsightSoftwareConsortium/ITK/issues/5326) and [\#5369](https://github.com/InsightSoftwareConsortium/ITK/issues/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

💾 Download
-----------

**Python Packages**

Install [ITK Python packages](https://docs.itk.org/en/latest/learn/python_quick_start.html) with:

```bash
pip install --pre --upgrade itk
```

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

**Guide and Textbook**

- [InsightSoftwareGuide-Book1-6.0b01.pdf](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v6.0b01/InsightSoftwareGuide-Book1-6.0b01.pdf)
- [InsightSoftwareGuide-Book2-6.0b01.pdf](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v6.0b01/InsightSoftwareGuide-Book2-6.0b01.pdf)

**Library Sources**

- [InsightToolkit-6.0b01.tar.gz](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v6.0b01/InsightToolkit-6.0b01.tar.gz)
- [InsightToolkit-6.0b01.zip](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v6.0b01/InsightToolkit-6.0b01.zip)

**Testing Data**

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

- [InsightData-6.0b01.tar.gz](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v6.0b01/InsightData-6.0b01.tar.gz)
- [InsightData-6.0b01.zip](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v6.0b01/InsightData-6.0b01.zip)

**Checksums and Signatures**

- [InsightToolkit-6.0b01.tar.gz.asc](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v6.0b01/InsightToolkit-6.0b01.tar.gz.asc)
- [InsightToolkit-6.0b01.zip.asc](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v6.0b01/InsightToolkit-6.0b01.zip.asc)

- [InsightData-6.0b01.tar.gz.asc](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v6.0b01/InsightData-6.0b01.tar.gz.asc)
- [InsightData-6.0b01.zip.asc](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v6.0b01/InsightData-6.0b01.zip.asc)

- [MD5SUMS](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v6.0b01/MD5SUMS)
- [SHA512SUMS](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v6.0b01/SHA512SUMS)


📖 Migration Guide
------------------

For detailed guidance on migrating existing code to ITK 6.0, please consult the [ITK 6 Migration Guide](https://docs.itk.org/en/latest/migration_guides/itk_6_migration_guide.html). Key changes include:

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


### 🙏 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.

***

### 🗣️ 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](https://github.com/InsightSoftwareConsortium/ITK/issues) or the [ITK Discourse forum](https://discourse.itk.org/).

**Enjoy ITK!**
