# Slicer 5.8: Summary, Highlights, and Changelog

**URL:** <https://discourse.slicer.org/t/slicer-5-8-summary-highlights-and-changelog/41988>\
**Category:** Release Notes\
**Created:** [March 7, 2025, 6:40pm UTC](https://discourse.slicer.org/t/slicer-5-8-summary-highlights-and-changelog/41988 "2025-03-07T18:40:38Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![jcfr](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jcfr/32/17825_2.png) [@jcfr](https://discourse.slicer.org/u/jcfr)\
**Post date:** [March 7, 2025, 6:40pm UTC](https://discourse.slicer.org/t/slicer-5-8-summary-highlights-and-changelog/41988/2 "2025-03-07T18:40:38Z")

</div>

# Changelog: 5.8.0

- [Core](#heading--core)
  - [Rendering & display](#heading--rendering-display)
  - [IO](#heading--io)
  - [Performances](#heading--performances)
  - [Fixes](#heading--fixes)
  - [Application](#heading--application)
  - [Extension](#heading--extension)
  - [CLI](#heading--cli)
  - [Scripting](#heading--scripting)
  - [Internationalization/Localization](#heading--internationalization-localization)
  - [Installation](#heading--installation)
  - [MRML](#heading--mrml)
  - [API Updates](#heading--api-updates)
  - [Telemetry Support](#heading--telemetry-support)
  - [Documentation](#heading--documentation)

- [Improved Modules](#heading--improved-modules)
  - [Data](#heading--data)
  - [DICOM](#heading--dicom)
  - [Endoscopy](#heading--endoscopy)
  - [Markups](#heading--markups)
  - [Models](#heading--models)
  - [Reformat](#heading--reformat)
  - [SampleData](#heading--sampledata)
  - [Segmentations](#heading--segmentations)
  - [Segment Statistics](#heading--segment-statistics)
  - [Sequences](#heading--sequences)
  - [Subject Hierarchy](#heading--subject-hierarchy)
  - [Texts](#heading--texts)
  - [Terminologies](#heading--terminologies)
  - [Transforms](#heading--transforms)
  - [Volume Rendering](#heading--volume-rendering)
  - [WebServer](#heading--webserver)

- [Infrastructure](#heading--infrastructure)
  - [Packaging](#heading--packaging)
  - [Testing](#heading--testing)
  - [Continuous integration (CI)](#heading--continuous-integration-ci)
  - [Build system](#heading--build-system)
  - [Platform support](#heading--platform-support)
  - [Dependencies](#heading--dependencies)
  - [Custom Slicer application support](#heading--custom-slicer-application-support)

- [Extensions](#heading--extensions)
  - [New](#heading--new)
  - [Updated](#heading--updated)
  - [Removed](#heading--removed)

## Core

### Rendering & display

- Add clipping options to models, segmentation, and volume rendering ([PR-7996](https://github.com/Slicer/Slicer/pull/7996), [PR-8087](https://github.com/Slicer/Slicer/pull/8087))
- Allow disabling layer blend clipping to background in slice views ([PR-7886](https://github.com/Slicer/Slicer/pull/7886))
- Add option to display shadows in 3D views ([PR-7515](https://github.com/Slicer/Slicer/pull/7515))
- Allow setting ambient shadows intensity ([PR-7822](https://github.com/Slicer/Slicer/pull/7822))
- Disable shadows in 3D views by default ([PR-7583](https://github.com/Slicer/Slicer/pull/7583))
- Add option to display slice edges in 3D view ([PR-8008](https://github.com/Slicer/Slicer/pull/8008))
- Re-enable display of interaction handles in VR ([PR-7630](https://github.com/Slicer/Slicer/pull/7630))
- Allow reslicing of 32-bit integer images ([PR-7292](https://github.com/Slicer/Slicer/pull/7292))
- Fix backface color on Slice nodes in 3D views ([PR-8056](https://github.com/Slicer/Slicer/pull/8056))
- Standardize fit slice to volume behavior ([PR-8063](https://github.com/Slicer/Slicer/pull/8063), [PR-8076](https://github.com/Slicer/Slicer/pull/8076))
- Fix fit slice view if no background volume is selected ([PR-7986](https://github.com/Slicer/Slicer/pull/7986))
- Fix interaction handle enable/disable not working in views ([PR-8068](https://github.com/Slicer/Slicer/pull/8068))
- Fix slice view “More Options” opening by default ([PR-8096](https://github.com/Slicer/Slicer/pull/8096))
- Ensure background SeriesTime corner annotation is displayed ([PR-8122](https://github.com/Slicer/Slicer/pull/8122))

### IO

- Show more details about scene changes on close or exit ([PR-8000](https://github.com/Slicer/Slicer/pull/8000))
- Improve `vtkMRMLVolumeArchetypeStorageNode` for left-handed volumes ([PR-7627](https://github.com/Slicer/Slicer/pull/7627))
- Improve ultrasound reading ([PR-7649](https://github.com/Slicer/Slicer/pull/7649))
- Improve automatic detection of NIFTI displacement field transform files ([PR-7967](https://github.com/Slicer/Slicer/pull/7967))
- Show warning if data loss occurs when saving to TIFF ([PR-7655](https://github.com/Slicer/Slicer/pull/7655))
- Allow aliases for NRRD “type” header in postNRRD ([PR-7664](https://github.com/Slicer/Slicer/pull/7664))
- Log more information when NRRD reading fails ([PR-7700](https://github.com/Slicer/Slicer/pull/7700))
- Improve automatic detection of segmentation files ([PR-7967](https://github.com/Slicer/Slicer/pull/7967))
- Reduce bundle temp directory length when saving scene MRB ([PR-7899](https://github.com/Slicer/Slicer/pull/7899))
- Make minor fixes from 5D NRRD IO development ([PR-7880](https://github.com/Slicer/Slicer/pull/7880))
- Fix reading of images that have a left-handed IJK coordinate system ([PR-7746](https://github.com/Slicer/Slicer/pull/7746))
- Fix saving of NRRD files with certain filenames ([PR-7616](https://github.com/Slicer/Slicer/pull/7616))
- Make automatic detection of segmentation files more robust ([PR-7738](https://github.com/Slicer/Slicer/pull/7738))
- Make segmentation .seg.nrrd file reading more robust ([PR-7738](https://github.com/Slicer/Slicer/pull/7738))
- Fix export of VTK unstructured grid ([PR-7760](https://github.com/Slicer/Slicer/pull/7760))
- Fix reading of volume property (`.vp`) file ([PR-7772](https://github.com/Slicer/Slicer/pull/7772))
- Fix tensor image reading ([PR-7773](https://github.com/Slicer/Slicer/pull/7773))
- Fix saving with long node names ([PR-8028](https://github.com/Slicer/Slicer/pull/8028))
- Fix loading and saving `.mrb` files with trailing space in filename ([PR-8134](https://github.com/Slicer/Slicer/pull/8134))

### Performances

- Update ITK to suppress irrelevant TIFF warnings ([PR-8016](https://github.com/Slicer/Slicer/pull/8016))

### Fixes

- Do not show warning popup on exit if camera node is changed ([PR-8000](https://github.com/Slicer/Slicer/pull/8000))
- Re-introduce logging of unparsed arguments (to log file only) ([PR-7943](https://github.com/Slicer/Slicer/pull/7943))
- Fix crash when module category name matches a module name ([PR-7524](https://github.com/Slicer/Slicer/pull/7524))
- Fix Model DM crash when adding display node ([PR-8131](https://github.com/Slicer/Slicer/pull/8131))
- Fix crash when hovering over interaction handles after scene load ([PR-8067](https://github.com/Slicer/Slicer/pull/8067))
- Suppress “Populating font family aliases” warning on macOS ([PR-8159](https://github.com/Slicer/Slicer/pull/8159))
- Remove unneeded display of ignored command line arguments ([PR-7941](https://github.com/Slicer/Slicer/pull/7941))
- Remove “Active” prefix from some node selection comboboxes ([PR-7985](https://github.com/Slicer/Slicer/pull/7985))

### Application

- Display instantiated module name in splash screen ([PR-7454](https://github.com/Slicer/Slicer/pull/7454))
- Allow dragging of splash window ([PR-7527](https://github.com/Slicer/Slicer/pull/7527))
- Support dragging of the splash window just after clicking on it ([PR-7532](https://github.com/Slicer/Slicer/pull/7532))
- Update `Slicer.crt` CA bundle ([PR-7575](https://github.com/Slicer/Slicer/pull/7575), [PR-7781](https://github.com/Slicer/Slicer/pull/7781), [PR-7916](https://github.com/Slicer/Slicer/pull/7916), [PR-8054](https://github.com/Slicer/Slicer/pull/8054))

### Extension

- Support specifying contributor extension metadata with newlines ([PR-7720](https://github.com/Slicer/Slicer/pull/7720))
- Switch extension index entry format from `.s4ext` to `.json` ([PR-7709](https://github.com/Slicer/Slicer/pull/7709))
- Simplify Slicer version check in extensions ([PR-7954](https://github.com/Slicer/Slicer/pull/7954))
- Add “tier” property to extensions catalog schema ([PR-8066](https://github.com/Slicer/Slicer/pull/8066))
- Simplify extension manager build system ([PR-7644](https://github.com/Slicer/Slicer/pull/7644))
- Fix loading of modules that depend on another extension ([PR-7580](https://github.com/Slicer/Slicer/pull/7580))
- Fix extension schema ID ([PR-7710](https://github.com/Slicer/Slicer/pull/7710))

### CLI

- Disable compression for CLI output files ([PR-7885](https://github.com/Slicer/Slicer/pull/7885))
- Report missing `longflag` in module description XML ([PR-7779](https://github.com/Slicer/Slicer/pull/7779))
- Restore support for writing CLI output as `.fcsv` files ([PR-7971](https://github.com/Slicer/Slicer/pull/7971))

### Scripting

- Add parameter node GUI wrappings for certain CTK and other classes ([PR-7918](https://github.com/Slicer/Slicer/pull/7918))
- Add methods for `runTest` upgrade ([PR-7444](https://github.com/Slicer/Slicer/pull/7444))
- Fix support for registering `parameterNodeWrapper` plugins ([PR-7480](https://github.com/Slicer/Slicer/pull/7480))
- Fix meta-object system registration of `qSlicerIO::fileType` return type ([PR-7552](https://github.com/Slicer/Slicer/pull/7552))
- Support checking if IO registration from Python occurs with no registered IOs ([PR-7553](https://github.com/Slicer/Slicer/pull/7553))
- Fix module reload of modules without `reloadTestMenuButton` ([PR-8116](https://github.com/Slicer/Slicer/pull/8116))
- Fix `QComboBoxToEnumConnector` to avoid resetting default ([PR-8116](https://github.com/Slicer/Slicer/pull/8116))

### Internationalization/Localization

- Make translations in Python scripts more robust ([PR-7611](https://github.com/Slicer/Slicer/pull/7611))
- Add translation for `VolumeDisplayPresets.json` ([PR-7651](https://github.com/Slicer/Slicer/pull/7651))
- Only translate Python strings when necessary ([PR-7813](https://github.com/Slicer/Slicer/pull/7813))
- Make more strings translatable ([PR-7309](https://github.com/Slicer/Slicer/pull/7309))
- Fix translation in `qMRMLThreeDViewCntrollerWidget` ([PR-7526](https://github.com/Slicer/Slicer/pull/7526))
- Mark translatable strings in Markups module ([PR-7620](https://github.com/Slicer/Slicer/pull/7620))
- Mark translatable strings in ExtensionWizard module ([PR-7698](https://github.com/Slicer/Slicer/pull/7698))
- Fix translation handle flickering when holding ALT; **update** Transforms module documentation to include interaction info ([PR-7663](https://github.com/Slicer/Slicer/pull/7663))
- Fix translation of Python modules ([PR-7909](https://github.com/Slicer/Slicer/pull/7909))
- Mark translatable strings in Reformat, Texts, and Transforms modules ([PR-7817](https://github.com/Slicer/Slicer/pull/7817))

### Installation

- Remove `DMRIInstall` module ([PR-7662](https://github.com/Slicer/Slicer/pull/7662))

### MRML

- Improve handling of invalid input in `MRMLViewInteractorStyle` classes ([PR-7497](https://github.com/Slicer/Slicer/pull/7497))
- Register nodes in `MRMLScene` constructor deterministically ([PR-8156](https://github.com/Slicer/Slicer/pull/8156))
- Check if a node is present in the scene before adding it ([PR-8029](https://github.com/Slicer/Slicer/pull/8029))
- Fix incorrect `vtkMRMLSliceDisplayNode` XML attribute name ([PR-8081](https://github.com/Slicer/Slicer/pull/8081))
- Fix folder display override for model nodes ([PR-8083](https://github.com/Slicer/Slicer/pull/8083))
- Ensure MRB loading correctly reports loaded nodes ([PR-8135](https://github.com/Slicer/Slicer/pull/8135))
- Fix issue with adding a new node after rename cancellation ([PR-7598](https://github.com/Slicer/Slicer/pull/7598))
- Fix `GetStorableNodesModifiedSinceRead` for short text nodes ([PR-8000](https://github.com/Slicer/Slicer/pull/8000))
- Fix `vtkMRMLTextStorageNode::WriteDataInternal` not throwing error ([PR-8025](https://github.com/Slicer/Slicer/pull/8025))
- Fix creation of extra volume property storage nodes ([PR-8029](https://github.com/Slicer/Slicer/pull/8029))
- Prevent making volume storage nodes modified after file save ([PR-8029](https://github.com/Slicer/Slicer/pull/8029))

### API Updates

- Add API to access SSAO rendering pass in 3D views ([PR-7616](https://github.com/Slicer/Slicer/pull/7616))
- Improve `vtkMRMLLayoutNode` API ([PR-7616](https://github.com/Slicer/Slicer/pull/7616))
- Migrate `vtkSingleton` to `vtkAddon` ([PR-7849](https://github.com/Slicer/Slicer/pull/7849))

### Telemetry Support

- Add API to log software usage events ([PR-7855](https://github.com/Slicer/Slicer/pull/7855))

### Documentation

- Switch highlighted social network to LinkedIn ([PR-8023](https://github.com/Slicer/Slicer/pull/8023))
- Improve docstring of `vtkMRMLViewInteractorStyle` processing functions ([PR-7498](https://github.com/Slicer/Slicer/pull/7498))
- Update installation and building instructions for ArchLinux ([PR-7521](https://github.com/Slicer/Slicer/pull/7521))
- Update list of supported formats for Quantitative Reporting extension ([PR-7557](https://github.com/Slicer/Slicer/pull/7557))
- Fix comment format, update variable names, and add missing closing bracket in script repository ([PR-7615](https://github.com/Slicer/Slicer/pull/7615))
- Update `FastModelAlign` `registration.md` ([PR-7669](https://github.com/Slicer/Slicer/pull/7669))
- Add Ubuntu 22.04 build instructions ([PR-7689](https://github.com/Slicer/Slicer/pull/7689))
- Reorganize Ubuntu console example of required dev tools ([PR-7692](https://github.com/Slicer/Slicer/pull/7692))
- Encourage trying preview release before reporting bugs ([PR-7686](https://github.com/Slicer/Slicer/pull/7686))
- Update `gui.md` with an example of displaying a node in only some views ([PR-7708](https://github.com/Slicer/Slicer/pull/7708))
- Improve segmentation DICOM export documentation ([PR-7761](https://github.com/Slicer/Slicer/pull/7761))
- Match updated interface in `SlicerSurfaceToolbox Dynamic Modeler` ([PR-7766](https://github.com/Slicer/Slicer/pull/7766))
- Clarify meaning of negative and positive sides of plane ([PR-7769](https://github.com/Slicer/Slicer/pull/7769))
- Add documentation for 3D view `CTRL + Left-click + drag` ([PR-7774](https://github.com/Slicer/Slicer/pull/7774))
- Update example of DICOM query/retrieve ([PR-7802](https://github.com/Slicer/Slicer/pull/7802))
- Add plane creation example to `markups.md` ([PR-7804](https://github.com/Slicer/Slicer/pull/7804))
- Add Python example for extracting a slice from a volume ([PR-7808](https://github.com/Slicer/Slicer/pull/7808))
- Update Linux documentation ([PR-7798](https://github.com/Slicer/Slicer/pull/7798))
- Add notes to `SECURITY.md` ([PR-7818](https://github.com/Slicer/Slicer/pull/7818))
- Add notes on segment cross-sectional area measurement ([PR-7863](https://github.com/Slicer/Slicer/pull/7863))
- Add script to query/retrieve DICOM with `ctkDICOMScheduler` ([PR-7912](https://github.com/Slicer/Slicer/pull/7912))
- Add `scriptedregistration.md` with an example rigid registration ([PR-7926](https://github.com/Slicer/Slicer/pull/7926))
- Remove outdated example and link to slicerio documentation ([PR-7920](https://github.com/Slicer/Slicer/pull/7920))
- Improve `slicer.util.pip_install` documentation ([PR-7959](https://github.com/Slicer/Slicer/pull/7959))
- Add example to compute distance of points from a plane ([PR-7973](https://github.com/Slicer/Slicer/pull/7973))
- Update recommended screen resolution in documentation ([PR-8010](https://github.com/Slicer/Slicer/pull/8010))
- Clarify doc of `vtkMRMLMarkupsROINode::GetObjectToWorldMatrix` ([PR-8034](https://github.com/Slicer/Slicer/pull/8034))
- Clarify Qt 5.15.2 Windows binary install instructions ([PR-8082](https://github.com/Slicer/Slicer/pull/8082))
- Update `dicom.md` ([PR-8088](https://github.com/Slicer/Slicer/pull/8088))
- Fix “Edit on GitHub” link not appearing on ReadTheDocs ([PR-8107](https://github.com/Slicer/Slicer/pull/8107))
- Set GitHub repository information for documentation generation ([PR-8116](https://github.com/Slicer/Slicer/pull/8116), [PR-8108](https://github.com/Slicer/Slicer/pull/8108))
- Improve `slicer.util.getNode` documentation ([PR-8116](https://github.com/Slicer/Slicer/pull/8116))
- Update links to tutorials ([PR-7910](https://github.com/Slicer/Slicer/pull/7910))

## Improved Modules

### Data

- Improve appearance of node information section in Data module ([PR-7578](https://github.com/Slicer/Slicer/pull/7578))

### DICOM

- Add [visual DICOM browser](https://discourse.slicer.org/t/new-feature-visual-dicom-browser/33874) ([PR-7525](https://github.com/Slicer/Slicer/pull/7525), [PR-7912](https://github.com/Slicer/Slicer/pull/7912), [PR-7676](https://github.com/Slicer/Slicer/pull/7676), [PR-7650](https://github.com/Slicer/Slicer/pull/7650), [PR-7811](https://github.com/Slicer/Slicer/pull/7811), [PR-7751](https://github.com/Slicer/Slicer/pull/7751))
- Add DICOM support for Multi-frame Grayscale Byte Secondary Capture Image ([PR-7566](https://github.com/Slicer/Slicer/pull/7566))
- Add DICOM patcher rule to fix compressed ultrasound discolorization ([PR-7656](https://github.com/Slicer/Slicer/pull/7656))
- Make characterset modifier DICOM patcher rule stronger ([PR-7683](https://github.com/Slicer/Slicer/pull/7683))
- Add `loadSuccess` flag to loadable Qt and VTK DICOM classes ([PR-8139](https://github.com/Slicer/Slicer/pull/8139))
- Fix context change at runtime in DICOM module ([PR-7358](https://github.com/Slicer/Slicer/pull/7358))
- Fix error string format in `DICOMScalarVolumePlugin` and `ImportItkSnapLabel` ([PR-7484](https://github.com/Slicer/Slicer/pull/7484))
- Prevent DICOM Browser popups on initial module entry ([PR-7811](https://github.com/Slicer/Slicer/pull/7811))
- Force loading images from DICOM using right-handed coordinate system ([PR-7858](https://github.com/Slicer/Slicer/pull/7858))
- Fix reading of multiple window/level presets in `DICOMScalarVolumePlugin` ([PR-7922](https://github.com/Slicer/Slicer/pull/7922))
- Skip disabled plugins when loading DICOM by scripting ([PR-7935](https://github.com/Slicer/Slicer/pull/7935))
- Fix regression for scans with negative spacing in DICOM ([PR-7987](https://github.com/Slicer/Slicer/pull/7987))
- Fix hanging progress popup in DICOM browser ([PR-8062](https://github.com/Slicer/Slicer/pull/8062))
- Add loadable warning in case of loading failure ([PR-7163](https://github.com/Slicer/Slicer/pull/7163))

### Endoscopy

- Use “Use this curve” instead of “Create flythrough path” for the button text ([PR-7435](https://github.com/Slicer/Slicer/pull/7435))
- Simplify Endoscopy API related to quaternion ([PR-7431](https://github.com/Slicer/Slicer/pull/7431))
- Improve Endoscopy module UI self-discovery ([PR-7436](https://github.com/Slicer/Slicer/pull/7436))
- Fix rebuild of Endoscopy flythrough when modifying the input curve ([PR-7433](https://github.com/Slicer/Slicer/pull/7433))
- Recompute `EndoscopyLogic` fields immediately instead of lazily ([PR-7437](https://github.com/Slicer/Slicer/pull/7437))

### Markups

- Fix crash in `vtkPointLocator` when markups curve polydata is empty ([PR-7732](https://github.com/Slicer/Slicer/pull/7732))
- Fix issue preventing interaction with Markups curves ([PR-8021](https://github.com/Slicer/Slicer/pull/8021))
- Fix incorrect plane interaction scale handles initialization ([PR-8031](https://github.com/Slicer/Slicer/pull/8031))
- Hide angle markups when the line does not intersect with the slice ([PR-7832](https://github.com/Slicer/Slicer/pull/7832))
- Add API to change screen scale factor ([PR-7740](https://github.com/Slicer/Slicer/pull/7740))
- Skip creation of markups interaction widget in VR windows ([PR-7612](https://github.com/Slicer/Slicer/pull/7612))
- Add `Point(Start/End)InteractionEvent` for Markups interaction handles ([PR-8117](https://github.com/Slicer/Slicer/pull/8117))
- Fix crash in Markups widget when closing a scene ([PR-7628](https://github.com/Slicer/Slicer/pull/7628))
- Fix markups handle scale not updating ([PR-7675](https://github.com/Slicer/Slicer/pull/7675))
- Fix crash when deleting multiple markups in subject hierarchy ([PR-7736](https://github.com/Slicer/Slicer/pull/7736))
- Fix warning messages when creating markups with no display nodes ([PR-7747](https://github.com/Slicer/Slicer/pull/7747))
- Fix unnecessary confirmation popup after hovering over markups ([PR-8000](https://github.com/Slicer/Slicer/pull/8000))
- Fix markups interaction handles not respecting visibility options ([PR-7868](https://github.com/Slicer/Slicer/pull/7868))
- Fix reading of markup point position from integer values ([PR-7928](https://github.com/Slicer/Slicer/pull/7928))
- Fix copying of markup measurements ([PR-8012](https://github.com/Slicer/Slicer/pull/8012))
- Fix missing Markups ROI fill in some views ([PR-8019](https://github.com/Slicer/Slicer/pull/8019))
- Remove explicit dependency of `MarkupsROINode` on JSON storage node ([PR-8152](https://github.com/Slicer/Slicer/pull/8152))

### Models

- Fix warnings when `vtkMRMLModelNode` has no mesh data ([PR-7750](https://github.com/Slicer/Slicer/pull/7750))

### Reformat

- Fix incorrect tooltip for “Rotate to Volume Reformat” button ([PR-7787](https://github.com/Slicer/Slicer/pull/7787))
- Fix failing `vtkMRMLCameraDisplayableManagerTest` ([PR-7853](https://github.com/Slicer/Slicer/pull/7853))

### SampleData

- Add option to download sample data from a custom URL ([PR-8133](https://github.com/Slicer/Slicer/pull/8133))
- Use specified filename as node name in `SampleDataLogic.downloadFromSource` ([PR-8163](https://github.com/Slicer/Slicer/pull/8163))
- Do not require file type in sample data specification ([PR-7479](https://github.com/Slicer/Slicer/pull/7479))
- Fix error handling in `slicer.util.downloadFile` ([PR-7473](https://github.com/Slicer/Slicer/pull/7473))

### Segmentations

- Add `RemoveUnusedDisplayProperties` to `vtkMRMLSegmentationDisplayNode` ([PR-7784](https://github.com/Slicer/Slicer/pull/7784))
- Generate unique segment IDs using a random identifier ([PR-7836](https://github.com/Slicer/Slicer/pull/7836))
- Introduce setting for using standard terminology in segments table ([PR-8011](https://github.com/Slicer/Slicer/pull/8011))
- Allow hiding parts of the Segment Editor widget ([PR-8116](https://github.com/Slicer/Slicer/pull/8116))
- Allow disabling histogram (2D views) interactions of `ThresholdEffect` ([PR-7695](https://github.com/Slicer/Slicer/pull/7695))
- Simplify paint/erase diameter options for a more concise UI ([PR-7278](https://github.com/Slicer/Slicer/pull/7278))
- Add `SegmentationGeometryLogic` API to set reference image geometry ([PR-7607](https://github.com/Slicer/Slicer/pull/7607))
- Make `SegmentsTableView` functions available from Python ([PR-7829](https://github.com/Slicer/Slicer/pull/7829))
- Change log level in Islands effect ([PR-7848](https://github.com/Slicer/Slicer/pull/7848))
- Allow one draw effect point without preventing use in other slice offsets ([PR-6997](https://github.com/Slicer/Slicer/pull/6997))
- Fix smoothing effect for all visible segments ([PR-7483](https://github.com/Slicer/Slicer/pull/7483))
- Fix Mask volume effect node selector ([PR-7478](https://github.com/Slicer/Slicer/pull/7478))
- Fix segment disappearing when sharing Segment Editor node between widgets ([PR-7577](https://github.com/Slicer/Slicer/pull/7577))
- Fix loading of an empty segmentation ([PR-7609](https://github.com/Slicer/Slicer/pull/7609))
- Fix issues caused by invalid Segmentation binary labelmap scalar types ([PR-7605](https://github.com/Slicer/Slicer/pull/7605))
- Fix “Show 3D” button staying disabled ([PR-7962](https://github.com/Slicer/Slicer/pull/7962))
- Fix visibility column in segment list ([PR-8048](https://github.com/Slicer/Slicer/pull/8048))
- Fix segments not visible after thresholding ([PR-8060](https://github.com/Slicer/Slicer/pull/8060))
- Fix name editing in Segment Editor ([PR-8071](https://github.com/Slicer/Slicer/pull/8071))
- Fix output volume node selector in Mask Volume effect ([PR-7939](https://github.com/Slicer/Slicer/pull/7939))

### Segment Statistics

- Add percentiles computation to Segment Statistics scalar volume plugin ([PR-8037](https://github.com/Slicer/Slicer/pull/8037))

### Sequences

- Recognize sequences generated by dcm2niix ([PR-7871](https://github.com/Slicer/Slicer/pull/7871))
- Fix empty candidate node list in Sequences module ([PR-7506](https://github.com/Slicer/Slicer/pull/7506))
- Increase minimum size of Sequences intensity plot ([PR-7871](https://github.com/Slicer/Slicer/pull/7871))
- Fix saving of labelmap volume sequences ([PR-7946](https://github.com/Slicer/Slicer/pull/7946))
- Make `qMRMLSequenceBrowserPlayWidget` shortcuts accessible from Python ([PR-7715](https://github.com/Slicer/Slicer/pull/7715))
- Ensure selected item number in Sequence browser remains valid ([PR-7458](https://github.com/Slicer/Slicer/pull/7458))
- Fix deletion of the last time point in a sequence ([PR-7559](https://github.com/Slicer/Slicer/pull/7559))
- Fix warning when browsing a transform node sequence ([PR-8116](https://github.com/Slicer/Slicer/pull/8116))

### Subject Hierarchy

- Improve SubjectHierarchy API for UIDs ([PR-7616](https://github.com/Slicer/Slicer/pull/7616))
- Fix loading of `SubjectHierarchyPlugin`s at startup ([PR-7477](https://github.com/Slicer/Slicer/pull/7477))
- Add SH options to control transform interaction handle type visibility ([PR-7673](https://github.com/Slicer/Slicer/pull/7673))
- Fix subject hierarchy consolidation after loading a scene ([PR-7616](https://github.com/Slicer/Slicer/pull/7616))
- Do not deselect items in `SHTree::setCurrentItems` before reselecting them ([PR-7452](https://github.com/Slicer/Slicer/pull/7452))
- Fix subject hierarchy help button tooltip appearance in dark mode ([PR-7906](https://github.com/Slicer/Slicer/pull/7906))

### Texts

- Allow `vtkMRMLTextStorageNode` to store any text files ([PR-7961](https://github.com/Slicer/Slicer/pull/7961))

### Terminologies

- Improve terminology selector ([PR-7691](https://github.com/Slicer/Slicer/pull/7691))
- Improve terminology selector speed ([PR-7714](https://github.com/Slicer/Slicer/pull/7714))
- Make terminology code finding more robust ([PR-8003](https://github.com/Slicer/Slicer/pull/8003))
- Add API for finding terminology from codes ([PR-7735](https://github.com/Slicer/Slicer/pull/7735))
- Add methods for comparing terminologies ([PR-7809](https://github.com/Slicer/Slicer/pull/7809))
- Improve terminology category selection ([PR-7976](https://github.com/Slicer/Slicer/pull/7976))
- Add Python-wrappable methods for accessing anatomical regions ([PR-7687](https://github.com/Slicer/Slicer/pull/7687))
- Fix condition for customization in `qSlicerTerminologyItemDelegate` ([PR-8059](https://github.com/Slicer/Slicer/pull/8059))

### Transforms

- Add interaction handle visualization for linear transform nodes ([PR-7562](https://github.com/Slicer/Slicer/pull/7562), [PR-7590](https://github.com/Slicer/Slicer/pull/7590))
- Improve interaction options in Transforms SH plugin and module widget ([PR-7599](https://github.com/Slicer/Slicer/pull/7599))
- Add finer control of 2D interaction handle axis display ([PR-7586](https://github.com/Slicer/Slicer/pull/7586))
- Add “jump to handle” action for interaction handles ([PR-7595](https://github.com/Slicer/Slicer/pull/7595))
- Add “cancel” action for interaction handles ([PR-7600](https://github.com/Slicer/Slicer/pull/7600))
- Add transform plugin in subject hierarchy tree view ([PR-7997](https://github.com/Slicer/Slicer/pull/7997))
- Fix issue saving transform with a non-origin center of transformation ([PR-7878](https://github.com/Slicer/Slicer/pull/7878))
- Fix editing of transform component values in spinbox ([PR-7942](https://github.com/Slicer/Slicer/pull/7942))
- Resolve interaction handles rendering issues ([PR-7903](https://github.com/Slicer/Slicer/pull/7903))

### Volume Rendering

- Make volume rendering preset registration more robust ([PR-7610](https://github.com/Slicer/Slicer/pull/7610))
- Fix volume rendering property always marked as modified ([PR-8029](https://github.com/Slicer/Slicer/pull/8029))

### WebServer

- Control the amount of console output from the Python web proxy ([PR-7950](https://github.com/Slicer/Slicer/pull/7950))
- Add WebServer example scripts ([PR-7841](https://github.com/Slicer/Slicer/pull/7841))
- Fix WebServer script repository formatting ([PR-7843](https://github.com/Slicer/Slicer/pull/7843))
- Update HTTPS support and add WebXR demo as transform controller ([PR-7568](https://github.com/Slicer/Slicer/pull/7568))
- Support returning results when executing Python from `qSlicerWebWidget` ([PR-7624](https://github.com/Slicer/Slicer/pull/7624))
- Add missing OPTIONS request handler when CORS is enabled ([PR-7998](https://github.com/Slicer/Slicer/pull/7998))

## Infrastructure

### Packaging

- Ensure packaging of the latest `d3dcompiler_47.dll` for `SlicerVirtualReality` ([PR-7571](https://github.com/Slicer/Slicer/pull/7571))
- Ensure launcher scripts installed from wheels remain accessible ([PR-7587](https://github.com/Slicer/Slicer/pull/7587))
- Include runtime libraries to ensure compatibility in `SlicerExecutionModel` ([PR-8149](https://github.com/Slicer/Slicer/pull/8149))

### Testing

- Fix `vtkMRMLCameraDisplayableManagerTest1.mrml` ([PR-7517](https://github.com/Slicer/Slicer/pull/7517))
- Fix `vtkMRMLTransformStorageNodeTest1` in debug mode ([PR-8029](https://github.com/Slicer/Slicer/pull/8029))
- Fix `py_SlicerRestoreSceneViewCrashIssue3445` test in debug mode ([PR-8029](https://github.com/Slicer/Slicer/pull/8029))
- Fix `qSlicerExtensionsManagerModelTest` ([PR-7584](https://github.com/Slicer/Slicer/pull/7584))
- Fix `vtkMRMLVolumeArchetypeStorageNodeTest1.cxx` ([PR-7734](https://github.com/Slicer/Slicer/pull/7734))
- Fix `MRMLDisplayableManagerCxxTests` ([PR-7734](https://github.com/Slicer/Slicer/pull/7734))
- Fix SampleData tests to align with revised file loading behavior ([PR-8162](https://github.com/Slicer/Slicer/pull/8162))
- Fix self-tests by explicitly setting file loading parameters ([PR-8164](https://github.com/Slicer/Slicer/pull/8164))

### Continuous integration (CI)

- Add GitHub workflow for keeping pre-commit configuration up to date ([PR-7636](https://github.com/Slicer/Slicer/pull/7636))
- Add GitHub workflow to update the `nightly-main` branch daily ([PR-7953](https://github.com/Slicer/Slicer/pull/7953))
- Skip “CI (Build)” workflow if only SuperBuild changes on `nightly-main` ([PR-7945](https://github.com/Slicer/Slicer/pull/7945))
- Speed up doxygen generation by enabling parallel build ([PR-8138](https://github.com/Slicer/Slicer/pull/8138))
- Add GitHub workflow to trigger Doxygen build and publish ([PR-8144](https://github.com/Slicer/Slicer/pull/8144))
- Fix GitHub workflow for daily updates to `nightly-main` branch ([PR-7955](https://github.com/Slicer/Slicer/pull/7955))
- Fix GitHub workflow authentication for “Update Preview Branch” ([PR-7965](https://github.com/Slicer/Slicer/pull/7965))
- Update `.gitignore` to ensure changes to `.github` files are reported ([PR-7635](https://github.com/Slicer/Slicer/pull/7635))
- Add support for codespell 2.3.0 and fix identified typos ([PR-7762](https://github.com/Slicer/Slicer/pull/7762))
- Add support for codespell 2.4.0 and fix identified typos ([PR-8158](https://github.com/Slicer/Slicer/pull/8158))
- Fix source files and **update** pre-commit setting to run additional hooks ([PR-7647](https://github.com/Slicer/Slicer/pull/7647))
- Update “commit-message” workflow to use dedicated GitHub action ([PR-7925](https://github.com/Slicer/Slicer/pull/7925))
- Fix manual trigger of Doxygen build/publish through GitHub UI ([PR-8146](https://github.com/Slicer/Slicer/pull/8146))
- Fix pull request description generated by pre-commit-autoupdate workflow ([PR-7688](https://github.com/Slicer/Slicer/pull/7688))
- Fix workflow file link in pre-commit-autoupdate workflow ([PR-7690](https://github.com/Slicer/Slicer/pull/7690))
- Fix version extraction in pre-commit-autoupdate workflow ([PR-7755](https://github.com/Slicer/Slicer/pull/7755))

### Build system

- Update acceptable VS2022 MSVC version for TBB install ([PR-7833](https://github.com/Slicer/Slicer/pull/7833))
- Remove obsolete WebKit-specific integration code from `qSlicerWebWidget` ([PR-7625](https://github.com/Slicer/Slicer/pull/7625))
- Drop support for MSVC toolset v141 (Visual Studio 2017) ([PR-7989](https://github.com/Slicer/Slicer/pull/7989))
- Enable OpenSSL support in DCMTK build ([PR-8106](https://github.com/Slicer/Slicer/pull/8106))
- Fix generation of additional launcher settings for list-based settings ([PR-7485](https://github.com/Slicer/Slicer/pull/7485))
- Re-generate additional launcher settings if they are updated ([PR-7486](https://github.com/Slicer/Slicer/pull/7486))
- Ensure full path ID for macOS libraries installed for fixup ([PR-7537](https://github.com/Slicer/Slicer/pull/7537))
- Prefer clearing `CMAKE_INSTALL_NAME_TOOL` on a per-project basis ([PR-7540](https://github.com/Slicer/Slicer/pull/7540))
- Fix ITK’s threading-related method name deprecation warnings ([PR-7400](https://github.com/Slicer/Slicer/pull/7400))
- Fix extension build to ensure build dependency directories are passed ([PR-7712](https://github.com/Slicer/Slicer/pull/7712))
- Remove redundant call in `vtkITKMorphologicalContourInterpolator` ([PR-7723](https://github.com/Slicer/Slicer/pull/7723))
- Resolve deprecated warning in MRML testing macro for `std::string` ([PR-8041](https://github.com/Slicer/Slicer/pull/8041))
- Replace `vtkStdString` with `std::string` ([PR-8042](https://github.com/Slicer/Slicer/pull/8042))

### Platform support

- Add support for configuring `_manylinux` module ([PR-8168](https://github.com/Slicer/Slicer/pull/8168))
- Update minimum required `CMAKE_OSX_DEPLOYMENT_TARGET` to 13.0 ([PR-7990](https://github.com/Slicer/Slicer/pull/7990))
- Fix fatal error not reported for MSVC + TBB compatibility ([PR-7834](https://github.com/Slicer/Slicer/pull/7834))

### Dependencies

**CTK:**

- Update CTK DICOM Database version from `0.7.0` to `0.8.0` ([PR-7472](https://github.com/Slicer/Slicer/pull/7472))
- Update CTK ([PR-7544](https://github.com/Slicer/Slicer/pull/7544), [PR-7558](https://github.com/Slicer/Slicer/pull/7558), [PR-7964](https://github.com/Slicer/Slicer/pull/7964))
- Add `removePatient/Series/Study` signals to DICOM database ([PR-7549](https://github.com/Slicer/Slicer/pull/7549))
- Backport PythonQt fixes & restore script compilation to `.pyc` ([PR-7561](https://github.com/Slicer/Slicer/pull/7561))
- Fix Qt designer crash at startup ([PR-7585](https://github.com/Slicer/Slicer/pull/7585))

**DCMTK:**

- Update DCMTK from `3.6.6` to `3.6.8` ([PR-8018](https://github.com/Slicer/Slicer/pull/8018))
- Backport fixes for CVE-2022-2119 and CVE-2022-2120 ([PR-8017](https://github.com/Slicer/Slicer/pull/8017))

**ITK:**

- Update ITK to `5.4.0` ([PR-7771](https://github.com/Slicer/Slicer/pull/7771))
- Fix HDF5 symbol clash when importing ITK wheel ([PR-7838](https://github.com/Slicer/Slicer/pull/7838))

**libarchive:**

- Fix libarchive build error with Clang 16 ([PR-8097](https://github.com/Slicer/Slicer/pull/8097))

**VTK:**

- Backport selected Rendering, OpenVR, and OpenXR patches ([PR-7487](https://github.com/Slicer/Slicer/pull/7487))
- Backport VR, OpenVR, and OpenXR improvements ([PR-7514](https://github.com/Slicer/Slicer/pull/7514), [PR-7516](https://github.com/Slicer/Slicer/pull/7516))
- Backport OpenXR-SDK improvements for streamlined integration ([PR-7529](https://github.com/Slicer/Slicer/pull/7529))
- Backport support for `Holographic.Remoting.OpenXr >= 2.9.3` ([PR-7534](https://github.com/Slicer/Slicer/pull/7534))
- Backport fix for OpenVR gesture recognition ([PR-7503](https://github.com/Slicer/Slicer/pull/7503))
- Backport `vtkSSAOPass` fixes ([PR-7554](https://github.com/Slicer/Slicer/pull/7554))
- Backport `vtkSSAOPass` intensity adjustment feature ([PR-7820](https://github.com/Slicer/Slicer/pull/7820))
- Fix preprocessor expression in `vtkOpenGLRenderWindow` ([PR-7505](https://github.com/Slicer/Slicer/pull/7505))
- Backport deprecation macro update ([PR-7508](https://github.com/Slicer/Slicer/pull/7508))

**Other Dependencies:**

- Update `FindVcvars` for future MSVC versions ([PR-7815](https://github.com/Slicer/Slicer/pull/7815))
- Update `LandmarkRegistration` in `SuperBuild.cmake` ([PR-7977](https://github.com/Slicer/Slicer/pull/7977))
- Update Python packages to latest ([PR-7597](https://github.com/Slicer/Slicer/pull/7597), [PR-7776](https://github.com/Slicer/Slicer/pull/7776))
- Update `SimpleITK` to fix missing use of custom namespace ([PR-7812](https://github.com/Slicer/Slicer/pull/7812))
- Update `SlicerSurfaceToolbox` to include dynamic modeler extrude tool ([PR-8145](https://github.com/Slicer/Slicer/pull/8145))

### Custom Slicer application support

#### Slicer Application

- Improve and **customize** URI argument handling for custom applications ([PR-7938](https://github.com/Slicer/Slicer/pull/7938))
- Support customizing interaction widget event translation ([PR-8101](https://github.com/Slicer/Slicer/pull/8101))
- Fix `sitkUtils` without `MRMLIDImageIO` ([PR-7940](https://github.com/Slicer/Slicer/pull/7940))

#### Build-System

- Support reuse of “commit-message” GitHub workflow ([PR-7898](https://github.com/Slicer/Slicer/pull/7898))
- Update “pre-commit” workflow to support reuse from private projects ([PR-7900](https://github.com/Slicer/Slicer/pull/7900))
- Fix collision of main project source dir with extension of same name ([PR-7724](https://github.com/Slicer/Slicer/pull/7724))

## Extensions

_Listed below are extensions added, removed or updated since the 5.6 release._

The Slicer [extensions manager](https://slicer.readthedocs.io/en/latest/user_guide/extensions_manager.html) enables Slicer users to install more than 190 extensions written and contributed by their peers from around the world.

### New

- [ConnectToSupervisely](https://github.com/supervisely-ecosystem/SlicerConnectToSupervisely): Extension designed to organize and manage the work of labeling teams on the Supervisely computer vision platform.

- [DTI-ALPS](https://github.com/LOAMRI/Slicer-DTI-ALPS): Calculate the diffusion tensor image analysis along the perivascular space

- [FractionalMyocardialMass](https://github.com/dmolony3/SlicerFractionalMyocardialMass): Computation of fractional myocardial mass (FMM) and myocardial mass at risk (MMAR).

- [ImageAugmenter](https://github.com/ciroraggio/SlicerImageAugmenter) is a MONAI- and PyTorch-based medical image augmentation tool for 3D Slicer. Inspired by the [AugmentedDataLoader](https://github.com/ciroraggio/AugmentedDataLoader), it applies a range of transformations to each image, expanding the training dataset for deep learning models with minimal coding effort.

- [LesionSimulator](https://github.com/CSIM-Toolkits/Slicer-LesionSimulatorExtension): Provides a toolkit for Multiple Sclerosis lesion simulation in multimodal MRI images, such as T1, T2, T2-FLAIR and DTI scalar maps.

- [LesionSpotlight](https://github.com/CSIM-Toolkits/LesionSpotlightExtension): Provides modern T2-FLAIR MRI segmentation and enhancement methods that highlight abnormal white matter voxels, enabling increased contrast and segmentation of hyperintense Multiple Sclerosis lesions.

- [MassVision](https://github.com/jamzad/SlicerMassVision): End-to-end AI solution for Mass Spectrometry Imaging (MSI) data, enabling targeted and non-targeted visualization, histopathology-driven co-localization, dataset curation with spatial and spectral guidance, multi-slide data alignment and denoising, AI model training and validation, and whole-slide AI deployment.

- [MorphoDepot](https://github.com/pieper/SlicerMorphoDepot): use GitHub infrastructure to manage multi-person segmentation projects.

 ![image](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/d/7/d7b4cbca8c959e1202af2e9a152ade130523c7ff.png)

- [MusculoskeletalAnalysis](https://github.com/WashUMusculoskeletalCore/Slicer-MusculoskeletalAnalysis): Analyzes 3D musculoskeletal images and generates reports.

 ![MusculoskeletalAnalysis-modified](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/5/c/5cfa3998092c4639bb0a6e30c7ac3515a7d90a67.png)

- [Photogrammetry](https://discourse.slicer.org/t/photogrammetry-extension-is-released/41891): Preprocess (mask) large collections of photographs which then can be processed to construct 3D models with texture.

- [ScriptEditor](https://github.com/SlicerMorph/SlicerEditor): A script editor. It allows auto complete, text highlighting and saving of the python scripts as text nodes into the scene. To execute a code, highlight in the editor, hit copy and then manually paste it into the python console.

- [SegmentationVerification](https://github.com/cpinter/SlicerSegmentationVerification): Enables quick review and verification of AI segmentation results by inspecting each segment (mask or label).

- [SegmentHumanBody](https://github.com/mazurowski-lab/SlicerSegmentHumanBody): Integrate the SegmentAnyBone developed by Mazurowski Lab.

- [SlicerCineTrack](https://github.com/laboratory-for-translational-medicine/SlicerCineTrack): Visual verification of target tracking results. The extension enables target tracking visualization by replaying cine 2D images and overlays the outline of the Region of interest (ROI) using a displacement data file.

- [SlicerDiffusionComplexityMap](https://github.com/CSIM-Toolkits/SlicerDiffusionComplexityMap): Image processing technique using the principle of diffusion distribution evaluation regarding the LMC complexity measure

- [SlicerMOOSE](https://github.com/mprires/SlicerMOOSE): MOOSE (Multi-organ objective segmentation) is a data-centric AI solution that generates multilabel organ segmentations to facilitate systemic TB whole-person research.

- [SlicerNeuropacs](https://github.com/neuropacs/SlicerNeuropacs): Receive and analyze diffusion MRI data from patients aged 40 years and older presenting with Parkinson’s disease (PD) symptoms.

- [SlicerSOFA](https://github.com/Slicer/SlicerSOFA): Integrate mechanical simulations with 3D Slicer. This extension integrates the [SOFA Framework](https://sofa-framework.org) in 3D Slicer to facilitate the development and execution of mechanical simulations involving 3D meshes, medical-image volumes and interaction with [3D Slicer markups](https://slicer.readthedocs.io/en/latest/user_guide/modules/markups.html). Currently, the extension enables the use of the SOFA API in python and provides its own SlicerSOFA API (optional) to set up a simulation and transfer data between 3D Slicer objects and SOFA objects

- [SlicerTractParcellation](https://github.com/SlicerDMRI/SlicerTractParcellation): Automatic parcellation of white matter tractography using [White matter analysis (WMA)](https://whitematteranalysis.readthedocs.io/en/latest/index.html) method and [O’Donnell Research Group (ORG) atlas](https://dmri.slicer.org/atlases/).

- [TutorialMaker](https://github.com/SlicerLatinAmerica/SlicerTutorialMaker): Streamline the creation of 3D Slicer tutorials in multiple languages.

- [Ultrasound](https://github.com/SlicerUltrasound/SlicerUltrasound): Provide modules to process ultrasound video data.

- [UniGradICON](https://github.com/uncbiag/SlicerUniGradICON): A Foundation Model for Medical Image Registration. The extension provides a Slicer interface for the model, allowing users to perform image registration tasks using the models.

### Updated

All the existing extensions have been maintained and updated to account for API and build environment changes.

### Removed

Between Slicer 5.6 and Slicer 5.8, the extensions `iGyne` and `SlicerOpenCV` were removed.

List of archived extensions is documented at [Slicer/ExtensionsIndex/ARCHIVE/README.md](https://github.com/Slicer/ExtensionsIndex/blob/main/ARCHIVE/README.md).

---

_[View the full topic](https://discourse.slicer.org/t/slicer-5-8-summary-highlights-and-changelog/41988)._
