From Slicer Wiki
Revision as of 22:10, 12 November 2015 by UpdateBot (talk | contribs) (Nightly -> 4.5)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Home < Documentation < 4.5 < Developers

For the latest Slicer documentation, visit the read-the-docs.

New Developers:    Welcome ! Check these instructions !

Getting involved

Start here

New community member checklist

Developer meetings

It is open to everyone, feel free to join.

Developers mailing list / Sign-up / Browse archives

Intended for discussion of programming related questions


Set of common development questions/answers


Roadmap  UPDATED

What's next ? What's the plan ?

Source code repository

Github or SVN

CDash Quality Dashboard / Setup a dashboard

Nightly, continuous and experimental dashboards.

Bug tracker / Register / Report a problem / Contribute a patch

Web-based bug tracking system - Configuration


Source code API documentation.

Slicer Style Guidelines

Consistency and Readability for a manageable code base

Labs   NEW

Keep track of on-going experiments.

Change logs and release details

Informations about Slicer releases


List Slicer resources and who to contact in case of problem.

Build instructions

Create Slicer extensions   UPDATED

Build, test, package and distribute extensions

Build Slicer application

Compiling and installing Slicer from source.

Build Module

Compiling slicer modules outside of the slicer source tree.

Design & Implementation


Comparison between the different supported module types

Data Model / MRML

Objects and their organization. MRML Library provides API for managing medical image data type


Details the role of MRML/Slicer/Application/Modules logics and Displayable managers


How to control the layout of the views


Create simple standalone applications (slicelets)

IO Mechanism

How to read or write nodes from file

Python scripting

Presents the underlying infrastructure.


Description of the Charting architecture.

Directory Structure

Files location in the build and install tree.

Qt Plugins

How to build and load Qt plugins.

Build system / Release process / Factory description

Details how Slicer is built and packaged.


Testing framework to test Slicer application. It complements unit tests.

Source code How-tos

Checkout Slicer source
Setup for Git development   NEW
Commit change sets
Contribute a patch
Integrate topic from external contributor

Module How-tos

Create a CLI module or extension
Create a Loadable module or extension
Create a Scripted module or extension
Create an Editor effect
Bundle module(s) into a Slicer extension
Build module outside of Slicer source tree
Add or Update a Remote module   NEW

Testing How-tos

Write a Self Test Module
Write Cxx tests for your C++ loadable module
Upload test data on Midas

Documentation How-tos

Document a module
Document an extension
Wiki Cheat sheet: Useful templates   NEW

Extension How-tos

Obtain an API key to submit on the extension server
Contribute an extension description file using the wizard   NEW
Manually contributing an extension description file
Build an extension
Package an extension
Upload an extension
Build an ExtensionsIndex UnderConstruction.png

Porting How-tos

Port a CLI to ITKv4

Dev How-tos

Setup QtCreator to develop Slicer application or modules
Setup a dashboard
Write a widget for Slicer and Qt Designer
Use custom widgets in Qt Designer
Load UI file from python

Debugging How-tos

Use debugger with Slicer application
Troubleshoot issues such as crash, or memory leaks
Prevent memory leaks - VTK, Python and reference counting
Debugging Python in Visual Studio