Difference between revisions of "Documentation/4.1/Developers"
Line 69: | Line 69: | ||
---- | ---- | ||
− | * [[ | + | * [[{{FULLPAGENAME}}/Modules | Modules]] |
: Comparison between the different supported module types | : Comparison between the different supported module types | ||
− | * [[ | + | * [[{{FULLPAGENAME}}/MRML | Data Model - MRML]] |
: Objects and their organization. MRML Library provides API for managing medical image data type | : Objects and their organization. MRML Library provides API for managing medical image data type | ||
− | * [[ | + | * [[{{FULLPAGENAME}}/Logics | Logics]] |
: Details the role of MRML/Slicer/Application/Modules logics and Displayable managers | : Details the role of MRML/Slicer/Application/Modules logics and Displayable managers | ||
− | * [[ | + | * [[{{FULLPAGENAME}}/Python scripting | Python scripting]] |
: Presents the underlying infrastructure. | : Presents the underlying infrastructure. | ||
− | * [[ | + | * [[{{FULLPAGENAME}}/Charts | Charts]] |
: Description of the Charting architecture. | : Description of the Charting architecture. | ||
− | * [[ | + | * [[{{FULLPAGENAME}}/Build system | Build system]] |
: Details how Slicer is built and packaged. | : Details how Slicer is built and packaged. | ||
Revision as of 04:56, 15 June 2012
Home < Documentation < 4.1 < Developers
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
Getting involved
|
Build instructions
Design & Implementation
|
|