Advancing Optics in Medicine: NIRFAST-Slicer 2.0 and NIRFAST Workshop


This post features updates related to our joint efforts with the Optics in Medicine Lab at Dartmouth University, detailed in a previous blog post, and more specifically to their NIRFAST program. NIRFAST is an open-source library developed by researchers in the Optics in Medicine Lab for modeling near-infrared spectroscopic (NIRS) light propagation and recovering volumetric images of optical biomarkers in tissue with a specific focus on diffusion modeling and reconstruction.  Kitware has been providing research, development, and technology-integration service to the Optics in Medicine Lab and the wider NIRFAST user community in advanced image analysis and visualization capabilities.

Announcing NIRFAST-Slicer 2.0

We are proud to announce the release of NIRFAST-Slicer 2.0 for optical imaging research. Installers are available on or directly on GitHub.  NIRFAST-Slicer is an open-source toolkit based on 3D Slicer. It bridges the medical imaging processing and visualization capabilities of 3D Slicer with the light propagation modeling and reconstruction capabilities of NIRFAST-Matlab. Refer to our first blog post to learn more about NIRFAST-Slicer, or visit

Improved software process with GitHub

NIRFAST-Slicer source code is now hosted on GitHub, alongside the Matlab repository for NIRFAST. The change allows our developper community to make use of GitHub software process tools, such as the issue tracker and the milestones feature, to record, organize, prioritize and assign issues, as well as to plan for future releases. Releases are then tagged on GitHub, along with release notes and installers for Windows, Linux, and MacOS, and GitHub servers ensure a fast and reliable download across the world.

left/right, top/bottom: GitHub home page, Release page for version 2.0, Issue tracker page, Release 2.0 milestone page.

Changes since NIRFAST-Slicer 1.0

The segmentation workflow that relied on the deprecated Editor module is now based on the latest SegmentEditor module. Among other features, this module offers a more interactive segmentation process and allows defining masks when editing segments. Previously, volumes had to be typecasted to short through the Cast Scalar Volume, which is not necessary anymore.

Intermediary step of a breast segmentation within the SegmentEditor module of NIRFAST-Slicer 2.0.

With version 2.0, NIRFAST-Slicer relies fully on the support for volumetric meshes. Tetrahedral meshes created in NIRFAST-Matlab with CGAL can be imported natively in NIRFAST-Slicer in the Models module. As shown in the image below, different visualization options allow showing the intersection of the 3D model with the volume slice, cropping the 3D model, and displaying the optical parameters stored at each point of that mesh. Those parameters were computed in NIRFAST-Matlab from the light propagation reconstruction, and can also be thresholded to only display certain cells of the mesh. Previously, the volumetric mesh needed to be resampled within the original volume boundaries with the Import Optical Properties module, which is not necessary anymore.

3D View: intermixed volume rendering of a mouse head CT scan (grey) with a volumetric mesh resulting from an infrared light propagation reconstruction in NIRFAST-Matlab (red/yellow), cropped along the axial (red) and sagittal (yellow) slice planes. MPR views: intersections of the same volumetric mesh overlayed above the MPR slices of the CT volume with an opacity of 0.7.

The interface between NIRFAST-Slicer 2.0 with NIRFAST-Matlab has been simplified. In version 1.0, NIRFAST-Matlab was packaged internally which made the process intricate when using a different version of NIRFAST-Matlab or testing custom code outside of the Slicer package. Version 2.0 offers a simple interface within the Create Mesh module that enables the user to select which NIRFAST-Matlab package to use. The Create Mesh module has also been improved to handle segmentation inputs, provide better error handling, and enhance the overall user interface.

In addition to other improvements and bug fixes, NIRFAST-Slicer is now based on Slicer 4.9 and on the newest version of the Slicer Custom App Template. The latter relies on the latest features in CMake 3.11 to improve dependency management and facilitate project maintenance.

NIRFAST workshop at the OSA Biomedical Optics Congress

Similar to the NIRFAST workshop held two years ago, we joined some of the NIRFAST program main investigators to host a free pre-conference workshop for the user community at the Optical Society (OSA) Biomedical Optics 2018 Congress. The conference was held in Fort Lauderdale, Florida, on the first Monday of April. There, we guided attendees through tutorials – available on – and provided additional help. We were able to demonstrate the new simplified workflow in NIRFAST-Slicer 2.0 and showcase the capabilities of the new segmentation tools.

Alexis Girault (Kitware, Inc.) demonstrating segmentation tools in NIRFAST-Slicer 2.0 during a tutorial held at the 2018 NIRFAST Workshop.

The workshop was well attended with more than 20 participants from all over the world. Throughout the day, the participants provided valuable suggestions and feedback that we plan to incorporate in upcoming NIRFAST-Slicer releases.

3D Slicer tailored solutions

NIRFAST-Slicer is a perfect example of how Kitware can leverage 3D Slicer to create custom applications in medical imaging. If you have feedback you would like to share, want a demo of NIRFAST-Slicer 2.0, or wish to tailor 3D Slicer to meet your clinical and research needs, please contact us at

Questions or comments are always welcome!