Difference between revisions of "Slicer3:Developers"
m (Text replacement - "\[http:\/\/wiki\.slicer\.org\/slicerWiki\/index\.php\/([^ ]+) ([^]]+)]" to "$2") |
|||
(38 intermediate revisions by 9 users not shown) | |||
Line 2: | Line 2: | ||
= Slicer 3 Developer Page = | = Slicer 3 Developer Page = | ||
[[Image:3DSlicerLogo-H-Color-212x121.png|right]] | [[Image:3DSlicerLogo-H-Color-212x121.png|right]] | ||
− | This page contains links to Slicer3 developer resources and events. | + | *This page contains links to Slicer3 developer resources and events. |
− | + | *For information about other versions of Slicer see [[Developers|here]] | |
− | Click here for | + | *Click here for <big>'''[[Slicer3:Events|Slicer3 Events]]'''</big> |
== Slicer 3 Architecture Overview == | == Slicer 3 Architecture Overview == | ||
Line 28: | Line 28: | ||
|style="background:#ddf" width="40%"|'''Debugging Slicer3 Quick Links''' | |style="background:#ddf" width="40%"|'''Debugging Slicer3 Quick Links''' | ||
|- | |- | ||
− | ||[ | + | ||[[Slicer3:Build_Instructions|Slicer3 build instructions]] |
||[http://www.cdash.org/CDash/index.php?project=Slicer3 Slicer3 Dashboard (After May 2, 2008)] | ||[http://www.cdash.org/CDash/index.php?project=Slicer3 Slicer3 Dashboard (After May 2, 2008)] | ||
|- | |- | ||
Line 34: | Line 34: | ||
||[http://www.na-mic.org/Slicer3/Dashboard Slicer3 Dashboard (Before May 2, 2008)] | ||[http://www.na-mic.org/Slicer3/Dashboard Slicer3 Dashboard (Before May 2, 2008)] | ||
|- | |- | ||
− | ||[ | + | ||[http://www.na-mic.org/Wiki/index.php/Engineering:SandBox Instructions for NA-MIC svn] |
||[http://na-mic.org/Mantis/main_page.php Slicer Bug Tracker] | ||[http://na-mic.org/Mantis/main_page.php Slicer Bug Tracker] | ||
|- | |- | ||
Line 51: | Line 51: | ||
<br> | <br> | ||
<br> | <br> | ||
+ | |||
+ | == Developer Documentation == | ||
+ | |||
+ | The following links provide more detail on internal aspects of the code. If you need more information, please follow up with email to the listed developers or the developer mailing list. | ||
{|width="800px" border="1" | {|width="800px" border="1" | ||
Line 66: | Line 70: | ||
|| | || | ||
|- | |- | ||
− | |style="background:#ddf"|''' | + | |style="background:#ddf"|'''Three module types (Command line, Loadable, Scriptable)''' |
|bgcolor="#ddf" valign="top"|'''Key People''' | |bgcolor="#ddf" valign="top"|'''Key People''' | ||
|- | |- | ||
− | ||[[Slicer3:Execution_Model_Documentation | Command line modules and how to implement one]] | + | ||[[Media:Integrating with Slicer3.ppt | Integrating with the 3D Slicer]] || Jim and Steve |
− | + | |- | |
+ | ||[[Slicer3:Execution_Model_Documentation | Command line modules and how to implement one]] and [[media:Slicer3Plugins.ppt|Tutorial]] | ||
+ | ||Jim | ||
|- | |- | ||
|style="background:#ddf"|'''MRML'''<br/>Medical Reality Modeling Language (MRML) is a language implemented as a type of XML document, with new tags defined to handle medical image data types such as volumes, models or coordinate transforms. [http://www.na-mic.org/Wiki/images/e/e3/Slicer3_MRML.ppt MRML Slides] | |style="background:#ddf"|'''MRML'''<br/>Medical Reality Modeling Language (MRML) is a language implemented as a type of XML document, with new tags defined to handle medical image data types such as volumes, models or coordinate transforms. [http://www.na-mic.org/Wiki/images/e/e3/Slicer3_MRML.ppt MRML Slides] | ||
Line 126: | Line 132: | ||
|| | || | ||
|- | |- | ||
− | |style="background:#ddf"|'''Documenting your module'''<br/> | + | |style="background:#ddf"|'''Documenting your module'''<br/>Infrastructure has been added to link to wiki pages from the "Help & Acknowledgment" panel in your module's GUI. We ask developers to fill out a brief document describing your module and its use. [[Documentation-3.5#Requirements_for_Modules|See here for more information.]] |
|bgcolor="#ddf" valign="top"|'''Key People''' | |bgcolor="#ddf" valign="top"|'''Key People''' | ||
|- | |- | ||
Line 135: | Line 141: | ||
|bgcolor="#ddf" valign="top"|'''Key People''' | |bgcolor="#ddf" valign="top"|'''Key People''' | ||
|- | |- | ||
− | ||[[Slicer3::Eclipse | Eclipse]] | + | ||[[Slicer3::Eclipse | Original Eclipse]] |
||Michael Keilhack | ||Michael Keilhack | ||
+ | |- | ||
+ | ||[[Slicer3::New Eclipse Instructions | Revised Eclipse Instructions]] | ||
+ | ||Curtis Lisle | ||
+ | |- | ||
+ | ||[[Slicer3::Debugging with Eclipse Instructions | Debugging Slicer with Eclipse Instructions]] | ||
+ | ||Curtis Lisle | ||
|- | |- | ||
||[[Slicer3::MSVS200X | Microsoft Visual Studio 200x]] | ||[[Slicer3::MSVS200X | Microsoft Visual Studio 200x]] | ||
Line 144: | Line 156: | ||
== Quick Links to Slicer3 Projects == | == Quick Links to Slicer3 Projects == | ||
+ | |||
+ | Pending feature requests are [http://www.na-mic.org/Bug/search.php?project_id=1&severity_id=10&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=90 stored in the slicer bug tracker with severity setting of 'feature']. Please also refer to the '''[[Slicer3:FeatureRequests|Feature Requests]]''' from users when planning your implementations. | ||
+ | |||
+ | Many Slicer related projects are worked on during the '''[http://wiki.na-mic.org/Wiki/index.php/Engineering:Programming_Events NA-MIC Project Events]''', please check there for recent updates. | ||
− | |||
<br> | <br> | ||
{|width="800px" border="1" | {|width="800px" border="1" | ||
Line 152: | Line 167: | ||
|bgcolor="#ddf" valign="top"|'''Key People'''<br/>Bold names are responsible for an aspect of the project. | |bgcolor="#ddf" valign="top"|'''Key People'''<br/>Bold names are responsible for an aspect of the project. | ||
|- | |- | ||
− | ||[[Slicer3: | + | ||[[Slicer3:LUTs_and_Ontologies|Lookup tables and Ontologies]] |
− | ||''' | + | ||'''Michael Halle''' |
|- | |- | ||
||[[Slicer3:Data_Model|Data Model / libMRML]] | ||[[Slicer3:Data_Model|Data Model / libMRML]] | ||
− | ||'''Alex''', Steve | + | ||'''Alex Yarmarkovich''', Steve Pieper |
|- | |- | ||
− | ||[[Slicer3: | + | ||[[Slicer3:Execution_Model_Documentation|Execution Model / Command Line Modules]] |
||'''Jim Miller''', Bill Lorensen | ||'''Jim Miller''', Bill Lorensen | ||
|- | |- | ||
− | ||[[Slicer3: | + | ||[[Slicer3:UIDesign|User Interface Design]] |
− | ||'''Wendy Plesniak''', KWWidgets: Sebastien Barre, Yumin Yuan | + | ||'''Wendy Plesniak''', Qt: Julien Finet, Jean-Christophe Fillion-Robin. KWWidgets: Sebastien Barre, Yumin Yuan |
− | |||
− | |||
− | |||
|- | |- | ||
||[[Slicer3:DTMRI|DTMRI]] | ||[[Slicer3:DTMRI|DTMRI]] | ||
− | ||'''Alex''' with help from Diffusion Images: '''Raul''', Tractography: '''Lauren''' [http://lmi.bwh.harvard.edu LMI] | + | ||'''Alex Yarmarkovich''' with help from Diffusion Images: '''Raul San Jose Estepar''', Tractography: '''Lauren O'Donnell''' [http://lmi.bwh.harvard.edu LMI] |
|- | |- | ||
||[[Slicer3:Editor|Editor]] | ||[[Slicer3:Editor|Editor]] | ||
− | ||'''Steve''' | + | ||'''Steve Pieper''' |
+ | |- | ||
+ | ||[http://www.na-mic.org/Wiki/index.php/IGT:ToolKit Image Guided Therapy] | ||
+ | ||'''Haiying Liu''' | ||
+ | |- | ||
+ | ||[[Slicer3:Slicer_Daemon|SlicerDaemon Interface (for unu, matlab)]] | ||
+ | ||'''Steve Pieper''' | ||
|- | |- | ||
− | ||[[Slicer3: | + | ||[[Slicer3:Batchmake_Integration|Batchmake/GRID Integration]] |
− | ||''' | + | ||'''Julien Jomier''', Stephen Aylward |
|- | |- | ||
− | ||[[Slicer3: | + | ||[[Slicer3:Registration|Registration Modules]] |
− | ||''' | + | ||'''Domink Meier''' |
|- | |- | ||
− | ||[[Slicer3: | + | ||[[Slicer3:Python|Python Integration]] |
− | ||''' | + | ||'''Dan Blezek''', Steve Pieper |
|- | |- | ||
− | ||[[Slicer3: | + | ||[[Slicer3:GPURayCaster | Volume Rendering using the VTK GPU acclerated Ray Caster]] |
− | ||''' | + | ||'''Lisa Avila / Sebastien Barre''' |
|- | |- | ||
− | ||[[Slicer3: | + | ||[[Slicer3:Loadable Modules |Loadable Modules]] |
− | ||''' | + | ||'''Alex Yarmarkovich''', Steve Pieper, Terry Lorber |
|- | |- | ||
− | ||[[Slicer3: | + | ||[[Slicer3:Extensions |Extensions]] |
− | ||''' | + | ||'''Steve Pieper''', Terry Lorber |
|- | |- | ||
− | | | + | |style="background:#ddf" width="60%"|'''Project Snapshots''' |
− | + | |bgcolor="#ddf" valign="top"|This is list of projects which are not active at this time, or the linked pages show a snapshot of the project at a certain time. | |
|- | |- | ||
− | ||[[Slicer3: | + | ||[[Slicer3:Architecture/Features|Architecture/Features]] |
− | ||''' | + | ||'''Steve Pieper''', Group: Bill Lorensen, Ron Kikinis, Mike Halle, Noby Hata |
|- | |- | ||
− | ||[ | + | ||[[Slicer3:Execution_Model|Execution Model / Command Line Modules]] |
− | ||''' | + | ||'''Jim Miller''', Bill Lorensen |
|- | |- | ||
− | ||[[Slicer3: | + | ||[[Slicer3:Interface_Design|Interface Design and Usability ]] |
− | ||''' | + | ||'''Wendy Plesniak''', KWWidgets: Sebastien Barre, Yumin Yuan |
|- | |- | ||
− | ||[[Slicer3: | + | ||[[Slicer3:ColorsFiducialsFreesurferModelmaker|Colors, Fiducials, FreeSurfer, ModelMaker]] |
− | ||''' | + | ||'''Nicole Aucoin''' |
|- | |- | ||
− | ||[[Slicer3: | + | ||[[Slicer3:_Image_Guided_Therapy_%28IGT%29|IGT, Trackers]] |
− | ||''' | + | ||'''Haiying Liu''' |
|- | |- | ||
− | ||[[ | + | ||[[EMSegmenter-Overview|EMSegment Interface]] |
− | ||''' | + | ||'''Kilian Pohl''' |
|- | |- | ||
− | ||[[Slicer3: | + | ||[[Slicer3:Build/Test/Deploy|Build/Test/Deploy System]] |
− | ||''' | + | ||'''Katie Hayes''' |
|- | |- | ||
− | ||[[Slicer3: | + | ||[[Slicer3:Grid_Interface|Grid Interface]] |
− | ||''' | + | ||'''Jeff Grethe''', Marco Ruiz |
|- | |- | ||
− | ||[[Slicer3:Volume Rendering | + | ||[[Slicer3:Volume Rendering |Volume Rendering]] |
− | ||''' | + | ||'''Yanling Liu''' |
|- | |- | ||
||[[Slicer3:XNAT |XNAT Interface]] | ||[[Slicer3:XNAT |XNAT Interface]] | ||
||'''Steve''', Wendy, Dan Marcus, Tim Olsen | ||'''Steve''', Wendy, Dan Marcus, Tim Olsen | ||
− | |||
− | |||
− | |||
|- | |- | ||
||[[Slicer3:Web Presence |Web Presence]] | ||[[Slicer3:Web Presence |Web Presence]] | ||
||'''Nicole Aucoin''', Zack Galbreath | ||'''Nicole Aucoin''', Zack Galbreath | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
||[[Slicer3:TimeSeries and Multi-Volume Data | TimeSeries and Multi-Volume Data]] | ||[[Slicer3:TimeSeries and Multi-Volume Data | TimeSeries and Multi-Volume Data]] | ||
− | ||Steve Pieper, Daniel Blezek, Dominik Meier, Wendy Plesniak | + | ||Junichi Tokuda, Steve Pieper, Daniel Blezek, Dominik Meier, Wendy Plesniak |
|- | |- | ||
||[[Slicer3:Remote Data Handling | Remote Data Handling]] | ||[[Slicer3:Remote Data Handling | Remote Data Handling]] | ||
− | ||Steve Pieper, Nicole Aucoin, Wendy Plesniak | + | ||'''Steve Pieper, Nicole Aucoin, Wendy Plesniak''' |
|- | |- | ||
||[[Slicer3:Module:QueryAtlas |Query Atlas]] | ||[[Slicer3:Module:QueryAtlas |Query Atlas]] | ||
||'''Wendy Plesniak''' | ||'''Wendy Plesniak''' | ||
+ | |- | ||
+ | ||[[Slicer3:RadiologicalReview | Radiological review]] | ||
+ | ||'''Jim Miller''' | ||
+ | |- | ||
+ | ||[[Slicer3:Transition_of_Slicer2.x_Modules|Transition of Selected Slicer2.x Modules to Slicer3]] | ||
+ | ||'''Nicole Aucoin''', Katie Hayes, Wendy Plesniak, Mathieu Malaterre | ||
+ | |- | ||
+ | ||[[Modules:Volumes:Diffusion_Editor-Documentation-3.6|Diffusion Editor]] | ||
+ | ||'''Kerstin''' | ||
|- | |- | ||
||[[Slicer3:MistSlicer | MistSlicer]] | ||[[Slicer3:MistSlicer | MistSlicer]] | ||
||'''Yuichiro Hayashi''', Kensaku Mori, Nobuhiko Hata | ||'''Yuichiro Hayashi''', Kensaku Mori, Nobuhiko Hata | ||
|- | |- | ||
− | ||[[Slicer3: | + | ||[[Slicer3:LDDMM |LDDMM Interface]] |
− | ||''' | + | ||'''Steve''', Anthony Kolasny |
+ | |- | ||
+ | ||[[Slicer3:Volume Rendering With Cuda|Volume Rendering With CUDA (NOT Active)]] | ||
+ | ||'''Ben''' | ||
+ | |- | ||
+ | ||[[Slicer3:Pipeline_Integration|Loni Pipeline Integration]] | ||
+ | ||'''Jags''' | ||
+ | |- | ||
+ | ||[[Slicer3:Performance_Analysis|Slicer3:Performance Analysis]] | ||
+ | ||'''Katie Hayes''' | ||
+ | |- | ||
+ | ||[[Slicer3:ThreadingToolKit|Threading ToolKit]] | ||
+ | ||'''Dan Blezek, James Miller, Stephen Aylward''' | ||
|- | |- | ||
− | | | + | ||[[Slicer3:BrainlabModule|Brainlab Integration]] |
− | + | ||'''Haiying Liu, Noby Hata, Ron Kikinis''' | |
|} | |} | ||
Line 262: | Line 289: | ||
*April 3, 2006: [[Media:Slicer_3-alpha-2006-04-03.ppt| Slicer 3 alpha]] technical powerpoint presentation. | *April 3, 2006: [[Media:Slicer_3-alpha-2006-04-03.ppt| Slicer 3 alpha]] technical powerpoint presentation. | ||
*Discussion page about using [[Qt in Slicer3|Slicer3:Qt]]. | *Discussion page about using [[Qt in Slicer3|Slicer3:Qt]]. | ||
+ | *Implementation priorities from the slicer3 port are shown in this '''[[Slicer3:Status_Summary|Status Summary]]'''. | ||
== Resources == | == Resources == |
Latest revision as of 02:13, 27 November 2019
Home < Slicer3:DevelopersSlicer 3 Developer Page
- This page contains links to Slicer3 developer resources and events.
- For information about other versions of Slicer see here
- Click here for Slicer3 Events
Slicer 3 Architecture Overview
For more details on the slicer architecture see: Architecture Slides (updated April, 2007).
Quick Links for Developers
This section centrally locates many existing (and developing) wiki pages useful to Slicer3 developers.
Slicer 3 Quick links to the Source code
The Slicer3 svn repository:
svn co http://svn.slicer.org/Slicer3/trunk Slicer3
General Slicer3 Quick Links | Debugging Slicer3 Quick Links |
Slicer3 build instructions | Slicer3 Dashboard (After May 2, 2008) |
Use ViewVC to browse the repository | Slicer3 Dashboard (Before May 2, 2008) |
Instructions for NA-MIC svn | Slicer Bug Tracker |
Doxygen documentation for Slicer3. | |
The Slicer3 VisualBlog shows screenshots of slicer developments. | |
Developers should follow the Slicer 3 Coding Style. |
Developers' Mailing List
Discussion of Slicer3 takes place on the slicer-devel at massmail.spl.harvard.edu list. To join developer's mailing list, send a request to: slicer-devel-request at massmail.spl.harvard.edu with the keyword subscribe as the subject. Or access the slicer-devel archives and web administration interface.
Developer Documentation
The following links provide more detail on internal aspects of the code. If you need more information, please follow up with email to the listed developers or the developer mailing list.
Introduction to Slicer3 | Key People |
Getting the software and troubleshooting | |
Overall Architecture and Slicer 3 Coding Style | |
Contributing codes to Slicer3 | |
Three module types (Command line, Loadable, Scriptable) | Key People |
Integrating with the 3D Slicer | Jim and Steve |
Command line modules and how to implement one and Tutorial | Jim |
MRML Medical Reality Modeling Language (MRML) is a language implemented as a type of XML document, with new tags defined to handle medical image data types such as volumes, models or coordinate transforms. MRML Slides |
Key People |
Creating and using new MRML node types | Alex |
Keeping references to MRML nodes | Alex |
How undo/redo works, and how to enable it in your code | Alex |
GUI | Key People |
Adding keyboard shortcuts | Wendy |
GUI style guidelines (undergoing change for move to Qt) | Wendy |
User-centered design practice | Wendy |
3DSlicer's logo and visual communication guidelines | Wendy |
Incorporating your group's logo and attributions | Jim |
Some experiments/advanced techniques for developing slicer3 interfaces | Steve |
Engineering | Key People |
Tips for avoiding memory leaks: Current Practice | Steve |
Tips for avoiding memory leaks: Suggested change to SmartPointers | Jim |
Generating tests | Bill |
Setting up Testing | |
Build Information | |
The Launcher | |
Documenting your module Infrastructure has been added to link to wiki pages from the "Help & Acknowledgment" panel in your module's GUI. We ask developers to fill out a brief document describing your module and its use. See here for more information. |
Key People |
Documenting a module with wink | |
Integrate Slicer3 into a development environment | Key People |
Original Eclipse | Michael Keilhack |
Revised Eclipse Instructions | Curtis Lisle |
Debugging Slicer with Eclipse Instructions | Curtis Lisle |
Microsoft Visual Studio 200x |
Quick Links to Slicer3 Projects
Pending feature requests are stored in the slicer bug tracker with severity setting of 'feature'. Please also refer to the Feature Requests from users when planning your implementations.
Many Slicer related projects are worked on during the NA-MIC Project Events, please check there for recent updates.
Slicer3 Projects | Key People Bold names are responsible for an aspect of the project. |
Lookup tables and Ontologies | Michael Halle |
Data Model / libMRML | Alex Yarmarkovich, Steve Pieper |
Execution Model / Command Line Modules | Jim Miller, Bill Lorensen |
User Interface Design | Wendy Plesniak, Qt: Julien Finet, Jean-Christophe Fillion-Robin. KWWidgets: Sebastien Barre, Yumin Yuan |
DTMRI | Alex Yarmarkovich with help from Diffusion Images: Raul San Jose Estepar, Tractography: Lauren O'Donnell LMI |
Editor | Steve Pieper |
Image Guided Therapy | Haiying Liu |
SlicerDaemon Interface (for unu, matlab) | Steve Pieper |
Batchmake/GRID Integration | Julien Jomier, Stephen Aylward |
Registration Modules | Domink Meier |
Python Integration | Dan Blezek, Steve Pieper |
Volume Rendering using the VTK GPU acclerated Ray Caster | Lisa Avila / Sebastien Barre |
Loadable Modules | Alex Yarmarkovich, Steve Pieper, Terry Lorber |
Extensions | Steve Pieper, Terry Lorber |
Project Snapshots | This is list of projects which are not active at this time, or the linked pages show a snapshot of the project at a certain time. |
Architecture/Features | Steve Pieper, Group: Bill Lorensen, Ron Kikinis, Mike Halle, Noby Hata |
Execution Model / Command Line Modules | Jim Miller, Bill Lorensen |
Interface Design and Usability | Wendy Plesniak, KWWidgets: Sebastien Barre, Yumin Yuan |
Colors, Fiducials, FreeSurfer, ModelMaker | Nicole Aucoin |
IGT, Trackers | Haiying Liu |
EMSegment Interface | Kilian Pohl |
Build/Test/Deploy System | Katie Hayes |
Grid Interface | Jeff Grethe, Marco Ruiz |
Volume Rendering | Yanling Liu |
XNAT Interface | Steve, Wendy, Dan Marcus, Tim Olsen |
Web Presence | Nicole Aucoin, Zack Galbreath |
TimeSeries and Multi-Volume Data | Junichi Tokuda, Steve Pieper, Daniel Blezek, Dominik Meier, Wendy Plesniak |
Remote Data Handling | Steve Pieper, Nicole Aucoin, Wendy Plesniak |
Query Atlas | Wendy Plesniak |
Radiological review | Jim Miller |
Transition of Selected Slicer2.x Modules to Slicer3 | Nicole Aucoin, Katie Hayes, Wendy Plesniak, Mathieu Malaterre |
Diffusion Editor | Kerstin |
MistSlicer | Yuichiro Hayashi, Kensaku Mori, Nobuhiko Hata |
LDDMM Interface | Steve, Anthony Kolasny |
Volume Rendering With CUDA (NOT Active) | Ben |
Loni Pipeline Integration | Jags |
Slicer3:Performance Analysis | Katie Hayes |
Threading ToolKit | Dan Blezek, James Miller, Stephen Aylward |
Brainlab Integration | Haiying Liu, Noby Hata, Ron Kikinis |
Design Information
- May 23, 2006: Algorithm Core workshop.
- April 3, 2006: Slicer 3 alpha technical powerpoint presentation.
- Discussion page about using Slicer3:Qt.
- Implementation priorities from the slicer3 port are shown in this Status Summary.
Resources
Several books are available on the core topics related to slicer programming: