Documentation/4.1/Developers

From Slicer Wiki
Jump to: navigation, search
Home < Documentation < 4.1 < Developers


Extensions Management dialog
Browse the image gallery

3D Slicer is a free open source extensible software application for medical image computing and visualization. Mainly written in C++ and based on the NA-MIC kit, 3D Slicer relies on a variety of libraries: VTK, ITK, CTK, CMake, Qt and Python.

To ensure the stability of the application, relying on a robust software process, the source code is compiled and tested on a daily basis on a variety of platform configurations. The testing results are summarized and reported using a web-based centralized CDash dashboard. Developers of 3D Slicer can also report issues on the open mailing list or using web-based bug tracking system.

3D Slicer consists of both a lean application core and modules offering specific functionality. The core implements the user interface, provides support for data input/output (IO) and visualization and also exposes developer interfaces that support extension of the application with new modules.

Three types of modules are supported: CLI, Loadable module and Scripted module. While the developer has to choose between one of the 3 types to implement its module, the end user won't notice the difference as they all share the same look & feel. The choice for a given type of module is usually based on the type of inputs/parameters for a given module.

These modules can be either built-in or installed on demand via the extensions manager.

Resources


Source code API documentation.
Web-based code repository viewer.
Informations about Slicer releases

Getting involved


It is open to everyone, feel free to join.
Consistency and Readability for a manageable code base
Pages for the developer projects.

Mailing List - slicer-devel [at] bwh [dot] harvard [dot] edu

Intended for the discussion of programming related questions.
Search for priorly posted questions and answers on nabble.com

Compile / Package


git clone git://github.com/Slicer/Slicer.git
Compiling and installing Slicer from source.
Build, test, package and distribute extensions
Nightly, continuous and experimental dashboards.

Design & Implementation


Comparison between the different module types supported by Slicer
Objects and their organization. MRML Library provides API for managing medical image data type.
Details the role of logics in Slicer
Lists the different logic types such as displayable managers.
Presents the underlying infrastructure.
Description of the Charting architecture.
Details how Slicer is built and packaged.


How To









Slicer4Announcement-HiRes.png