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 [http://www.na-mic.org/Bug/search.php?project_id=1&severity_i
d=10&sticky_issues=on&sortby=last_updated&dir=DESC&hide_stat
us_id=90 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.
Resources
Several books are available on the core topics related to slicer programming: