jcfr
(Jean Christophe Fillion Robin (Kitware))
November 11, 2024, 11:23pm
1
Table of content
Summary
The community of 3D Slicer developers is pleased to share the announcement of version 5.4, originally released last year.
3D Slicer 5.4 built on the success of previous versions, which have collectively seen over 1.4 million downloads of the core application and 6.8 million downloads of extensions over the past decade
The development of 3D Slicer—including its numerous modules, extensions, datasets, pull requests, patches, issues reports, suggestions—is made possible by users, developers, contributors and commercial partners around the world. 3D Slicer is based on a stack of open-source software and we are working constantly on updating the underlying packages. This development is funded by various grants and agencies. For more details, please see the 3D Slicer Acknowledgments page.
Feel free to share your insights on Discourse and explore our contributing guidelines . If you need help using Slicer, want to report a problem, request a feature, or share how Slicer has contributed to your work, visit our Get Help section.
slicer.org serves as the central hub for the application, training materials, and the development community, offering a series of tutorials and data sets through the Slicer Tutorials page.
Please note that Slicer continues to be a research package and is not intended for clinical use (clinical users must obtain the necessary ethics or regulatory approvals).
This version was released on August 19th, 2023, and the associated git tag is v5.4.0 . Information about previous releases can be found on the Release Details page.
1 Like
jcfr
(Jean Christophe Fillion Robin (Kitware))
November 11, 2024, 11:23pm
2
Changelog
Core
Rendering & Display
Implement multi-monitor layout (PR-6776 )
Add option for displaying vertical slice controller (PR-6712 )
Enable “Pickable” segment display property to allow disabling point picking (PR-6984 )
Introduce fractional addition to Add/Subtract Slice Compositing pipeline (PR-7002 )
Add flip and rotate buttons to Reformat module (PR-7078 )
Update Slicer Controller with Thick Slab Reconstruction option (PR-7021 )
Initialize global pause render state for newly created views (PR-6947 )
Display slab reconstruction thickness in slice view corner (PR-7177 )
Use column name as plot title when unspecified (PR-6682 )
Improve Volumes module display options and fix related issues (PR-6758 )
Add “Refocus camera” action to view context menu (PR-6916 )
Add alternative shortcut for view pan-zoom-rotate (PR-6916 )
Update crosshair cursor position on 3D view mouse move events (PR-6937 )
Fix issue allowing more than one rotation slider to be non-zero (PR-6759 )
Fix computation of offset direction label in slice view controller (PR-6781 )
Fix warning when changing window/level with mouse mode (PR-6897 )
Fix inability to change foreground volume window level with mouse mode (PR-6924 )
Fix dynamic update of transform visualization (PR-6956 )
Fix interaction handle visibility when changing displayed slice (PR-6992 )
Fix inability to change foreground W/L with mouse mode (PR-6996 )
Fix small shift in slice image in 3D views (MR-6959 )
Fix “Restore view layout” action in view context menu (PR-7097 )
Fix potential segfault during initialization of qMRMLSliceWidget
(PR-7115 )
Fix color legend visibility on non-standard slice views (PR-6836 )
Fix display issues with “Model,” “plane markups,” and “segmentation closed surface” slice intersections (PR-7102 )
Application
Enlarge error report box (PR-6769 )
Make ctk ErrorLogWidget dockable (PR-7059 )
Avoid superfluous error message (PR-6952 )
Enable saving and restoring SliceViewAnnotations display level (PR-7175 )
Re-export selected PNGs to fix “libpng warning: iCCP: CRC error” (PR-6807 )
Improve rendering of SaveDataDialog checkboxes in Dark Mode (PR-7098 )
Enhance Python scripted module detection for drag-and-drop (MR-6959 )
Synchronize DataProbe UI initialization and “Restore Defaults” action (PR-7174 )
Improve module finder filtering (PR-6844 )
Support import type annotation from Slicer during module load (PR-6847 )
Skip camera undo when undo is not enabled on vtkMRMLCameraNode
(PR-7018 )
Fix splash screen loading text visibility (PR-7023 )
Fix crash when adding %s
specifier to color legend label (PR-6795 )
Fix home shortcut behavior when Python console visible (PR-7167 )
Fix scene compatibility error message (PR-6755 )
Fix non-functional exit cross on “Save before exit” popup (PR-6906 )
Fix launching .py
files in Slicer with -I
argument (MR-6959 )
IO
Enable process output retrieval during CLI execution (PR-6721 )
Support shallow and deep copy for scalar volume display node (PR-6857 )
Simplify loading of .vtk
image files (PR-7117 )
Update vtkMRMLParser
to support custom types ending with “Node” (PR-6715 )
Check file extension readers before inspecting content (PR-7139 )
Update MultiVolumeImporter to load as volume sequence by default (PR-7141 )
Load tables with default column type (PR-6775 )
Generate segment colors for raw NRRD files via storage node (MR-6959 )
Choose file reader/writer based on confidence level (PR-6998 )
Update vtkMRMLWriteXMLMatrix4x4Macro
to separate values with a single space (PR-7039 )
Fix error message in vtkMRMLColorTableNode
(PR-6729 )
Fix reading of vector fields from NIFTI files (PR-6791 )
Fix CLI module issue with reading output from initially empty nodes (MR-6959 )
Extension
Add API for downloading and installing extensions (PR-7145 )
Update ExtensionsManager install API to check for updates (PR-7151 )
Update server-based extension installation to return a boolean status (PR-7148 )
Fix blank Extensions Manager on Linux due to Chromium sandboxing (PR-6744 )
Fix IsPluginInstalled()
behavior when the plugin is installed in the application build tree (PR-6970 )
Fix color setting in qSlicerExtensionsLocalWidget
status messages (PR-7147 )
Scripting
Add Parameter Node Wrapper for vtkMRMLScriptedModuleNode
to provide typed member access (PR-6684 , PR-6725 , PR-6727 , PR-6740 , PR-6757 , PR-6772 , PR-6771 , PR-6783 , PR-6800 , PR-6808 , PR-6829 , PR-6843 , PR-6848 , PR-6862 , PR-6865 , PR-6871 , PR-6891 )
Enable use of pathlib.Path
objects for paths in slicer.util
(PR-6743 )
Add array size hints for improved Python wrapping (PR-6765 )
Implement ParameterNodeWrapper default by assignment (PR-6871 )
Add module paths to the application via drag-and-drop (PR-6872 )
Allow setting a custom editor for .py
files (PR-7074 )
Add utility function to retrieve ROI box as vtkPolyData
(PR-6958 )
Add “Test” button to ScriptedLoadableModule UI (PR-7038 )
Add convenience methods for locating markup control points (MR-6959 )
Update slicer.util.updateVolumeFromArray
to support 1D NumPy arrays (PR-7142 )
Update DWMRIMultishellIOTests to remove nose function dependency (PR-7052 )
Improve error reporting in ScriptedFileReaderWriterTest (PR-7144 )
Register ParameterNodeWrapper plugins within corresponding modules (PR-6855 )
Apply miscellaneous scripted module fixes (PR-6993 )
Add Python utility functions for ITK image ↔ volume node conversion (PR-7094 )
Fix observer warning in scripted module template (PR-6720 )
Fix lost setValue
function with nested parameter packs (PR-6851 )
Fix Python wrapping for methods using enum arguments (PR-6935 )
Internationalization/Localization
Bundle Qt language tools (PR-6798 )
Ensure Qt language tools are bundled on macOS (PR-6904 )
Add translation function for Python scripted modules (PR-6917 )
Update CTK to the latest version for improved translations (PR-6926 )
Enable update_translations.py
to create new translation components (PR-7107 )
Mark additional text as translatable (PR-6921 )
Position literals after string format specifiers for translation (PR-6777 )
Make loadable module titles translatable (PR-6828 )
Fix application’s applicationLocale
object (PR-7035 )
Fix welcome module translation (PR-6810 )
Apply minor fixes to improve translations, remove warnings, and enhance Python wrapping (PR-6820 )
Mark translatable strings in various core components (Base/QTGUI, Base/QTCore, Base/QTApp, Base/QTCli) (PR-6704 , PR-6768 , PR-6784 , PR-6793 , PR-6821 )
Make all text in built-in CLI modules translatable (PR-6681 )
Mark translatable strings in DataProbe module (PR-6960 )
Mark translatable strings in Sequences module (PR-6977 )
Mark translatable strings in Markups module (PR-6962 )
Mark translatable strings in Segmentations module (PR-6948 )
Mark translatable strings in SegmentStatistics module (PR-6942 )
Mark translatable strings in Volume Rendering module (MR-6959 )
Mark translatable strings in Volumes module (PR-6655 )
Improved Modules
DICOM
Add DICOM patcher rules for character set and exposure fixes (PR-6940 )
Default to loading DICOM files using the DICOM module (PR-7077 )
Support special characters when saving scenes to DICOM SC (PR-6963 )
Add parsed parameters in DICOMRequestHandler
(PR-6713 )
Save DICOM instance UID in the image sequence plugin (PR-7096 )
Allow multiple DICOM plugins with the same confidence level for export (PR-6863 )
Fix regression in DICOM patcher (PR-6950 )
Fix user warning triggered by the default progress callback in send()
(PR-6822 )
Support color DICOM data series (PR-7089 )
Remove redundant “Warning:” prefix in DICOM popup messages (PR-7164 )
Import additional series information from DICOM images (PR-6877 )
Markups
Allow custom markup classes to store additional properties in the markups file as JSON (PR-6756 )
Add support for curve torsion measurement (PR-6774 )
Allow line/angle markups to remain visible even when control points are hidden (PR-6842 )
Support detaching the markups toolbar from the mouse mode toolbar (PR-6675 )
Fix reading of default markup active color (PR-6736 )
Fix markups curve measurements test (PR-6816 )
Add toggle action for markups in the Markups Place button menu (PR-6856 )
Improve example for exporting markup measurements (PR-6746 )
Increase robustness for loading legacy annotation fiducials, lines, and ROI nodes (PR-6814 )
Fix copying of curves using CopyContent
(PR-6818 )
Fix static control point measurements for closed curves (PR-6887 )
Fix potential NaN in torsion calculations for markup curves (PR-7122 )
Enable translation/rotation of unlocked points in a list (PR-7025 )
Models
Fix Models module name display issue (PR-6846 )
Sample Data
Fix sample dataset labels not appearing on large desktop monitors (PR-6731 )
Sequences
Restore synchronized visibility for sequence table headers (PR-6951 )
Fix warning in sequence browser seek widget (MR-6959 )
Improve sequence editing functionality and fix related issues (PR-6930 )
Fix consistency check in vtkMRMLVolumeSequenceStorageNode
(PR-7069 )
Segmentation
Add soft edge option to Mask Volume Segment Editor effect (PR-6849 )
Add vtkITKGrowCut
filter (PR-6946 )
Use inclusive language for segmentation source representation (PR-6901 )
Create non-existing segments when importing a label map to segmentation node (PR-6835 )
Set segment “Pickable” display property to true if not specified (PR-7000 )
Fix behavior after invisible segment confirmation popup (PR-7084 )
Subject Hierarchy
Add option in Subject Hierarchy to set segment opacity (PR-6932 )
Add menu actions to hide or show selected items in the subject tree (PR-7028 )
Fix Dynamic Modeler layout in SurfaceToolbox module (PR-6938 )
Enable uniform remeshing in SurfaceToolbox for triangle strips (PR-6974 )
Tables
Fix initialization of non-string table cells to prevent random values (PR-6850 )
Preserve column order when reading tables from files (PR-6850 )
Terminologies
Fix handling of non-modified terminology types (PR-7009 )
Volume Rendering
Fix color synchronization inaccuracies in the Volume Rendering module (PR-7042 )
Prevent display of volume rendering if the volume is under a non-linear transform (PR-7065 )
Improve volume rendering presets (PR-6762 )
WebServer
Add Web Server examples using Three.js and ModelViewer (PR-6985 )
Add VolView link to WebServer examples (PR-6995 )
Fix SlicerRequestHandler
return value when reader does not return any node ID (PR-6752 )
Free notifier after request handling (PR-6824 )
Removed Modules
Remove Annotations module (PR-6524 )
Move ACPC Transform module to SlicerNeuro extension (PR-7005 )
Infrastructure
Packaging
Change organization name and domain from NA-MIC to Slicer (PR-6750 )
Create a Windows Desktop shortcut during installation (PR-6761 )
Replace lib
with CMAKE_INSTALL_LIBDIR
for standardized library installation path (PR-6760 )
Fix issue with CPACK_NSIS_INSTALL_SUBDIRECTORY
being overwritten (PR-7091 )
Update organization name and domain to slicer.org
(PR-6879 )
Adjust package vendor setting for improved clarity (PR-6881 )
Fix Qt tools packaging (PR-6907 )
Testing
Fix qMRMLLayoutManagerVisibilityTest
(PR-6797 )
Fix qSlicerMouseModeToolBarTest1
(PR-6802 )
Update SlicerOrientationSelectorTestTest
to accommodate widget rename (PR-7082 )
Update test_slicer_util_save
to use a non-deprecated method (PR-7022 )
Fix failing qMRMLLayoutManagerTest2
and py_SubjectHierarchyGenericSelfTest
tests (PR-6755 )
Continuous Integration (CI)
Fix “Build Slicer” CI workflow for push events (PR-7064 )
Skip steps in required jobs instead of skipping entire workflows (PR-7062 )
Update codespell
GitHub workflow to include additional exceptions (PR-6853 )
Add Dependabot workflow to update GitHub Actions dependencies (PR-6888 )
Pin more GitHub actions to full-length commit SHA for consistency (PR-6898 )
Build-System
Update minimum supported macOS versions (PR-6695 )
Remove exposure of ui_*.h
files from public header files (PR-6909 )
Remove redundant includes (PR-7106 )
Fix timestamp warnings in external project download and extraction (PR-7138 )
Add missing include guards and remove unused header files (PR-7070 )
Prefer ITK Python wheels over building ITK Python from source (PR-7051 )
Fix various warnings (PR-6864 , PR-7048 )
Apply lint fixes (PR-7076 )
Update vtkMRMLSliceNode
to use MRML helper macros (PR-7039 )
Fix build when OpenSSL support is disabled (PR-6747 )
Fix vtkMarkupsAnnotationSceneTest
build with SceneViews module disabled (PR-6790 )
Support slicerFunctionAddPythonQtResources()
for extension modules (PR-6792 )
Fix lint and spellchecker errors (PR-6949 )
Report error if an unsupported CMake version (3.25.0-3.25.2) is used (PR-6852 )
Speed up incremental builds on Linux (PR-6983 , PR-7001 )
Support enforcing specific Slicer revision during extension build (PR-7040 )
Fix deprecation warnings by explicitly calling vtkStdString::c_str()
(PR-7044 )
Remove redundant FindFontConfig
module (PR-6155 )
Fix potentially invalid pointer in vtkSlicerSegmentationsModuleLogic
(PR-7050 )
Ensure consistent include guard definitions to match filenames (PR-7072 )
Replace deprecated Qt Script usage (PR-6710 )
Fix CMake 3.26 warning in SlicerLinkerAsNeededFlagCheck
project (PR-7135 )
Ensure disabling Slicer_USE_PYTHONQT
also disables SimpleITK
(PR-7146 )
Fix Sphinx build warning in Python FAQ related to “txt” lexer (PR-7173 )
Fix Python-extension-manager-ssl-requirements build with [crypto]
specifier (PR-7113 )
Add missing QSslConfiguration
include (PR-6884 )
Validate application name in slicerMacroBuildApplication
(PR-6880 )
Fix vtkMarkupsAnnotationSceneTest
build with SceneViews module disabled (part 2) (PR-6834 )
Fix -Wunused-parameter
warning in vtkMRMLSliceLogic::VolumeWindowLevelEditable
(PR-6900 )
Fix -Wrange-loop-construct
warning in Markups module (PR-6902 )
Fix Python linting issues (PR-6706 )
Remove unused workaround_recommonmark_issue_191
custom Sphinx extension (PR-6714 )
Update markdown files to use LF line-endings (PR-6734 )
Fix Python lint errors (PR-6817 )
Correct various typos (PR-7032 , PR-7054 )
Ensure “#endif ” guards do not include comments (PR-7071 )
Fix typos in header comments (PR-7073 )
Improve comment clarity (PR-7075 )
Remove duplicated include in qSlicerPersistentCookieJar
(PR-7158 )
Remove duplicated include in vtkMRMLSequenceStorageNode.cxx
(PR-7162 )
Dependencies
vtkAddon:
Simplify wrapping of module logic and MRML libraries (PR-6885 )
Add support for Python module naming (PR-6841 )
Fix potential out-of-bounds issue in vtkCurveGenerator
(PR-7043 )
Remove redundant Markups MRML classes (PR-6883 )
VTK:
Backport OpenXR and OpenXRRemoting updates (PR-6780 )
Backport rendering changes for VR, OpenVR, and OpenXR (PR-6967 )
Upgrade VTK from 9.1.20220125 to 9.2.20230607 (PR-7010 )
Reintroduce OpenVR API to retrieve last pose (PR-6754 )
Ensure valid OpenVR pose retrieval (PR-6779 )
Restore complex gesture support in SlicerVirtualReality (PR-6805 )
Fix regression blocking older .vtp
file loading (PR-7080 )
Resolve regression in Dynamic Modeler curve cut (PR-7140 )
Address Windows build error related to .pyi
file generation (PR-6903 )
Fix packaging error due to missing .pyi
files (PR-6905 )
Support external build for RenderingOpenXRRemoting module (PR-6933 )
Workaround external project output error flagging (PR-7104 )
CTK:
Address warnings and miscellaneous issues (PR-7045 )
Fix crash when importing ctk
or qt
in standalone Python (PR-6886 )
Apply minor fixes in the latest version (PR-6939 )
Fix initial sizing of modules using ctkFlowLayout
(PR-7111 )
Resolve build issue for CTK DICOM Core library (PR-6908 )
Correct styling of ctkRangeSlider
(PR-7116 )
Remove code specific to Qt 4 (PR-7127 )
Ensure only required Qt components are included (PR-7129 , PR-7133 )
Update general CTK components (PR-7110 )
ITK:
Fix read/write of displacement fields in NIFTI format (PR-6799 )
Backport fixes for gcc13 compatibility in ITK and VTK (PR-6971 )
Improve dependency analysis for Flatpak (PR-7019 )
Clarify image_from_vtk_image
usage (PR-7168 )
Other Dependencies:
Update RapidJSON to 2023.05.09 to resolve warnings (PR-7047 )
Correct GitHub organization for qRestAPI
external project (PR-7085 )
Update Python packages to latest versions (PR-7046 , PR-6803 , PR-6859 )
Documentation
Templates and Guides:
Tweak “release” issue template (PR-6699 )
Tweak “patch-release” issue template (PR-6701 )
Improve “release” and “patch-release” issue templates (PR-6703 )
Add “Self Tests” developer documentation (PR-6742 )
General Documentation Improvements:
Fix typos and grammar in various documents (PR-7063 , PR-7121 )
Update Debian distribution names in linux.md (PR-7020 )
Improve documentation on slicer.util.pip_install
usage (PR-7172 )
Fix typo in Troubleshooting guide (PR-6707 )
Correct link to ImageStacks tutorial in Volumes module documentation (PR-6718 )
Update parameter node documentation (PR-6873 )
Scripting and API Documentation:
Describe pip_install
usage in modules (PR-6913 )
Add Qt connection details to Python FAQ (PR-6737 )
Improve slicer.util.to_bool
docstring (PR-6697 )
Add Python FAQ improvements (PR-7014 )
Code and Feature-Specific Documentation:
Clarify volume computation in Segment statistics documentation (PR-6739 )
Document how to add volume rendering presets (PR-6763 )
Clarify GetTransformBetweenNodes
PostMultiply mode (PR-6840 )
Describe automatic resampling of binary labelmap representation (PR-7170 )
Improve “Interpolation order” parameter documentation (PR-7006 )
Add example for model point picking (PR-7026 )
Expand GUI documentation for Segment Editor module (PR-6955 )
Add limitations section to segmentations.md (PR-6978 )
Platform-Specific Notes and Fixes:
Add warning in linux.md about Debian’s OpenSSL (PR-7033 )
Add note in linux.md regarding Debian 12 and CMake (PR-7031 )
Update Windows build instructions (PR-7036 )
Confirm compatibility with newer CMake versions (PR-7053 )
Example Code and Practical Usage:
Add hanging protocol example to script repository (PR-6915 )
Update example usage in sequence browser documentation (PR-6854 )
Update segmenteditor.md with node reference info (PR-7134 )
Syntax and Formatting Adjustments:
1 Like