Slicer3:Status Summary
From NAMIC Wiki
Home < Slicer3:Status Summary
Slicer3 |
---|
New functionality is being added to the Slicer3 repository daily to flesh out and finish the features of the software. This page provides an overview of the major planned functionality together with a snapshot of the status in the current build. Use the 'history' tab for this page to see when the status changed for various parts of the project.
This list includes items that we expect to be functional as part of the 3.0 release.
Contents
- 1 MRML (Slicer scene description file format)
- 2 Slices
- 3 3D View
- 4 Data GUI
- 5 Volumes
- 6 Models
- 7 Transforms
- 8 Application GUI
- 9 Fiducials
- 10 Execution Model
- 11 Colors
- 12 Model Maker
- 13 Editor
- 14 Slicer2 Modules
- 15 Build/Package
- 16 Testing
- 17 Bug Tracking
- 18 Pipeline Integration
- 19 Grid Interface
- 20 System
- 21 TODO/Notes
MRML (Slicer scene description file format)
Done |
- Core library and nodes -- done
- Save/Restore of Module Parameter Nodes
In Process |
- Undo/Redo -- done, debugging
- Load/Save/Import Scene -- done, debugging
- Slicer2.x MRML import as new scene (supports volumes, models, transforms, fiducials)
Not Done |
Deferred |
- SmartPointers
Slices
Done |
- Pixel to Physical space matrices -- done
- Slice display, FG/BG blend -- done
- pan/zoom/slice scroll -- done
- Slices visible in 3D
- Corner annotations -- coordinates and pixel values displayed
- Label map display, overlay
- Repacking, resizing slice windows -- done
- Volumes should be transparent outside of their boundaries done
- Color Nodes and Lookup tables
In Process |
- Oblique slice views -- No GUI yet, but supporte in nodes and logic
Not Done |
- Keyboard and event bindings -- not done Slicer3:EventBindings
Deferred |
- Display on Non-Linear Transforms
- Integration of wwidgets -- slicer will use non-standard widgets for 3.0, but will migrate to WWidgets for later releases
3D View
Done |
- Display Models -- done
- Display Slices -- done
- MRML Nodes to store camera settings -- done
- Orientation letters and FOV cube
In Process |
- Logo widget -- widget basically done, needs integration
Not Done |
- Keyboard and mouse bindings -- not done
- Lighting nodes and GUI -- not done
Deferred |
- Volume Rendering (IGT will be driver)
- Integration of wwidgets -- not done
Data GUI
Done |
- Scene display -- done
- Cut and paste to edit transform hierarchy
In Process |
- Property Editors -- in process
Not Done |
- Drag and drop editing (like in EMSegmenter tree)
Deferred |
- Model Hierarchy (control visibility / display properties of subgroups)
Volumes
Done |
- Load Volume -- done
- Export volumes in various formats -- done
- Drawing of Threshold
- optionally name a volume, set label flag, when loading -- done
- Auto Window/Level, Auto Threshold -- done
- GUI for Lookup tables -- done
- Display Control
In Process |
- Display of color/vector/tensor volumes -- not done
Not Done |
Deferred |
Models
Done |
- Load model -- done
- Display Control and Logic (material properties editor and nodes) -- done
- Load models from directory -- done
- Clipping Control and Logic -- done
- Hierarchy editor (transforms) -- done
In Process |
- Scalar fields selection, with lookup tables -- not done
Not Done |
Deferred |
- Clipping of transformed models
- Apply (harden) transform to a model -- not done (command line module?)
Transforms
Done |
- Matrix editor -- done
- Hierarchy of linear transforms can be applied to models and volumes
In Process |
- Transform Node Manipulation -- done, but needs usability overhaul
- Automatic registration --- not done - registration modules do not yet return transforms
Not Done |
- Resample volumes through transforms -- not done (command line module, also transform models and fiducials?)
Deferred |
- Nonlinear transforms
- Interactive Transform editing -- in process
Application GUI
Done |
- Overall Look and Feel -- done
- New logo finalized.
- Module navigation and search -- done.
- Toolbar view configuration done (lightbox deferred).
- Module GUI appearance modifications for visual clarity -- done.
- Module notebook and collapsing frame styles -- done.
- Update icons and remove unused icons -- done.
- Added new method to create a Help&About frame in each ModuleGUI
In Process |
Mostly a to-do list of little things:
- Toolbar
- Mouse mode selection and hot-key decisions, and finalize toolbar
- hook up load/save icons to application functionality
- modify menu button text to truncate in middle with '...' if module name too long
- improve module search functionality (not required, but nice)
- View and Navigation panel
- Nav Zoom widget -- in progress.
- design logic for Fiducial visibility, and implement toggle in 3D viewer
- implement fov and % zoom entry widgets
- check packing across all platforms (problem on linux?
- if rocking/spinning, find way to pause, resume rock/spin after view reconfiguration
- once multiple views and multiple cameras can be created, activate the icons for saving and selecting views and cameras.
- Slices control panel
- implement Fiducial visibility toggle in slice windows
- Implement base classes for "pop-up help windows" and icon to be used application-wide.
Not Done |
- Ability to start up with stereo enabled, detect that, and activate the stereo menu options
- Check look&feel across build platform and adjust theme to ensure appearance is consistent as possible.
Deferred |
- lightbox view not implemented
Fiducials
Done |
- MRML nodes for individual fiducials and fiducial lists -- done
- Fiducials GUI -- done
- Display of fiducials in 3D -- done
- widget fiducial display/edit in slices -- done
In Process |
Not Done |
Slicer3:Transition_of_Slicer2.x_Modules:Fiducials
Deferred |
- wwidget fiducial edit in 3d view -- in process
Execution Model
Done |
- Command Line Modules base implementation
- Executable and Shared library detection/loading
- Auto generated GUI
- File based and memory based volume i/o
- Executing module in separate thread
- Progress/abort events
- Category navigation
- Models
- Logging to a slicer window
- Runtime-selection of image types
- Access to XML fields from C++
In Process |
- Module Functionality -- many useful filters in place, more to come
- Fiducials -- orientation needs to added to XML spec
- Vector and tensor images - waiting on Slicer IO
Not Done |
- Other data types i/o (transforms, etc)
- Serialize parameter nodes
- Module packaging for safe discovery mechanism
- Reloading of modules
- Lazy gui construction
- Separate value and default in ModuleDescription
- Don't emit file and directory command line options if values not set
- Contributor logos per module
- Shared memory volume i/o to unu
Deferred |
- Nonlinear transforms
- Steering optimizers
- Auto generated wwidgets
- Workflow (modules with several steps)
Colors
Done |
- Nodes and Logic for managing color tables -- done for volumes
In Process |
- Color Module GUI in process
Not Done |
- colors for models scalar fields -- not done
Deferred |
Model Maker
Done |
- Implemented as command line module -- done
In Process |
Not Done |
- Tie in to Colors -- to be done when colors module is ready
Deferred |
Editor
Done |
- Basic Paint functionality
- Basic Draw functionality
- Paint/Draw with threshold
- Paint/Draw option not to draw over existing non-zero values
- Paint radius control
- Paint 'eye dropper' mode for quick color changes
In Process |
Not Done |
Deferred |
- Painting on Models
- Math Morphology, threshold, and other tools -- not done (may be pushed to slicer3.1)
- Auto Save Mode (save label map every minute)
- Oversample Label map mode
- Volume Math/Logic functions
Slicer2 Modules
Done |
- ModelMaker
- Fiducials
- FreeSurfer readers - curv surfaces, scalar overlays, annotations can load (some debugging still to do)
In Process |
- EMSegment
- DTMRI
Not Done |
Deferred |
- Compatibility layer to allow some slicer2 modules to run inside slicer3 -- not done (priority on modules currently used heavily by clinical collaborators and/or modules ported by the original module developers)
Build/Package
Done |
- CPack based installers for all platforms -- being optimized
In Process |
Not Done |
- Nightly build installers uploaded to web site -- not done
- Stable branches of vtk,itk,kwwidgets for slicer3 -- to be done during final test phase
Deferred |
Testing
Done |
In Process |
- Dart dashboard -- set up, but being debugged
Not Done |
- Nightly build and test on major platforms -- not done
- Test suite for MRML API -- not done
- Test suite for Logic API -- not done
- Test suite for GUI API -- not done
- Test suites for Modules -- not done
Deferred |
Bug Tracking
Done |
In Process |
Not Done |
- Slicer3 bug tracker -- not done
http://www.na-mic.org/Bug/index.php - go to Slicer3 project
Deferred |
Pipeline Integration
Done |
In Process |
- LONI Pipeline can now be called on the command line with workflows with pre-bound parameters
- Provides the output results according to bound parameters and the logs are useful to track progress
Pending |
- Ability to bind parameters on the command line
- Ability to showcase status messages for the user to track progress
Deferred |
Grid Interface
Done |
In Process |
- Uniform job submission format for remote execution command line modules -- underway
Not Done |
Deferred |
System
Done |
- Doxygen for Slicer3 - now being generated nightly
- splash screen
- about box
In Process |
- Debug memory leaks -- ongoing
- Optimize event/observer flows -- ongoing
- Optimize launcher, startup times -- ongoing
- Code reviews for:
- Coding style -- ongoing
- In line documentation -- ongoing
- Consistent naming conventions and patterns -- ongoing
- Implement / clean up command line arguments
Not Done |
- Overall software documentation (the Slicer3 book? - maybe in 2007)
- User tutorials and documentation
- GUI Tracing
- Need to clean up Applications/Slicer3.cxx to unify discovery/initialization of built-in modules more like Slicer2
Deferred |
TODO/Notes
- Unify the observer code for use in MRML, Logic, and GUI
- currently there is much duplication of the command callback structures
- perhaps this needs to be a separate library that can be used by all?
- we should be specifically observing DeleteEvent to avoid observing events invoked during destructors
- The SetAndObserve* calls should also have a signature where they accept an event to observe
- Perhaps this layer could also allow us to disable all the callbacks (not clear this is needed)