Engineering:Slicer3.0 November 15 2005
- 1 Logistics
- 2 Attendees
- 3 Agenda
- 3.1 Architecture
- 3.2 Data Model
- 3.3 Visualization
- 3.4 UI
- 3.5 Build/Test/Deploy
- 3.6 Interfaces to Other Programs
- 3.7 Pipeline Integration
- 3.8 Grid Integration
- 3.9 UI Evaluation Benchmarking Demos (for comparison)
- 3.10 Development Processes
Time: noon-5pm Location: BWH 1249 Boylston 2nd floor demo room
- Bill Lorensen, GE
- Jim Miller, GE
- Xiaodong Tao, GE
- Will Schroeder, Kitware
- Luis Ibanez, Kitware
- Steve Pieper
- Mike Halle, BWH
- Wendy Plesniak, BWH
- Ron Kikinis, BWH
- Alex Yarmarkovich
- Tina Kapur
- Katie Hayes
- Nicole Aucoin
- Tianming Liu
- Continued planning for slicer 3.0. The meeting will follow the roadmap discussion outlined here. We will go through each of the major blocks and review the implementation plans and define the interfaces between the blocks.
- Base vs. Module - what features are available in common.
- "Thin" Visualization (should all MRML objects be first class objects in VTK?)
- Execution Model
- Loading Shared Library
- CCA...? (common component architecture)
- Coordinate Systems (LPS/RAS, how do transform get expressed)
A pre-meeting with Mike Halle, Xiaodong Tao, Alex Yarmarkovich, Steve Pieper resulted in this enumeration of functionality of the Slicer3 Data Model.
Elements of MRML3
MRML is the scene description used in Slicer, and maps to Slicer's data model. MRML2 (the current version of MRML) provides a convenient way to describe the geometric relationship between, and apprearance of, volumes and models of medical data. Its simple description combined several functions separated inside of VTK and ITK. As Slicer and MRML have changed over time, this simple model has proven to be limiting.
This list includes the different kinds of functionality that should be separated out in MRML3:
- data resources: where and how to get data (pathnames and access methods for readers)
- data instances: containers and references for data (what readers produce; use data resources)
- graphical elements: descriptions of models, volumes, graphical transforms, styles, lookup tables, cameras, etc., which are derived from data instances.
- actors: instances of graphical elements (e.g., a model rendered with a style and a transform)
- things (for lack of a better term): targets for semantic information ("brain", "pancreas", etc) which can contain links to/from models and outside ontologies.
- relations: describe relationships between elements. Examples:
- groups and hierarchies assemble related data
- coordinate spaces describe the geometric context of an object
- coordinate space transforms describe the geometric relationship between coordinate spaces
- semantic links describe objects in a field-specific way
- MRML tree, is it a tree or just a representation of MRML file? Can we use DOM API for acessing the MRML tree?
- Do we use Mike's proposed Coordinate System Manager? How does it fit with MRML tree? Do we replace MRML Transformation nodes
with Group node and describe the coordiante transformation separately?
- Do we use VTK or ITK image for internal representation? What do we use for internal representation of meshes, fiducials and other MRML types?
- Can we use itk SpacialPbjects for representing vtkPolyData like triangular meshes and DTI tracks?
- Can we have multiple API's, one for VTK another for ITK.
- VTK images store both metadata and data, with metadata duplicated in MRML nodes. Is it possible to separate metadata?
GUI Discussion / Demos
- GUI toolkit comparison
- broad feature/behavior requirements
- specific widget requirements
- GUI design guidelines
- link to working notes in powerpoint: GUI Working Document
Information prepared by Sebastien Barre on the Kitware Wiki:
Interfaces to Other Programs
Migrating Slicer 2.x Modules
Interoperating with ITK Examples/Applications
UI Evaluation Benchmarking Demos (for comparison)
Quick demos of imaging/visualization packages to highlight the things people like and don't like about the interfaces or functionality:
- VolView/ParaView (Will et al), using the KWWidgets toolkit
- OsiriX (Michelle Borkin from Harvard Astrophysics at 2:30pm)
- Snap (!Tina)
- FiberViewer (Tina)
- Other Interesting Packages (not demoed)
Coding Style Guides
UI Style Guides
- Widget Class Hierarchy to help enforce consistency
Documentation Style Guide
- Contact Info
- Image Gallery