Difference between revisions of "Slicer3:Developers"
Line 101: | Line 101: | ||
The Slicer3 svn repository: | The Slicer3 svn repository: | ||
− | svn co http:// | + | svn co http://svn.slicer.org/Slicer3/trunk Slicer3 |
Use [http://www.na-mic.org/ViewVC/index.cgi/ ViewVC to browse the repository] | Use [http://www.na-mic.org/ViewVC/index.cgi/ ViewVC to browse the repository] |
Revision as of 20:22, 27 June 2008
Home < Slicer3:DevelopersContents
Slicer 3 Overview
- For more details on the slicer architecture see: Architecture Slides (updated April, 2007).
- Highlights of the new architecture
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
- Slicer3 Historical Timeline
- Status overview and Demo
- Schematic of application interface & functionality
- Schematic of slice GUI
- Getting the software and troubleshooting
- Overall Architecture and Slicer 3 Coding Style
- Contributing codes to Slicer3
Two module types (Command line and Interactive)
- Command line modules and how to implement one (Jim and Bill) Intro
- How to implement an interactive module (wjp)
MRML 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.
- 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
- Keeping the GUI stateless (wjp)
- Adding keyboard shortcuts (wjp)
- GUI style guidelines (wjp)
- User-centered design practice (wjp)
- 3DSlicer's logo and visual communication guidelines (wjp)
- Incorporating your group's logo and attributions (Jim)
- Some experiments/advanced techniques for developing slicer3 interfaces (Steve)
Engineering
- Tips for avoiding memory leaks
- Current Practice (Steve)
- Suggested change to SmartPointers (Jim)
- Generating tests (Bill)
- Setting up Testing
- 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...
- Documenting a module with wink
Integrate Slicer3 into a development environment
- Eclipse (keilhack)
- Microsoft Visual Studio 200x
Slicer 3 Projects
Projects should correspond to the outstanding issues listed on the Status Summary. Please refer to the Feature Requests from users when planning your implementations.
If your name is in bold, you are responsible for that aspect of the project
- Architecture/Features (Steve Pieper, Group: Bill Lorensen, Ron Kikinis, Mike Halle, Noby Hata)
- Data Model / libMRML (Alex, Steve)
- Execution Model / Command Line Modules (Jim Miller, Bill Lorensen)
- Interface Design and Usability (Wendy Plesniak, KWWidgets: Sebastien Barre, Yumin Yuan)
- Transition of Selected Slicer2.x Modules to Slicer3 (Nicole, Katie, Wendy, Mathieu)
- DTMRI: Alex with help from Diffusion Images: Raul, Tractography: Lauren LMI
- Editor: Steve
- Colors, Fiducials, FreeSurfer, ModelMaker: Nicole
- IGT, Trackers: Haiying
- EMSegment Interface: Brad Davis
- SlicerDaemon Interface (for unu, matlab): Steve Pieper
- Build/Test/Deploy System (Andy, Katie)
- Loni Pipeline Integration (Jags)
- Batchmake/GRID Integration (Julien Jomier)
- Registration Modules (Jim Miller, Steve Pieper)
- Improvements to the registration framework (Stephen Aylward)
- Python Integration (Dan Blezek)
- Grid Integration (Jeff Grethe, Neil)
- Slicer3:Performance Analysis (Katie)
- Threading ToolKit (Dan Blezek, James Miller, Stephen Aylward)
- Volume Rendering (Andy)
- Volume Rendering With CUDA (Ben)
- XNAT Interface (Steve, Wendy, Dan Marcus, Tim Olsen)
- LDDMM Interface (Steve, Anthony Kolasny)
- Web Presence (Nicole Aucoin), Zack Galbreath
- Loadable Modules (Alex Yarmarkovich), Steve Pieper
- Diffusion Editor (Kerstin)
- TimeSeries and Multi-Volume Data (Steve Pieper, Daniel Blezek, Dominik Meier, Wendy Plesniak)
- Remote Data Handling (Steve Pieper, Nicole Aucoin, Wendy Plesniak)
- Query Atlas (Wendy Plesniak)
Slicer 3 Quick links to the Source code
The Slicer3 svn repository:
svn co http://svn.slicer.org/Slicer3/trunk Slicer3
Use ViewVC to browse the repository
Doxygen documentation for Slicer3.
The Slicer3 VisualBlog shows screenshots of slicer developments.
Developers should follow the Slicer 3 Coding Style.
Slicer3 Dashboard (As Of May 2, 2008)
Slicer3 Dashboard (Before May 2, 2008)
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.
Design Information
May 23, 2006: Algorithm Core workshop.
April 3, 2006: Slicer 3 alpha technical powerpoint presentation.
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 January 2007
April 3, 2006
There was a Slicer3 Alpha1 Design Review meeting.
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.