www.slicer.org

Slicer Developer Orientation

Welcome Slicer Developers. You are creating Slicer's future. After all, Slicer is an open source package suited for easy modular expansion by developers with ideas for Slicer designs and applications. This page acts as a portal to acquaint you with the basics of Slicer development and route you through the table below to an interactive Wiki exclusive to Slicer development that represents a vast community of individuals. The following table contains links to useful resources within the Slicer Wiki:


Before getting started, please look at the 3D Slicer Software License Agreement.

Slicer 2.6 (Release) Slicer 3 (Beta)
Slicer Developer Documentation Slicer 2 Getting Started Module Documentation and Slicer 3 Documentation in Development
Build Instructions Slicer 2.6 Build Instructions and Transitioning Slicer 2 to Slicer 3 Slicer 3 Build Instructions and Building a Slicer 3 Module GUI
Coding Considerations Slicer 101 Tutorial Slicer 3 Coding Style and Slicer 3 Interface Design
VC for Browsing Repository View VC View VC
Slicer svn Repository and SVN Instructions Accessing Source Code svn Repository and Instructions for svn
Dashboard and Visual Blog Slicer 101 Tutorial Slicer 3 Dashboard and Visual Blog
Status Report Slicer 101 Tutorial Status Reports
Bug Tracker Slicer 2 Bug Tracker Slicer 3 Bug Tracker
Developer Discussion Developer's Mailing List Developer's Mailing List
Module Execution Documentation Execution Model Execution Model and Adapting Slicer to Large Scale Experiments




















Slicer Development Basics


Example of fiber tracking. See Kubicki et al J Psychiatr Res 2007 for more info.
Example of fiber tracking. See Kubicki et al J Psychiatr Res 2007 for more info.

Slicer is based on Vtk, a graphical library that provides a high-level interface to OpenGL and a pipeline mechanism to connect graphical filters. The library is implemented in C++ but provides a Tcl wrapper to instantiate and execute its methods. Tcl/Tk comprises the rest of 3D Slicer user interface and event handling.

Slicer software supports automatic testing and employs an extreme programming approach with nightly builds natively on multiple platforms. Recent accomplishments include added capability for plugging in external modules using XML-based command line interface.

Slicer 3 is the latest version of Slicer that has integrated within it features to make adding to Slicer easier than before. If you are new to Slicer, viewing slides on its architecture will familiarize you with its framework.