Release Notes for SimpleITK v3.0.0 Alpha Release 3
This is the third Alpha Release of SimpleITK 3.0. It covers changes since v3.0.0a1 (September 2025), including v3.0.0a2.
Significant work has been done on the Python packaging and build system, with a migration to scikit-build-core. The Python Image class now supports the buffer protocol and array interface for zero-copy interoperability with NumPy and other array libraries.
Breaking Changes
SobelEdgeDetectionImageFilter: The default 3D Sobel operator coefficients have changed to be consistent with the 2D operator (via ITK). AUseLegacyOperatorCoefficientsoption has been added to restore the previous behavior.- Removed the private
_GetMemoryViewFromImagefunction from Python. It is replaced by theImageclass’s__array_interface__and buffer protocol (__buffer__) support (see New Features). - Dropped Python 3.9 from packaged wheels. Minimum supported Python version is now 3.10.
- Minimum CMake version increased from 3.16.3 to 3.23.0.
New Features
- Added Python buffer protocol (PEP 688) and
__array_interface__support to theImageclass. Images can be used directly as read-only NumPy arrays without copying data, and theImageBufferCPython class maintains proper memory lifetime. - Added
pixel_typesmodule to Python with utility functions for determining pixel type categories. - Introduced wrapping for
ContourExtractor2DImageFilter. Contour results are accessible via parameterized active measurement methods. - Added
ContainerManageMemorymethod to internalPimpleImagefor controllingImportImageContainermemory ownership. - Added experimental support for building ITK via CMake
FetchContentas an alternative to the SuperBuildExternalProject. - Added
manylinux_2_28Linux wheel packages. - Python packaging switched from
setuptools/setup.pytoscikit-build-corewithpyproject.toml. A top-levelpyproject.tomlnow enables building and installing SimpleITK as a Python package directly from the source repository, eliminating the need for the separateSimpleITKPythonPackageproject. SimpleITK can now be installed directly with:
The build automatically fetches ITK viapip install . # from a local clone pip install git+https://github.com/SimpleITK/SimpleITK.git@v3.0.0a3 # from gitFetchContentand compiles both ITK and SimpleITK. Build dependencies (swig,jinja2,pyyaml, etc.) are declared inpyproject.tomland installed automatically bypip.
Build System Changes
- Migrated Python wheel building to
scikit-build-corewith a top-levelpyproject.toml, replacing the legacysetuptools/setup.pyapproach. - SWIG 4.3.0 is now the minimum required version.
- Google Test is now fetched via CMake
FetchContentinstead of being built as a SuperBuild external project. - Migrated to CMake
FILE_SETfor header management (requires CMake 3.23+). - Modernized CMake usage: target-based ITK linking, modern
foreach(IN LISTS),CMAKE_LINKER_TYPEfor gold linker, and simplified export configuration. - Removed support for older MSVC compiler versions.
- Added YAML C-based loader support (
pyyaml) for improved code generation performance.
Updates
- Updated ITK to development version 6.0b2+ (commit c79274e4, main as of 2026-03-09).
- Upgraded SuperBuild
uvinstaller with isolated install support and PowerShell compatibility. - Corrected Lua wrapping template issues and enabled Lua in CI batch builds.
Bug Fixes
- Fixed
Showfunction creating temporary files with%characters, which caused failures on some platforms. - Fixed Python module file extension on Windows.
- Fixed macOS deployment target configuration for Python distributions.
Additional details and packages can be found on Github: