- 1 Overview
- 2 User Feedback & Feature requests
- 3 Slicer3 convention requests
- 4 Resources requests
Feature requests (software functionality) and Resource requests (provisions like documentation, software development tools, etc.) can be made on this page by both users and developers. Detailed descriptions will best help us to understand and address requests.
Slicer3's vision statement (for biomedical and other users without a computer science background) notes the following features planned in Slicer 3.0:
- New 2D GUI widgets with potential for automated testing of GUI functionality, plus high level widgets to support advanced imaging capabilities (e.g., transfer function editor)
- New 3D interaction widgets for direct manipulation and measurement of data
- Lowering the effort to add functionality
- New way to integrate external programs (execution model) as Slicer modules, including ITK
- Improved modularization and plug-in architecture
- Rearchitecture of the data and scene description
- Rearchitecture of the coordinate system structure
- Upwards compatible for the core functionality with Slicer 2.6 from a user perspective
- Easy porting of slicer 2.6 code
- Support Undo/Redo facility for interactive editing
- Improved rendering capability including GPU support
- Usability guidelines to promote software consistency
For users of Slicer 2.6:
- Slicer 3.0 will maintain the core functionality of previous versions, but with a cleaner and more integrated user interface.
- Slicer 3.0 will import scenes from previous versions of Slicer.
- NA-MIC will provide updated tutorials and documentation to help people use Slicer 3.0.
- The Slicer team will be available to help with the transition.
User Feedback & Feature requests
General: Nice features from other packages
- Persistent GUI toolbar for common functions (for Slicer: open scene, save scene, view configuration...)
- Active cursor in 3D view (elements that will respond to mouse actions highlight as the cursor passes over them). See sketchup for a nice example. The cursor shape can change, and there is text highlighting of the result.
- "Undo command beyond one action" for editing.
- Cortical drawing tool (3D drawing tool): In order to make drawing significantly faster, particularly for ROI which are complicated, it would be very helpful to be able to draw ROI on the 3D cortical surface where they are often clearest.
- Propagation Tool: Ability to propagate a drawn line (e.g. drawn on a 3D surface) medially to the gray/white interface. The result would be a surface that separates different regions of the cortex. These surfaces, the cortex surface and the interface between white and gray matter would outline an ROI. In a matter of moments, then, you could have outlined and rendered an entire ROI for one side (less UI more a module request)
- Function to measure length of a curvature line (specifically, measure length of curvature lines drawn along specific sulci) (less UI more a module request)
Requested package-wide features and behaviors
- Look and Feel should leverage training provided to end users by the different office packages.
- Interaction should maximize skill transfer from slicer2 where reasonable.
- Better navigation among modules ( if for instance several (more than two) modules are being used, it would be nice to easily move forward and backward among them according to their use-history.
- Ability to organize modules in tree-structure using GUI (like bookmarks in a web browser)
- Ability to turn off/on modules to be loaded using GUI.
- More extensive help menus for general slicer commands and modules.
- Some more intuitive interpretation of mouse events in the 3D View: when is the view being manipulated, and when is a "pick" or a "pick and manipulate" happening? Maybe some kind of mouse-mode switches can be available in the icon toolbar.
- Ability to set default parameters like add a default file format parameter so that we can always set it to NRRD. Other options may be "interpolation mode" (off) or default view.
- Possibility to load multiple volumes of the same type at once (for example select the 10 labelmaps at the same time, then click "apply").
- Ability to deal with volumes (ie DICOM CT volumes) where slice spacing is not uniform.
- More than just 2 layers (FG and BG) in the Slice windows, if desired. Analogous to Layers in Photoshop, it would be nice to create an arbitrary number of layers and choose the manner in which each is composited. Should still be simple to use only FG and BG if those are the only two layers needed.
- Fiducials: Ability to see the selected fiducials in the 2d slices. (at the current slicer26 setup, once a fiducial is selected it's only visible in the 3D view)
- Slice toolbar that goes in each panel in the 4x512 view: change from one that shows up when you mouseover (as in slicer26) to one that you click to activate or even to a floating toolbar kind of like the "Volumes" levels and thresholds toolbar.
- cross-reference can be turned on and off
- different styles for the cross-reference: how to not distract from the central voxel
- split functionality into tool box and module
- access to toolbox is persistent in the GUI
- creation of label set automatic without user interaction for default setting
- different erasers and paint tools (kww in 3D?)
- assumes existence of integrated volume rendering, does things like connectivity, morphologic operations, potential for scripting down the road.
- Possibility to draw a label in multiple slices at once.
- Option to save a labelmap but keep the former version in the MRML tree
- list with checkboxes for what to save
- display of what is already saved
- option of specifying relative or absolute path
- default organization into directories with MRML file in top level
- save as allows to save the entire "tree" into a new target location
- remove "save with options"
- Better integration of eddy current correction (Deft from Gordon Kindlmann) in Linux. i.e. ease of use from command line or GUI. Current use requires full path input to use Deft from slicer.
- Output of results of eddy current correction during processing. Some type of progress bar, step list, etc. would be very helpful to gauge the progress of the program.
- Integrate a segmenting tool for frequently used ROIs
- Replace 3D tubes with single lines in order to get a faster and bug-free application of tracography
- Need fewer steps between growing and drawing in tractography
- Need a user-friendly way to save and load prior used ROIs
- (PS-Great work done on improvement of saving, changing colors and filters!)
- Add help text describing how to interpret the brain activation color map
- Generating design matrix for the first time takes too long right now; implemented in Tcl -- move to VTK/C++.
- In Ising Priors tab, the GUI asks us to load a label map, but is expecting a mrml file (and then should be clear about whether we are selecting a label map or mrml file in the slice window pull-down menus).
- Priors: may want to use a larger range of label values to label grey matter, instead of a single label ( for instance to indicate partial voluming).
- Priors: change the range of the number of iterations to approximately 50, rather than the large range provided, and a better default might be 10 iterations.
- Priors: can we volume render the p-value activation volumes?
- Priors: finish implementing the help text.
- When translating to Slicer3 environment and extending this module, think about this module's value to three key groups of users -- neurosurgeons (who may principally want a binary result -- voxel active or not?); neuroscientists (who may be principally interested in running many analyses with the same configuration, performing group comparisons, and deriving numerical and visualization output to support publication); and image analysis researchers (who will want a flexible, extensible activation detection and analysis environment).
- Facilitate group comparisons: warping individual analysis results into atlas space?
- Priors: may add a slider to adjust the strength of neighboring voxel influence
- Save & Load: Essential to provide ability to save configuration, data and results within a directory tree that reflects an organized study (MRML representation)
- Methods for cluster signficance may be useful as inference engines in addition to Priors.
- Fiducial selection: possibility to click on a voxel and automatically set the fiducial at the middle of this voxel.
- Fiducials visibility in slice windows: Ability to see all the selected fiducials in the 2d slices. (at the current setup, once a fiducial is selected it's only visible in the 3D view)
- Fiducial visibility: need to save and restore fiducial visibility state in a MRML scene.
- Want to be able to turn fiducial visibility on and off globally, and also just in the 3D viewer, and just in slice viewer?
- "model editor": update the model automatically when the corrsponding labels change. In order to create smooth models for publishing, currently the user has to change the labels, then create the model, then change the labels again and so on.
- make sure we can save screen shots of the 3D viewer at a specified size and dpi resolution for presentations, publications. Can this be done with off-screen rendering, since images for print may be very large?
- The "Xenios1 Challenge": can slicer3 have a web server interface?
- Ability to view the current scene in a web browser
- Ability to download data from the scene
- Ability to upload data to the scene
- Ability to invoke modules and other analyses
- Full web services interface?
1: Named for Xenios Papademetris of Yale who suggested that this should be a standard feature of software.
Slicer3 convention requests
Discussion of Slicer3 Mouse and Keyboard behaviors has been moved to Slicer3:EventBindings.
The current mouse mode will always be visible in a toolbar in the slicer display. There will also be hot keys to select specify mouse modes.
Developers: what kinds of resources do you need to make module development easier? Slicer users: what kind of resources outside of software features (i.e. documentation, tutorials) do you need to make Slicer3 easier to use?