Difference between revisions of "Documentation/4.1/Developers"

From Slicer Wiki
Jump to: navigation, search
Line 27: Line 27:
 
! width="33%"|
 
! width="33%"|
 
|-  
 
|-  
 +
|valign="top"|
 +
 +
=== Getting involved ===
 +
----
 +
 +
* [[{{FULLPAGENAME}}/Meetings|Developer meetings]]
 +
: It is open to everyone, feel free to join.
 +
 +
* [http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-devel Developers mailing list] / [http://slicer-devel.65872.n3.nabble.com/ Browse archives]
 +
: Intended for discussion of programming related questions
 +
 +
|bgcolor="#CCCCCC"|
 
|valign="top"|
 
|valign="top"|
  
Line 39: Line 51:
 
* [http://slicer.org/doc/html/classes.html Doxygen]
 
* [http://slicer.org/doc/html/classes.html Doxygen]
 
: Source code API documentation.
 
: Source code API documentation.
 +
 +
* [[{{FULLPAGENAME}}/Style Guide|Slicer Style Guidelines]]
 +
: Consistency and Readability for a manageable code base
  
 
* [https://github.com/Slicer/Slicer Git repository] / [http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk ViewVC] / [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision last commit]
 
* [https://github.com/Slicer/Slicer Git repository] / [http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk ViewVC] / [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision last commit]
 
: <code>git clone git://github.com/Slicer/Slicer.git</code>
 
: <code>git clone git://github.com/Slicer/Slicer.git</code>
 
* [[Slicer4:QtPort/Releases|Change logs and release details]]
 
: Informations about Slicer releases
 
 
=== Getting involved ===
 
----
 
 
* [[{{FULLPAGENAME}}/Meetings|Developer meetings]]
 
: It is open to everyone, feel free to join.
 
 
* [http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-devel Developers mailing list] / [http://slicer-devel.65872.n3.nabble.com/ Browse archives]
 
: Intended for discussion of programming related questions
 
 
* [[{{FULLPAGENAME}}/Style Guide|Slicer Style Guidelines]]
 
: Consistency and Readability for a manageable code base
 
  
 
* [[Slicer4:Developers|Developer Projects]]
 
* [[Slicer4:Developers|Developer Projects]]
 
: Pages for the developer projects.
 
: Pages for the developer projects.
  
|bgcolor="#CCCCCC"|
+
* [[Slicer4:QtPort/Releases|Change logs and release details]]
|valign="top"|
+
: Informations about Slicer releases
  
 
=== Step by step - Develop a module or an extension ===
 
=== Step by step - Develop a module or an extension ===

Revision as of 06:35, 15 June 2012

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.

Add or improve a functionality: Where to start ?

SlicerDeveloper-ContributionWorkflow.png

Developer references

Getting involved


It is open to everyone, feel free to join.
Intended for discussion of programming related questions

Resources


Nightly, continuous and experimental dashboards.
Web-based bug tracking system
Source code API documentation.
Consistency and Readability for a manageable code base
git clone git://github.com/Slicer/Slicer.git
Pages for the developer projects.
Informations about Slicer releases

Step by step - Develop a module or an extension


  1. Where to start?
  2. Build Slicer application from source

Build instructions


Compiling and installing Slicer from source.
Build, test, package and distribute extensions

Design & Implementation


Comparison between the different supported module types
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
Presents the underlying infrastructure.
Description of the Charting architecture.
Details how Slicer is built and packaged.


How To









Slicer4Announcement-HiRes.png