Slicer for Software Developers
Slicer is a free, open source package suited for easy modular expansion by software developers who want to use the 3D Slicer software as a basis for their work. This page is intended as a portal and contains links to a variety of pages with information for software developers. It will allow you to acquaint yourself with the basics of Slicer development. Please feel free to contribute to the documentation and and improve the quality of information on the Slicer wiki.
Slicer Development Basics
3D Slicer is a software application written in C++ and is based on the NA-MIC kit. 3D Slicer relies on a variety of toolkits, libraries and uses a software methodology for multi-developer, multi-platform work and quality assurance. These components include VTK, ITK, Cmake, KWW and TK/TCL. Please see the NA-MIC kit home page for more information.
Slicer 3 is the latest version of Slicer and was introduced in early 2007. In mid-2008 Slicer 3.2 has been released. That release contained a large number of substantial changed to the Slicer architecture and featurelist. See here for more information.
- Slicer 3 has a "lightweight core" and a variety modules. These include Built-In Modules, Loadable Modules, Scripted Modules, Command Line Modules. Command Line Modules represent a relatively easy way to add the functionality to slicer. For a presentation about how to add your own module, please see here. This approach allows access to ITK, Python and a variety of other packages.
- Slicer 3 has a workflow engine to allow developers to introduce user-guidance into workflow. Please look at the Changetracker module in Slicer 3.3 for an example. See here for more information.
- IGT research is specifically enabled through interface capabilities to devices, such as trackers, scanners and robots. We have developed a low-level communication protocol, called Open IGT Link. Please see here for more information.
Before getting started, please look at the 3D Slicer Software License Agreement.
| Slicer 3.x (Current development version) | |
| Slicer Developer Documentation | Development Project Homeage, Module Documentation and Slicer 3 Doxygen Source Documentation |
| Build Instructions | Slicer 3 Build Instructions and Building a Slicer 3 Module GUI |
| Coding Considerations | Slicer 3 Coding Style and Slicer 3 Interface Design |
| Source Code Repository (cvs/svn) Browsing | View VC |
| Slicer svn Repository and SVN Instructions | svn Repository and Instructions for svn |
| Dashboard and Visual Blog | Slicer 3 Dashboard and Visual Blog |
| Status Report | Status Reports |
| Bug Tracker | Slicer 3 Bug Tracker |
| Developer Discussion | Developer's Mailing List |
| Module Execution Documentation | Execution Model and Adapting Slicer to Large Scale Experiments |
