VTK 5.10 was released in May, with new and updated classes, utility improvements, and other enhancements.
A new set of image rendering classes was incorporated for use in the next generation of VTK-based image viewer applications. Like VTK’s volume rendering classes, the new image rendering classes consist of separate actor, mapper, and property classes for maximum flexibility. Many of the VTK reader classes were updated, including the LSDyna reader, which resulted in read times for large (100 gigabyte) parallel data sets dropping from multiple hours to several minutes. Additionally, there is a new crop of NetCDF readers, and VTK now has true support for netcdf4 readers.
The Google Summer of Code 2011 work by David Lonie and Tharindu de Silva was incorporated into VTK. David developed chemical structure visualization code, which adds accelerated rendering of 3D chemical geometry using standard chemical representations. Tharindu worked on the 2D chart and plot features in VTK, improving chart interaction and adding support for keyboard modifiers to mouse and key events.
In addition to new and updated classes, support for new compilers, such as Visual Studio 2011 and Clang, was added, along with a multitude of code quality improvements. The code quality improvements came from a persistent effort on the part of the community to plug memory leaks and address compilation warnings that the CDash regression test servers exposed. In a related development, there is now an extension to VTK’s leak detection that allows fine-grained profiling of the construction and destruction of VTK objects.
There were several important external development efforts as part of the 5.10 release. To provide the ability to perform arbitrary boolean operations on polygonal meshes, a team from UNC made several meshing improvements, and added a new quad rotational extrusion filter that generalizes beyond triangle meshes. As part of DOE/ASCR and Sandia National Lab’s efforts to extend the state of the art in Mathematical Analysis of Petascale Data, the statistics algorithms were revamped and extended.
Other improvements include framework and widget updates. The generic framework to handle arbitrary high order cells and custom interpolation functions was enhanced in this release to seamlessly work with the modern VTK pipeline paradigm, and particularly within ParaView. There was also a new hierarchy of versatile multi-state button widgets added to VTK, along with others including a cropping plane, reslice cursor, and broken line widgets.
Also of note, visualization within immersive environments was improved. The ability to perform “Off-Axis” rendering was added to VTK, and can be used either with or without stereoscopic visualization.
Slicer 4.1 and 4.1.1
Kitware, in collaboration with the National Association for Medical Image Computing (NA-MIC) and the Slicer community announced the releases of Slicer 4.1 and 4.1.1 this spring. These releases brings a new level of stability to Slicer and new features to enhance its usability and functionality.
Notable changes include the addition of the Extension Manager, which enables Slicer extensions to be downloaded and installed from within Slicer. To support extension contributions from the community, an “extension catalog” server (similar to an app store) is running to host uploaded contributions from Slicer developers. Built on Kitware’s Midas technology, the “extension catalog” makes it easier for the community to search, find, rate, comment, and download relevant extensions.
In the Slicer 4.1.1 release, these were enhanced and further stabilized. The extensions manager and associated build system provide users and developers a way to quickly extend the functionality and the look-and-feel of Slicer for specific biomedical and clinical research applications. With the extension manager, extensions can be shared with the community in the “app-store” style system that integrates tightly with the Slicer experience. To complement these improvements, extensions-specific documentation was written.
Charting support has been added with a new chart view in the 4.1 release, which is used by the MultiVolumeExplorer module. This new module introduces multi-volume (e.g. time series) support in Slicer. The Cache Settings panel has been ported from Slicer 3, to provide users with controls to display or clear the available cache space used when downloading sample data, and to store temporary filter outputs. Further support for importing VTK unstructured grids is also a new addition.
Several other modules have been updated or added, including the OpenIGTLinks, Welcome, and DICOM modules. The CompareViews and View Controller GUI have been revised and improved. The Modules settings panel has also been enhanced, enabling users to set Prefer Executable CLI loading option to decrease memory consumption by modules and select which module(s) to skip at startup, as well as to customize their Favorite modules toolbar. Many of the icons for the Core Modules have also been updated. Slicer has also been updated to use CMake version 2.8.7.
Lastly, with the 4.1.1 release, the Slicer team also reorganized the overall user and developer documentation, making it easier to get started with Slicer and start developing your own modules and extensions.
The Midas 3.2.6 release features security and stability improvements and other upgrades to enhance the Midas user experience. The community descriptions functionality was enhanced and the upload workflow was streamlined. These two features are vital to Midas, and the updates provide a much better user experience. To further increase the user-friendliness of the system, the team added more batch move, merge, copy, and edit operations to folder views, as well as making the folder view sortable.
For those interested in tailoring their Midas installations themselves, the Midas team added a plugin for landing pages and the ability to render Midas without the default layout, and new web-api functionality to download by hash.
CMake 2.8.8 was released in April, with several significant developments and enhancements including greatly improved CPack documentation and a new Ninja generator on Linux.
This release features an easy way to generate a package config file with CMakePackageConfigHelpers and build MSVC-compatible dlls with MinGW gfortran in CMakeAddFortranSubdirectory. There is new support for Xcode 4.3, which also has a new default location and directory structure.
There are several improvements to the find_package command, such as a new module mode and clearer error messages, making CMake more user-friendly. Additionally, the Find modules are much cleaner, with the effort focused on the consistent use of FIND_PACKAGE_HANDLE_STANDARD_ARGS and version number variables.
The CMake team updated libarchive to the new upstream version, and added a new OBJECT_LIBRARY target type to provide CMake-flavored convenience libraries.
ITK 4.1.0 and 4.2.0
In March the ITK development team announced the release
of ITK 4.1.0, followed by the release of ITK 4.2.0 in July. Note that these releases deviate from the “even only” numbering convention of the past due to the transition to Git.
Notable improvements in the 4.1.0 release include better WrapITK support, fixes in the VTK Bridge to adapt to VTK 5, a new deconvolution filtering module, and a new TimeVaryingBSplineVelocityFieldTransform. In addition, there are enhancements to the Registrationv4 and LevelSetsv4 frameworks, a new video filtering module, and updates in InsightApplications. In ITK 4.2.0, compiler support was improved, GPU modules for Finite Difference, Smoothing, Thresholding, and Registration were added, and a new infrastructure to support Remote Modules was added.
The Image-Guided Surgery Toolkit (IGSTK) team released IGSTK 5.0 in early June. This release, driven by the team at Children’s National Medical Center, features support for additional tracking devices, a new example application, and a new version control workflow.
There is additional support for five new trackers: Certus optical Tracker, Polaris Classic, CamBar B2, easyTrack 500, and monocular tracking using ArUco. With support for the Certus optical Tracker, IGSTK now works with all optical and electromagnetic tracking systems from NDI. By adding support for Polaris Classic, an older model of NDI Polaris Tracker, IGSTK supports both the original and current communication APIs for the Polaris tracking systems.
The arsenal of tools compatible with IGSTK is extended through support for the CamBar B2 and easyTrack optical trackers. The CamBar B2 optical tracker is a compact passive optical tracking system available from AXIOS 3D Services, whereas the easyTrack 500 is an active optical tracking system available from Atracsys LLC. Lastly, support for monocular tracking of planar markers using the ArUco toolkit, available from the AVA research group at the University of Córdoba, transforms any computer with a webcam into a tracking system.
Leveraging these trackers, there is a new example application that can be used to log pose information from the NDI Polaris Classic, CamBar B2 and easyTrack500.
Lastly, IGSTK moved to a Git workflow for version control. This new workflow enables the team to track every change that goes into IGSTK and maintain a stable repository.