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).
- Highlights of the new architecture
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 |
| Instructions for NA-MIC svn | Slicer3 Dashboard (After May 2, 2008) |
| Use ViewVC to browse the repository | Slicer3 Dashboard (Before May 2, 2008) |
| Slicer3 build instructions | 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 | |
| Two module types (Command line and Interactive) | Key People |
| Command line modules and how to implement one | Jim and Bill Intro |
| 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. Stay tuned for developments... |
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
Projects should correspond to the outstanding issues listed on the Status Summary. Please 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 |
| Transition of Selected Slicer2.x Modules to Slicer3 | Nicole, Katie, Wendy, Mathieu |
| DTMRI | Alex with help from Diffusion Images: Raul, Tractography: Lauren LMI |
| Editor | Steve |
| Colors, Fiducials, FreeSurfer, ModelMaker | Nicole |
| IGT, Trackers | Haiying |
| EMSegment Interface | Brad Davis |
| SlicerDaemon Interface (for unu, matlab) | Steve Pieper |
| Build/Test/Deploy System | Andy, Katie |
| Loni Pipeline Integration | Jags |
| Batchmake/GRID Integration | Julien Jomier |
| Registration Modules | Jim Miller, Steve Pieper |
| Improvements to the registration framework | Casey Goodlett, Stephen Aylward |
| Python Integration | Dan Blezek |
| Grid Integration | Jeff Grethe, Neil |
| Slicer3:Performance Analysis | Katie |
| Threading ToolKit | Dan Blezek, James Miller, Stephen Aylward |
| Volume Rendering | Yanling, Andy |
| Volume Rendering using the VTK GPU acclerated Ray Caster | Lisa Avila / Sebastien Barre |
| Volume Rendering With CUDA (NOT Active) | Ben |
| XNAT Interface | Steve, Wendy, Dan Marcus, Tim Olsen |
| LDDMM Interface | Steve, Anthony Kolasny |
| Web Presence | Nicole Aucoin, Zack Galbreath |
| Loadable Modules | Alex Yarmarkovich, Steve Pieper |
| Extensions | Steve Peiper |
| Diffusion Editor | Kerstin |
| TimeSeries and Multi-Volume Data | Steve Pieper, Daniel Blezek, Dominik Meier, Wendy Plesniak |
| Remote Data Handling | Steve Pieper, Nicole Aucoin, Wendy Plesniak |
| Query Atlas | Wendy Plesniak |
| MistSlicer | Yuichiro Hayashi, Kensaku Mori, Nobuhiko Hata |
| Radiological review | Jim Miller |
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:
