ShapeWorks
ShapeWorks copied to clipboard
Interoperability with 3D Slicer – basic ShapeWorks functionality
With Kitware's support.
This is the parent issue for interop with 3D Slicer.
Goal: To enable a 3D Slicer user to use ShapeWorks tools within 3D Slicer.
Objective: Interoperability with 3D Slicer can include:
- [ ] a custom workflow for front-end batch processing
- [ ] a custom Python module for launching the PSM correspondence computation
- [ ] modules supporting basic visualization and analysis of correspondence models.
I assigned 6.2 Release as the milestone. We could target the low-hanging fruit for this interop and delay remaining items to 6.3 Release.
Below details are based on the kick-off meeting with Kitware in Fall 2020.
Goal(s): Enable users to perform shape modeling entirely from 3D Slicers. Tap into 3D Slicers users to expand the ShapeWorks' user base. Leverage each tool for what it is best for (e.g., segmentation tools in 3D Slicer).
Discussion Points: Toward delineating a potential plan, the following should be considered:
- What is the least “invasive” (or loosely coupled) strategy that would enable integration and “mostly” streamlined use of both Slicer and ShapeWorks tools, while not disrupting the development life cycles and processes of both packages?
- What is the intended workflow for the SW-Slicer duet? - 3D Slicer could be used for anatomy segmentation and annotating constraints and anatomical landmarks. 3D Slicer output could be used as input to SW. So integration could be made at the IO level. - 3D Slicer could integrate Studio and ShapeWorks command-line tools as plugins
- Differences between ShapeWorks and SlicerSALT/GROUPS. Which one should a Slicer user choose if we tightly integrate ShapeWorks into Slicer?
Per Mar 31, 2023 discussion:
- [ ] develop Slicer-SW use case
- [ ] anounce on Slicer Forum
- [ ] design API
Maybe the easiest strategy would be to interface with the Cloud tool (@iyerkrithika21)
From @jcfr:
Assuming python wheels are published, the easiest would be to develop a Slicer "Scripted" module, the "Extension Wizard" module will allow you to create an extension and add a module of type "scripted".
To get started, see https://slicer.readthedocs.io/en/latest/developer_guide/extensions.html
- https://slicer.readthedocs.io/en/latest/developer_guide/module_overview.html#scripted-modules
- https://slicer.readthedocs.io/en/latest/user_guide/modules/extensionwizard.html
- https://slicer.readthedocs.io/en/latest/developer_guide/script_repository.html