07-12, 14:35–15:05 (US/Pacific), Room 315
ITK-Wasm combines the Insight Toolkit (ITK) and WebAssembly to enable high-performance spatial analysis across programming languages and hardware architectures.
ITK-Wasm Python packages work in a web browser via Pyodide but also in system-level environments. We describe how ITK-Wasm bridges WebAssembly with Scientific Python through simple fundamental Python and NumPy-based data structures and Pythonic function interfaces. These interfaces can be accelerated through GPU implementations when available.
We discuss how ITK-Wasm's integration of the WebAssembly Component Model launches Scientific Python into a new world of interoperability, enabling the creation of accessible and sustainable multi-language projects that are easily distributed anywhere.
Background/Motivation: In the quest for enhanced interoperability and sustainability in scientific computing, WebAssembly (wasm) emerges as a transformative technology. Wasm offers a universal compilation target, enabling high-performance computing across varied programming languages and hardware architectures. This innovation is pivotal for scientific research, where data interoperability, tool sustainability, and computational efficiency are paramount.
Methods: Enter ITK-Wasm, a pioneering integration that marries the Insight Toolkit (ITK) with WebAssembly. ITK-Wasm is crafted to adhere to wasm community standards, thereby facilitating the creation of wasm modules that are simple, efficient, and easily understandable. It prioritizes performance in handling scientific datasets, especially multi-dimensional spatial data. By offering Pythonic interfaces that utilize native Python and NumPy-based (Array API standard) data structures, ITK-Wasm ensures seamless operation in diverse computational environments, from web browsers with Pyodide to system-level contexts. Any standard C or C++ scientific codebase, whether they are based on ITK or not, can utilize ITK-Wasm to generate extremely portable Python packages that integrate with the Scientific Python ecosystem. Moreover, the generated wasm modules can also be integrated or extended with many other programming languages. This broadens the capabilities of research software engineers who have a strong affinity for a specific language, such as Python, and empowers polyglots.
Results: A notable application of ITK-Wasm is generating OME-Zarr images, a cloud-optimized bioimaging format supported that is an open standard in the international community. Through the Dask-based ngff-zarr package, ITK-Wasm efficiently produces OME-Zarr images in Pyodide, JupyterLite, and traditional native CPython environments. Furthermore, a cuCIM accelerator package exemplifies ITK-Wasm's compatibility with GPU acceleration. Its utility extends to desktop applications like 3D Slicer, illustrating its versatility and broad applicability in the scientific computing ecosystem.
Conclusion: ITK-Wasm stands at the forefront of fostering interoperability, multi-language program support, sustainability, accessibility, and reproducibility in scientific computing. By integrating the WebAssembly Component Model, ITK-Wasm not only enhances scientific Python's capabilities but also sets a new standard for developing and distributing multi-language projects.
Links:
- Documentation: https://wasm.itk.org/
- Source code: https://github.com/InsightSoftwareConsortium/itk-wasm
Jean-Christophe Fillion-Robin is an open-source enthusiast known as the original author of scikit-build. Currently, he holds the position of distinguished engineer at Kitware Inc, where he spearheads the development of commercial applications leveraging "3D Slicer". Additionally, Jean-Christophe maintains python-cmake-buildsystem, providing a CMake-based alternative build system tailored for CPython.
Matt McCormick, Ph.D. is a distinguished engineer on Kitware’s Medical Computing Team located in Carrboro, North Carolina. His experience spans multiple medical, biological, material science, and geospatial imaging applications. As a subject matter expert, he manages and makes technical contributions to scientific image analysis projects. He has been a principal investigator and a co-investigator of several research grants from the National Institutes of Health (NIH), led engagements with United States national laboratories, and he has led various commercial projects providing advanced software for medical devices.
Matt specializes in diagnostic ultrasound imaging, with an emphasis on radio-frequency-based signal characterization. Many of his projects focus on designing and developing innovative, artificial intelligence (AI) solutions for tissue characterization, elastography, and low-cost, portable systems.
In addition to his projects, Matt also leads the development of the Insight Toolkit (ITK), a high performance, N-dimensional image processing library written in C++ with interfaces in Python and JavaScript. In development for over two decades, ITK is a collaborative effort of the world’s best research software engineers. The open source project provides hundreds of advanced algorithm modules, covering topics in image processing, registration, segmentation, quantification, and reconstruction. Matt has led the community through two major revisions, ITK 4.0 and ITK 5.0, and he has coordinated over 30 releases of the toolkit, each comprising developments from 30 to 60 individual contributors.
Recently, Matt architected a port of the toolkit to WebAssembly, called itk.js, to couple ITK with interactive browser visualizations built on vtk.js. These are built into a next generation open-source software system for medical and scientific image, mesh, and point set visualization, the itk-vtk-viewer.
Matt is also involved in Kitware’s Open Source Software Sustainability RoadShow which visits organizations like the Chan-Zuckerberg Initiative and NVIDIA to present our lessons learned on software sustainability.
Matt also serves as a reviewer for journals, such as the Institute of Electrical and Electronics Engineers (IEEE) Transactions on Medical Imaging and the Journal of Open Source Software. He is also an active contributor to conferences for the Medical Imaging Computing and Computer Assisted Intervention (MICCAI) and Scientific Computing in Python (SciPy) communities. Additionally, Matt mentors Kitware interns and serves on Ph.D. thesis committees.
During his studies at the University of Wisconsin-Madison, Matt’s research covered vascular mechanics, signal processing, medical imaging physics, and computing. His doctoral thesis focused on the characterization of carotid plaque (a primary cause of stroke) with diagnostic ultrasound. The principal aim of his research was to develop algorithms to quantify local deformation in the plaque from raw ultrasound image data. The code developed for this purpose makes extensive use of ITK and the Visualization Toolkit (VTK).
While earning his bachelor’s degree at Marquette, Matt interned at Boston Scientific Corporation, where he worked on peripheral vascular nitinol stents.
Matt received his Ph.D. and master’s degree in biomedical engineering from the University of Wisconsin-Madison in 2011 and 2007, respectively. In 2005, he received his bachelor’s degree in biomedical engineering from Marquette University.
2 / 2
GPT
Matt McCormick, Ph.D., is an esteemed member of Kitware’s Medical Computing Team based in Carrboro, North Carolina, with extensive experience in medical, biological, material science, and geospatial imaging applications. As a subject matter expert, he not only manages scientific image analysis projects but also contributes technically, having led numerous research grants from the NIH, engagements with U.S. national laboratories, and commercial projects aimed at developing advanced software for medical devices. His specialization lies in diagnostic ultrasound imaging, particularly in the radio-frequency-based signal characterization, and he is heavily involved in creating AI solutions for tissue characterization, elastography, and the development of low-cost, portable systems.
In his role, Matt leads the development of the Insight Toolkit (ITK), a comprehensive, N-dimensional image processing library that supports C++, Python, and JavaScript interfaces. Having been a part of ITK's development for over twenty years, Matt has overseen two major toolkit revisions (ITK 4.0 and ITK 5.0) and coordinated over 30 releases, incorporating contributions from 30 to 60 individual contributors for each release. Furthermore, he recently architected itk.js, a port of ITK to WebAssembly, to enhance ITK with interactive browser visualizations utilizing vtk.js, contributing to the next-generation software system for medical and scientific image analysis and visualization.
Matt’s academic background includes a Ph.D. and a master’s degree in biomedical engineering from the University of Wisconsin-Madison, where his doctoral research focused on using diagnostic ultrasound to characterize carotid plaque, utilizing ITK and VTK extensively in his algorithms. His career began with a bachelor’s degree in biomedical engineering from Marquette University, supplemented by an internship at Boston Scientific Corporation. Beyond his project contributions, Matt actively engages with the academic and open-source communities by reviewing for journals, presenting at conferences, mentoring interns, and serving on Ph.D. thesis committees, highlighting his commitment to advancing medical imaging and open-source software development.