Difference between revisions of "Slicer3:Developers"

From NAMIC Wiki
Jump to: navigation, search
m (Text replacement - "http://www.slicer.org/slicerWiki/index.php/" to "https://www.slicer.org/wiki/")
 
(16 intermediate revisions by 8 users not shown)
Line 1: Line 1:
{| class="toccolours" style="margin-right: 25px" align="right"
+
<big>'''Note:''' We are migrating this content to the slicer.org domain - <font color="orange">The newer page is [https://www.slicer.org/wiki/Slicer3:Developers  here]</font></big>a
! bgcolor="#ccccff" align="center" | Slicer3
 
|-
 
|
 
[[Slicer3|Home]]
 
|-
 
|
 
[[Slicer3:About|About]]
 
|-
 
|
 
[[Slicer3:FAQ|FAQ]]
 
|-
 
|
 
[[Slicer3:Status|Status]]
 
|-
 
|
 
[[Slicer3:Downloads|Downloads]]
 
|-
 
|
 
[[Slicer3:Documentation|Documentation]]
 
|-
 
|
 
[[Slicer3:Community_Support|Community Support]]
 
|-
 
| '''Developers'''
 
|-
 
|
 
[[Slicer3:Acknowledgements|Acknowledgements]]
 
|-
 
|
 
[[Slicer3:Links|Links]]
 
|}
 
 
 
== Slicer 3 Overview ==
 
[[Image:Slicer3LogoHorizontalBeta.png]]
 
 
 
* For more details on the slicer architecture see: [[media:Slicer 3-beta-2007-04-16.ppt | Architecture Slides]] (updated April, 2007).
 
* Highlights of the new architecture
 
 
 
{|
 
|[[Image:Slicer3-Architecture.jpg|thumb|200px]]
 
|[[Image:Slicer3-Architecture-MRML.jpg|thumb|200px]]
 
|[[Image:Slicer3-Architecture-Layers.jpg|200px|thumb]]
 
|[[Image:ExecutionModelPlugins.png|200px|thumb]]
 
|}
 
 
 
== Information for Developers ==
 
This section centrally locates many existing (and developing) wiki pages useful to Slicer3 developers. The content developed for the January 2007 AHM.
 
 
 
=== Introduction to Slicer3 ===
 
* [[Media:SlicerHistoricalTimeline.ppt | Slicer3 Historical Timeline]]
 
* [[Slicer3:Status_Summary | Status overview]] and [http://slicerl.bwh.harvard.edu/tmp/slicer3-PreAHMBeta%20Demo/slicer3-PreAHMBeta.htm Demo]
 
* Schematic of application interface & functionality: [[Media:GUIMap.png]]
 
* Schematic of slice GUI: [[Media:SliceGUI.png ]]
 
* [[Slicer3:Build_Instructions | Getting the software and troubleshooting]]
 
* [[media:Slicer 3-beta-2007-01-10.ppt | Overall Architecture]] and [[Slicer3:Style|Slicer 3 Coding Style]]
 
* [[Slicer3:Contributing_codes_to_Slicer3| Contributing codes to Slicer3]]
 
 
 
=== Two module types (Command line and Interactive) ===
 
* [[Slicer3:Execution_Model_Documentation | Command line modules and how to implement one]] (Jim and Bill) [[media:Slicer3-ExecutionModelJune2006.ppt| Intro]]
 
*[[Slicer3:How_to_implement_an_Interactive_Module_GUI | How to implement an interactive module]] (wjp)
 
 
 
=== MRML [http://www.na-mic.org/Wiki/images/e/e3/Slicer3_MRML.ppt  MRML Slides](Alex) ===
 
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.
 
 
 
* [[Slicer3:Data_Model#Creating_Custom_MRML_Node_Classes | Creating and using new MRML node types]] (Alex)
 
* [[Slicer3:Data_Model#References_to_MRML_Nodes | Keeping references to MRML nodes ]] (Alex)
 
* [[Slicer3:Data_Model#Undo/Redo_Mechanism  | How undo/redo works, and how to enable it in your code]] (Alex)
 
 
 
=== GUI ===
 
* [[Slicer3:StatelessGUI | Keeping the GUI stateless]] (wjp)
 
* [[Slicer3:EventBindings | Adding keyboard shortcuts]] (wjp)
 
* [[Slicer3:Human_Interface_and_Style_Guide_for_Developers | GUI style guidelines]] (wjp)
 
* [[Slicer3:Usability#User-centered_design_practice_for_3DSlicer | User-centered design practice]] (wjp)
 
* [[Slicer3:Slicer3Brand | 3DSlicer's logo and visual communication guidelines]] (wjp)
 
* [[Slicer3:Execution_Model_Documentation#Adding_Module_Logos_to_Slicer3 | Incorporating your group's logo and attributions]] (Jim)
 
* [[Slicer3:GUI_Experiments | Some experiments/advanced techniques for developing slicer3 interfaces]] (Steve)
 
 
 
=== Engineering ===
 
* Tips for avoiding memory leaks
 
** Current Practice (Steve)
 
** [[Slicer3:Memory Management | Suggested change to SmartPointers]] (Jim)
 
* Generating tests (Bill)
 
* [[Slicer3:Testing | Setting up Testing]]
 
* [[Slicer3:Launcher| The Launcher]]
 
 
 
=== Documenting your module ===
 
* As soon as the wiki page template is finalized, and the infrastructure is added to link to this wiki page from the "Help & Acknowledgment" panel in your module's GUI, we will ask developers to fill out a brief document describing your module and its use. Stay tuned for developments...
 
 
 
=== Integrate Slicer3 into a development environment ===
 
* [[Slicer3::Eclipse | Eclipse]] (keilhack)
 
* [[Slicer3::MSVS200X | Microsoft Visual Studio 200x]]
 
 
 
== Slicer 3 Projects ==
 
 
 
Projects should correspond to the outstanding issues listed on the '''[[Slicer3:Status_Summary|Status Summary]]'''. Please refer to the '''[[Slicer3:FeatureRequests|Feature Requests]]''' from users when planning your implementations.
 
 
 
''If your name is in bold, you are responsible for that aspect of the project''
 
 
 
* '''[[Slicer3:Architecture/Features|Architecture/Features]]''' ('''Steve Pieper''', Group: Bill Lorensen, Ron Kikinis, Mike Halle, Noby Hata)
 
* '''[[Slicer3:Data_Model|Data Model / libMRML]]''' ('''Alex''', Steve)
 
* '''[[Slicer3:Execution_Model|Execution Model / Command Line Modules]]''' ('''Jim Miller''', Bill Lorensen)
 
* '''[[Slicer3:Interface_Design|Interface Design and Usability ]]''' ('''Wendy Plesniak''', KWWidgets: Sebastien Barre, Yumin Yuan)
 
* '''[[Slicer3:Transition_of_Slicer2.x_Modules|Transition of Selected Slicer2.x Modules to Slicer3]]''' ('''Nicole''', Katie, Wendy, Mathieu)
 
** [[Slicer3:DTMRI|DTMRI]]<nowiki>: </nowiki>'''Alex''' with help from Diffusion Images:  '''Raul''', Tractography: '''Lauren''' [http://lmi.bwh.harvard.edu LMI]
 
** [[Slicer3:Editor|Editor]]<nowiki>: </nowiki>'''Steve'''
 
** [[Slicer3:ColorsFiducialsFreesurferModelmaker|Colors, Fiducials, FreeSurfer, ModelMaker]]<nowiki>: </nowiki>'''Nicole'''
 
** [[Slicer3:_Image_Guided_Therapy_%28IGT%29|IGT, Trackers]]<nowiki>: </nowiki>'''Haiying'''
 
** [[Slicer3:EM|EMSegment Interface]]<nowiki>: </nowiki>'''Brad Davis'''
 
** [[Slicer3:Slicer_Daemon|SlicerDaemon Interface (for unu, matlab)]]<nowiki>: </nowiki>'''Steve Pieper'''
 
* '''[[Slicer3:Build/Test/Deploy|Build/Test/Deploy System]]''' ('''Andy''', Katie)
 
* '''[[Slicer3:Pipeline_Integration|Loni Pipeline Integration]]''' ('''Jags''')
 
* '''[[Slicer3:Batchmake_Integration|Batchmake/GRID Integration]]''' ('''Stephen Aylward''')
 
* '''[http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization Improvements to the registration framework]''' ('''Stephen Aylward''')
 
* '''[[Slicer3:Python|Python Integration]]''' ('''Dan Blezek''')
 
* '''[[Slicer3:Grid_Interface|Grid Integration]]''' ('''Jeff Grethe''', Neil)
 
* '''[[Slicer3:Performance_Analysis|Slicer3:Performance Analysis]]''' ('''Katie''')
 
* '''[[Slicer3:ThreadingToolKit|Threading ToolKit]]''' ('''Dan Blezek, James Miller, Stephen Aylward''')
 
* '''[[Slicer3:Volume Rendering |Volume Rendering]]''' ('''Andy''')
 
* '''[[Slicer3:XNAT |XNAT Interface]]''' ('''Steve''', Wendy, Dan Marcus, Tim Olsen)
 
* '''[[Slicer3:LDDMM |LDDMM Interface]]''' ('''Steve''', Anthony Kolasny)
 
* '''[[Slicer3:Web Presence |Web Presence]]''' ('''Nicole Aucoin'''), Zack Galbreath
 
* '''[[Slicer3:Loadable Modules |Loadable Modules]]''' ('''Alex Yarmarkovich'''), Steve Pieper
 
* '''[[Slicer3:DWI Gradient Editor |DWI Gradient Editor]]''' ('''Kerstin''')
 
 
 
== Slicer 3 Quick links to the Source code ==
 
 
 
The Slicer3 svn repository:
 
 
 
svn co http://www.na-mic.org/svn/Slicer3/trunk Slicer3
 
 
 
Use [http://www.na-mic.org/ViewVC/index.cgi/ ViewVC to browse the repository]
 
 
 
[[Engineering:SandBox|Instructions for NA-MIC svn]]
 
 
 
[[Slicer3:Build_Instructions|Slicer3 build instructions]]
 
 
 
[http://www.na-mic.org/Slicer/Documentation/Slicer3/html/ Doxygen documentation for Slicer3].
 
 
 
The [[Slicer3:VisualBlog|Slicer3 VisualBlog]] shows screenshots of slicer developments.
 
 
 
Developers should follow the [[Slicer3:Style|Slicer 3 Coding Style]].
 
 
 
[http://www.na-mic.org/Slicer3/Dashboard Slicer3 Dashboard]
 
 
 
[http://na-mic.org/Mantis/main_page.php Slicer Bug Tracker]
 
 
 
Discussion of slicer3 takes place on the slicer-devel@massmail.spl.harvard.edu list. To join developer's mailing list, send a request to: [mailto:slicer-devel-request@massmail.spl.harvard.edu slicer-devel-request@massmail.spl.harvard.edu] with the keyword ''subscribe'' as the subject. Or access the [http://massmail.spl.harvard.edu/mailman/listinfo/slicer-devel slicer-devel archives and web administration interface].
 
 
 
== Design Information ==
 
 
 
May 23, 2006: [[Algorithms:Core1Visit_May06|Algorithm Core workshop.]]
 
 
 
<br /> April 3, 2006: [[Media:Slicer_3-alpha-2006-04-03.ppt| Slicer 3 alpha]] technical powerpoint presentation.
 
 
 
<br />
 
 
 
= Events =
 
 
 
== Upcoming ==
 
 
 
=== Slicer3.0 ===
 
 
 
* the first product release of Slicer3 is scheduled for the AHM in January of 2008
 
* there will be a code freeze on Nov. 15 2007
 
** if you want your module to be part of Slicer3.0 submit it by then
 
** After that date, we will only accept bug fixes. It means that there will be no features added after the freeze in the main trunk.
 
 
 
** Any people working on new features can do so in their own branch and they will be responsible for merging these back into the trunk after the freeze is lifted (at which point the release will be in a maintenance branch).
 
 
 
 
 
== Retrospective ==
 
 
 
=== Slicer 3 Snapshot Builds ===
 
 
 
* Initial releases began end of March 2007
 
** Base code functional and usable
 
** Several usable modules include (auto segmentaiton, editor, registration...)
 
** Image Guided Therapy example modules
 
* Updated versions summer 2007
 
** With DTI and other application modules
 
** Bug fixes and performance enhancements
 
 
 
=== Migration Tutorials (from Slicer 2.x to 3.0)  ===
 
 
 
The first set of user tutorials will be released in Fall 2007.
 
Slicer3 programming courses will be released in January 2008.
 
 
 
== Past ==
 
 
 
=== Slicer3.0 Beta ===
 
 
 
* Official release at [[AHM_2007 | AHM January 2007]]
 
 
 
=== April 3, 2006 ===
 
 
 
There was a [[Slicer3:_Alpha1_Meeting|Slicer3 Alpha1 Design Review]] meeting.
 
 
 
'''[[Slicer3:Alpha|Definition of Alpha Milestone]]'''
 
 
 
=== Slicer3 Alpha2/Beta1 by End of July 2006 ===
 
 
 
* Initial Testing with Core 3 participation
 
* Base functionality in place, but still subject to API changes and other improvements.
 
* Packaged versions not yet available, but testers are able to easily build their own versions.
 
 
 
=== Implementation of Slicer3 Alpha1 by end of March 2006 ===
 

Latest revision as of 18:07, 10 July 2017

Home < Slicer3:Developers

Note: We are migrating this content to the slicer.org domain - The newer page is herea