The Insight Toolkit (ITK) is a cross-platform, open-source C++ toolkit for N-dimensional scientific image processing, segmentation, and registration. Apache 2.0 licensed. Build tool: Pixi (wraps CMake + Ninja).
Load only what your task requires. Files are small and focused — load the minimum set for the task at hand.
| Task | Read |
|---|---|
| Understanding the codebase layout | architecture.md |
| Building or configuring ITK | building.md |
| Writing or running tests | testing.md |
| Code style, formatting, naming | enforced-code-style.md |
| Writing or reviewing C++ code | code-review-lessons.md |
| Writing ITK C++ classes, CMake, Python wrapping | conventions.md |
| Avoiding compiler pitfalls and refactoring hazards | compiler-cautions.md |
| Creating a DOC: commit | git-commits.md |
| Creating a STYLE: commit | git-commits.md, enforced-code-style.md |
| Creating a BUG: or ENH: commit | git-commits.md, compiler-cautions.md, testing.md |
| Creating a COMP: commit | git-commits.md, compiler-cautions.md |
| Commit or PR attribution | attribution.md |
| Opening or updating a pull request | pull-requests.md, attribution.md |
- Template errors are verbose — focus on the first error only.
- Python wrapping is incomplete — check
wrapping/dirs for available types before assuming a class is wrapped. - Never
deleteITK objects — always useSmartPointer(auto filter = FilterType::New()). Update()is required — filters don't execute until called; parameter changes afterUpdate()need another call.- Link errors → check
itk-module.cmake— missingDEPENDSorPRIVATE_DEPENDSis the usual cause. - Licensing — verify AI output does not reproduce third-party code in conflict with Apache 2.0.
- Docs: https://docs.itk.org/
- Contribution guide: https://docs.itk.org/en/latest/contributing/
- Discourse: https://discourse.itk.org/
- Software Guide: https://itk.org/ItkSoftwareGuide.pdf
- Examples: https://examples.itk.org/
- Doxygen API: https://itk.org/Doxygen/html/
- CDash: https://open.cdash.org/index.php?project=Insight