“Scientific visualization is the practice of producing graphics representations of scientific phenomena.”
Boston University Research Computing Support, Introduction to Scientific Visualization Tutorial.
This page focuses on medical imaging and visualization primarily since that is what I’m currently working with.
The Pipeline
BU’s RCS defines the scientific visualization pipeline as follows:
- Produce Input Data ==> End Result: Input Data
- Analyze, Filter, Reformat ==> End Result: Prepared Data
- Apply Scientific Visualization Techniques ==> End Result: Scientific Visualization Model Data
- Map to Geometry ==> End Result: Computer Graphics Data
- Render and Postprocess ==> End Result: Image Data
- View Results
ITK / VTK
- ITK/VTK Viewer – Stars: 110 – Updated: 6/2021 – Checked: 6/2021
- “a web-based viewer for loading 2D/3D images and more…”
- Produced by Kitware.
- Installs via npm, simple to use, documentation is limited.
- Under the hood uses ITK.js and VTK.js
Visualization Toolkit (VTK)
The Visualization Toolkit (VTK) is a software system for 3D computer graphics, image processing, and visualization. It supports many visualization algorithms and modeling techniques. VTK can perform parallel processing, and it can render scientific data in a web browser [using VTK.js].
Kitware Platforms
- Visualization Toolkit (VTK) – Stars: 1.6k – Updated: 6/2021 – Checked: 6/2021
- Produced by Kitware.
- Core is C++ but has wrappers for several languages including Java, Python, and Tcl.
- Original release 1994, under continuous development since then.
- Well-documented, supported, and training is available.
- The original VTK textbook and a user guide are made freely available by Kitware.
- Visualization Toolkit for JavaScript (VTK.js) – Stars: 691 – Updated: 6/2021 – Checked: 6/2021
- Produced by Kitware.
- VTK.js is not a wrapper for VTK C++, rather it is a complete rewrite in vanilla JS (ES6).
- It supports a significant portion of but not the entirety of VTK C++’s functionality.
- PyVista – Stars: 835 – Updated: 6/2021 – Checked: 6/2021.
- “PyVista is a helper module for the Visualization Toolkit (VTK) that wraps the VTK library through NumPy and direct array access through a variety of methods and classes. This package provides a Pythonic, well-documented interface exposing VTK’s powerful visualization backend to facilitate rapid prototyping, analysis, and visual integration of spatially referenced datasets.”
- ActiViz
- Integrates VTK with .NET/C#.
- Books
- The VTK User’s Guide
- The Visualization Toolkit 4th Edition
- Additional Resources
Insight Toolkit (ITK)
ITK is a library of segmentation and registration imaging algorithms tailored for medical investigations….[it] supports a variety of data formats including…DICOM, MRI, CT, and ultrasound.”
Kitware Platforms
- Insight Toolkit (ITK) – Stars: 840 – Updated: 6/2021 – Checked: 6/2021
- “an open-source, cross-platform toolkit for N-dimensional scientific image processing, segmentation, and registration.”
- Provides wrappers for Python and JS.
- Produced by the Insight Software Consortium, which includes Kitware.
- Insight Toolkit for JavaScript (ITK.js) – Stars: 88 – Updated: 6/2021 – Checked: 6/2021
- Produced by the Insight Software Consortium, which includes Kitware.
- SimpleITK – Stars: 480 – Updated: 6/2021 – Checked: 6/2021.
- “a layer built on top of the Insight Toolkit (ITK), intended to simplify and facilitate ITK’s use in rapid prototyping, education and interpreted languages.”
- Books
- The ITK Software Guide: Introduction and Development Guidelines (Book 1)
- The ITK Software Guide: Design and Functionality (Book 2)
ParaView
“ParaView builds interactive, scientific visualizations to analyze data using qualitative and quantitative techniques. It has a client-server architecture to facilitate remote visualization of datasets, and it generates level of detail (LOD) models to maintain interactive frame rates for large datasets…[it] is designed for data parallelism on shared-memory or distributed-memory multicomputers and clusters…can also be run as a single-computer application….is an application framework as well as a turnkey application.”
Kitware Platforms
- ParaView – Stars: 741 – Updated: 6/2021 – Checked: 6/2021
- “an open-source, multi-platform data analysis and visualization application based on Visualization Toolkit (VTK).”
- Collaboratively produced by Kitware, Sandia National Laboratories, Los Alamos National Laboratory, Army Research Laboratory, among others.
- First public release was 2002, continuously improved through the present.
- ParaView Glance – Stars: 149 – Updated: 5/2021 – Checked: 6/2021.
3D Slicer
“3D Slicer is an open source and extensible platform for visualization and medical image analysis…[it] works with imaging, MRI, CT, and ultrasound data…
Kitware Platforms
3D Slicer uses VTK and ITK: VTK for its 2D and 3D rendering pipelines, linear and non-linear transformation, segmentation infrastructure, mesh processing, and virtual reality integration and ITK for image processing plus reading and writing images.”
- 3D Slicer – Stars: 356 – Updated: 6/2021 – Checked: 6/2021.
- There are a number of specific implementations/extensions to 3D Slicer available – e.g., SlicerIGT, SlicerRT, SlicerSalt, SlicerAlto, SlicerCMF, SlicerDMRI, SlicerMorph, SlicerRadiomics, and the Chest Imaging Platform.
ImageJ
- Image Processing and Analysis in Java (ImageJ)
- Produced by the National Institutes of Health (NIH).
- “a public domain Java image processing program….It can display, edit, analyze, process, save and print 8-bit, 16-bit and 32-bit images. It can read many image formats…supports “stacks”…is multithreaded….can calculate area and pixel value statistics…measure distances and angles…geometric transformations such as scaling, rotation and flips…Spatial calibration…” (from Introduction to Docs)
- Fiji – Stars: 451 – Updated: 3/2021 – Checked: 6/2021
- “a ‘batteries-included’ distribution of ImageJ, bundling many plugins which facilitate scientific image analysis.”
Resources
Other Software
- Scientific Image Processing System (freeware)
- Icy
- Nion Swift – Stars: 21 – Updated: 6/2021 – Checked: 6/2021
- QuPath – Quantitative Pathology and Bioimage Analysis
- Computational Model Builder (CMB) from Kitware – meant to simplify the piecemeal process of assembling a simulation by providing “the full simulation lifecycle”.
- Tomviz from Bitware – “tailored for visualizing electron tomography…render, manipulate, and analyze voluminous 3D tomograms.”
- Interactive Medical Simulation Toolkit (imstk) – “a free & open source software toolkit written in C++ that aids rapid prototyping of interactive multi-modal surgical simulations”.
Software Directories
- FSF’s Free Software Directory – Scientific Visualization Category.
- Open Source Software Directory – Visualization Category.
- Awesome Open Source – Scientific Visualization Category.
Education
- EPFL’s Image Processing and Analysis for Life Scientists on edx.
- Baylor College of Medicine’s Scientific Image Processing.
- Rob Lind. Open Source Software for Image Processing and Analysis: Picture This with ImageJ in Open Source Software in Life Science Research.
- Boston University Research Computing Support’s Introduction to Scientific Visualization Tutorial.
Commercial Software
- ThermoFisher’s Visilog – “ideal solution to create custom image processing applications.”
- MIPAR Image Analysis
- Oxford Instruments Imaris
- Arivis
- Aivia Software
- Scientific Volume Imaging’s Huygens Software
- Mediacy (Media Cybernetics)
- Object Research Systems (ORS) Dragonfly