Slicer3:Developers
Slicer 3 Developer Page
This page contains links to Slicer3 developer resources and events.
Click here for Slicer3 Events
Slicer 3 Architecture Overview
For more details on the slicer architecture see: Architecture Slides (updated April, 2007).
Quick Links for Developers
This section centrally locates many existing (and developing) wiki pages useful to Slicer3 developers.
Slicer 3 Quick links to the Source code
The Slicer3 svn repository:
svn co http://svn.slicer.org/Slicer3/trunk Slicer3
General Slicer3 Quick Links | Debugging Slicer3 Quick Links |
Slicer3 build instructions | Slicer3 Dashboard (After May 2, 2008) |
Use ViewVC to browse the repository | Slicer3 Dashboard (Before May 2, 2008) |
Instructions for NA-MIC svn | Slicer Bug Tracker |
Doxygen documentation for Slicer3. | |
The Slicer3 VisualBlog shows screenshots of slicer developments. | |
Developers should follow the Slicer 3 Coding Style. |
Developers' Mailing List
Discussion of Slicer3 takes place on the slicer-devel at massmail.spl.harvard.edu list. To join developer's mailing list, send a request to: slicer-devel-request at massmail.spl.harvard.edu with the keyword subscribe as the subject. Or access the slicer-devel archives and web administration interface.
Introduction to Slicer3 | Key People |
Getting the software and troubleshooting | |
Overall Architecture and Slicer 3 Coding Style | |
Contributing codes to Slicer3 | |
Three module types (Command line, Loadable, Scriptable) | Key People |
Integrating with the 3D Slicer | Jim and Steve |
Command line modules and how to implement one and Tutorial | Jim |
MRML Medical Reality Modeling Language (MRML) is a language implemented as a type of XML document, with new tags defined to handle medical image data types such as volumes, models or coordinate transforms. MRML Slides |
Key People |
Creating and using new MRML node types | Alex |
Keeping references to MRML nodes | Alex |
How undo/redo works, and how to enable it in your code | Alex |
GUI | Key People |
Adding keyboard shortcuts | Wendy |
GUI style guidelines (undergoing change for move to Qt) | Wendy |
User-centered design practice | Wendy |
3DSlicer's logo and visual communication guidelines | Wendy |
Incorporating your group's logo and attributions | Jim |
Some experiments/advanced techniques for developing slicer3 interfaces | Steve |
Engineering | Key People |
Tips for avoiding memory leaks: Current Practice | Steve |
Tips for avoiding memory leaks: Suggested change to SmartPointers | Jim |
Generating tests | Bill |
Setting up Testing | |
Build Information | |
The Launcher | |
Documenting your module As soon as the wiki page template is finalized, and the infrastructure is added to link to this wiki page from the "Help & Acknowledgment" panel in your module's GUI, we will ask developers to fill out a brief document describing your module and its use. See here for more information. |
Key People |
Documenting a module with wink | |
Integrate Slicer3 into a development environment | Key People |
Eclipse | Michael Keilhack |
Microsoft Visual Studio 200x |
Quick Links to Slicer3 Projects
Pending feature requests are stored in the slicer bug tracker with severity setting of 'feature'. Please also refer to the Feature Requests from users when planning your implementations.
Slicer3 Projects | Key People Bold names are responsible for an aspect of the project. |
Architecture/Features | Steve Pieper, Group: Bill Lorensen, Ron Kikinis, Mike Halle, Noby Hata |
Data Model / libMRML | Alex, Steve |
Execution Model / Command Line Modules | Jim Miller, Bill Lorensen |
Interface Design and Usability | Wendy Plesniak, KWWidgets: Sebastien Barre, Yumin Yuan |
DTMRI | Alex with help from Diffusion Images: Raul, Tractography: Lauren LMI |
Editor | Steve |
Colors | Nicole Aucoin |
Fiducials | Nicole Aucoin |
Model Maker | Nicole Aucoin |
FreeSurfer | Nicole Aucoin |
IGT, Trackers | Haiying |
EMSegment Interface | Kilian Pohl |
SlicerDaemon Interface (for unu, matlab) | Steve Pieper |
Build/Test/Deploy System | Katie Hayes |
Batchmake/GRID Integration | Julien Jomier |
Registration Modules | Domink Meier |
Python Integration | Dan Blezek |
Grid Integration | Jeff Grethe, Marco Ruiz |
Volume Rendering | Yanling Liu |
Volume Rendering using the VTK GPU acclerated Ray Caster | Lisa Avila / Sebastien Barre |
XNAT Interface | Steve, Wendy, Dan Marcus, Tim Olsen |
Web Presence | Nicole Aucoin, Zack Galbreath |
Loadable Modules | Alex Yarmarkovich, Steve Pieper |
Extensions | Steve Pieper |
TimeSeries and Multi-Volume Data | Junichi Tokuda, Steve Pieper, Daniel Blezek, Dominik Meier, Wendy Plesniak |
Remote Data Handling | Steve Pieper, Nicole Aucoin, Wendy Plesniak |
Query Atlas | Wendy Plesniak |
Radiological review | Jim Miller |
Inactive Projects | This is list of experimental projects which are not active at this time |
Transition of Selected Slicer2.x Modules to Slicer3 | Nicole, Katie, Wendy, Mathieu |
Diffusion Editor | Kerstin |
MistSlicer | Yuichiro Hayashi, Kensaku Mori, Nobuhiko Hata |
LDDMM Interface | Steve, Anthony Kolasny |
Volume Rendering With CUDA (NOT Active) | Ben |
Loni Pipeline Integration | Jags |
Slicer3:Performance Analysis | Katie Hayes |
Threading ToolKit | Dan Blezek, James Miller, Stephen Aylward |
Design Information
- May 23, 2006: Algorithm Core workshop.
- April 3, 2006: Slicer 3 alpha technical powerpoint presentation.
- Discussion page about using Slicer3:Qt.
- Implementation priorities from the slicer3 port are shown in this Status Summary.
Resources
Several books are available on the core topics related to slicer programming: