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 improve the quality of information on the Slicer wiki.

Slicer Development Basics

Example of fiber tracking. See Kubicki M., McCarley R.W., Westin C-F., Park H-J., Maier S.E., Kikinis R., Jolesz F.A., Shenton M.E. A Review of Diffusion Tensor Imaging Studies in Schizophrenia. J Psychiatr Res. 2007 Jan-Feb;41(1-2):15-30. PMID: 16023676. PMCID: PMC2768134.

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, Qt and Python. Please see the NA-MIC kit home page for more information.

Slicer 4.0 was introduced in late 2011 as the latest in a series of developments and releases stretching back over a decade.

  • Slicer aims for a "lightweight core" and a variety modules. These include Built-In Modules, Loadable Modules, Scripted Modules, and 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 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 4.1 (Current release version)
Slicer Developer Documentation Development Project Homepage
Build Instructions Slicer4.1 Build Instructions
Coding Considerations Slicer4.1 Coding Style
SVN Source Code Repository Browsing View VC
API Slicer4.1 Source code API documentation
SVN Repository and SVN Instructions SVN Repository and SVN Instructions
Dashboard Slicer4.1 Dashboard
Bug Tracker Bug Tracker
Visual Blog Visual Blog
Developer Discussion Developer's Mailing List: Intended for the discussion of programming related questions
Module Execution Documentation Execution Model

Slicer 3.x (Previous release version)
Slicer Developer Documentation Development Project Homepage, Execution Model Documentation and Building a Slicer 3 Module GUI
Build Instructions Slicer 3 Build Instructions
Coding Considerations Slicer 3 Coding Style and Slicer 3 Interface Design
SVN Source Code Repository Browsing View VC
API Slicer 3 Doxygen Source Documentation
Slicer 3 SVN Repository and SVN Instructions svn Repository and Introduction to Slicer 3 svn
Dashboard Slicer 3 Dashboard
Bug Tracker Slicer 3 Bug Tracker
Visual Blog Visual Blog
Developer Discussion Developer's Mailing List
Module Execution Documentation Execution Model and Adapting Slicer to Large Scale Experiments

Developer information about Slicer 2.6

See the web archives