1 / 16

3D Slicer Version 4 Architecture and Status

3D Slicer Version 4 Architecture and Status. Steve Pieper, Ph.D. Slicer4: Goals. Slim Down, Modernize, and Optimize Improve Collaboration and Code Sharing with Research Community Introduce New Technologies Increase Testing and Code Consistency

ivor-davis
Download Presentation

3D Slicer Version 4 Architecture and Status

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 3D Slicer Version 4Architecture and Status Steve Pieper, Ph.D.

  2. Slicer4: Goals Slim Down, Modernize, and Optimize Improve Collaboration and Code Sharing with Research Community Introduce New Technologies Increase Testing and Code Consistency http://www.slicer.org/slicerWiki/index.php/Slicer4

  3. Slicer4: Collaborations Nokia - Qt Software Ecosystem CTK (Common Toolkit) Widgets, DICOM, Messaging… BRAINS, BioImageSuite… ITKv4 Scipy (Scientific Python), Nipy (Neuroimaging Python) And, of course, NAC, NCIGT, NA-MIC DBPs, Collaboration Grants, Like-Minded Developers, Longtime Friends and Family…

  4. Slicer4 Compatibility Pledge Import .xml and .mrml from Slicer2.x and Slicer3.x Command Line Modules will not Need to Change Core Modules will be Ported Help will be Provided for Porting Loadable Modules MRML and Logic Basically Unchanged, Only GUI Needs to be Rewritten ModuleWizard to Create Code Framework Consistent Slicer Terminology and Concepts Ease User Transition, Leverage Training

  5. Slicer4: Git Git Advantages: Arguably better than svn Many (all?) of our colleagues are migrating Git Disadvantages: Best practices still evolving Many (most?) of our colleagues are frustrated ;) We had planned to use git from the start for slicer4, but have backed off. Now we suggest using git-svn for your own work and collaborative topic branches http://www.slicer.org/slicerWiki/index.php/Slicer3:git-svn

  6. Slicer4: Qt Large Developer Community Many Highly Refined Tools Major Effort Underway thanks to ARRA Supplement Learn More this Afternoon 1-3 Results are Very Encouraging, but there is a lot To Do…

  7. Slicer4: Qt Impact No More X11 on Mac OSX New C++ Paradigms Designer for GUI Construction Native WebKit Native HTML (CSS, HTML5, webgl) JavaScript Engine

  8. Slicer4: CTK See commontk.org for info CTK is Home Many for “Generic” Parts of Slicer4 CTKWidgets, including Transfer Function Editor ctkDICOM, based on DCMTK Other Code may Migrate (Execution Model? MRML? …) Active International Development Team

  9. Slicer4: PythonQt Developed by Mevislab (Germany) LGPL, Stable Scripted Access to Classes, Signals, Slots, Properties May (or may not) be Replaced with PySide in the Future

  10. Slicer4: Tcl and Python VTK and VTK-based Slicer4 Code are Wrapped with Python A Compatibility Layer Allows Tcl to Call VTK/Slicer Code via Python This is the inverse of Slicer3, where Python calls are routed through Tcl Used for Editor and Slice Interaction This layer is for porting only and should not be used when writing new code Any Tk or KWWidgets GUI code will need to be rewritten in Qt

  11. Slicer4: SuperBuild Evolution of getbuildtest.tcl Concept into Pure CMake More General Implementation to Serve as Template for Other Projects getbuildtest is Still the Supported Tool for Slicer3.6 Hierarchical CTK also Uses SuperBuild Extension Support Coming Try It Slicer4 Build Instructions on Wiki

  12. Slicer4: Development Emphasis on the NA-MIC Software Engineering Methdology Testing, Coverage, Documentation & Coding Style New Modules Start as Extensions Only Widely Applicable Functionality Bundled with Application Only When Coding Standards Are Met Increase Communication via the Developer Mailing List Keep Everyone in the Loop on Architecture and Coding Conventions Verbose Commit Messages

  13. Slicer4: What Works (mostly) Main GUI, Toolbars, Menus Scene/Data Load/Save Slice and 3D Visualization (pan/zoom, overlays, models…) Command Line Modules Python Wrapping, Python Scripted Modules Loadable Modules Editor Annotations (Evolution of Fiducials and Measurements) Many things…

  14. Slicer4: What’s Missing Many Core Modules Volume Rendering Hierarchies IGT Modules Extensions Progress / Status feedback Your Module! Please help identify what is needed to support your work.

  15. Developer Decision Tree Working on the Slicer Core? Focus on Qt Transition Working on a Module? Build it as an Extension Command Line Module? Develop and Test with Slicer3.6 or Slicer4 GUI Project with Deadlines in early 2011? Develop with KWWidgets for 3.6.X Keep your Logic and MRML Distinct from the GUI Ongoing Support will be Provided Longer-Term Project that Needs a Custom GUI? Start working with developer builds of Slicer4 Talk with dev team about any key missing features Consider doing some or all coding in Python

  16. Architecture

More Related