How to create an open surface constrained by markup points,and split the current segment by this surface?

Operating system:Windows 10
Slicer version:4.11
Expected behavior:To creat a surface constrained by markup points, and split a segment by this surface. In addition, if the surface can be created and adjusted in 3D view, it will be more better for annotation work. In order to show the expected operation vividly, I made a demo gif based on Mimics 19.0. The demo takes trachea annotation as an example, but actually the annotation of vessels is more complicated. I will be grateful for your suggestions.


Actual behavior: In fact, I tried Surface Cut extension to complete above operation, but found it difficult to add or move markup points in 3D view, which often deviated from the selected segments. Moreover, Surface Cut effect is to create a closed bubble to split the segment, which requires that the bubble can not contain very complex polygons, and needs a lot of markup points.

The module that does this is called Dynamic modeler. There are many modes and options, if you need any help figuring out how to use it then let us know.

1 Like

Thanks for your help and your patience. I tried Dynamic modeler module, but found that I couldn’t get a desired surface, which is not suitable for the annotation problem I was facing. In fact, I want to segment the existing lung segments using a surface and to obtain different pulmonary segments, as shown in this gif. Due to the anatomical requirements of pulmonary segment, the surface needs to be constrained by the direction of the pulmonary vessels. Thus, it is necessary to set some markup points according to the vessels to build and adjust the surface. More detailed operation or other effective ways will be helpful to me.
PulmonarySegment_demo

We have implemented 3D open surface editing that is very similar to the your animation above, but it will not be released for a few more months (until related papers get published).

However, probably you can do what you need using closed surface. Indeed, 3D control point positioning was not working well in recent Slicer Preview Releases, as we mostly just used 3D views as quick overview and not to move points. The issue was that control points were snapped to visible surfaces by default, so the control point and generated surface iteratively crawled towards the camera as the point position was adjusted.

I’ve changed the behavior now so that now control points are moved in the camera normal plane. Please download Slicer Preview Release tomorrow noon (or later) and in that version you should be able to position the points in 3D views as you expect.

Let us know how it all works. There are many options for improving various aspects as needed.

2 Likes

That’s great. The 3D open surface editing is very expected by annotation workers. If I use the version that will be released tomorrow, will the Surface Cut extension work better?

Surface cut effect improvement is already available in the latest Slicer Preview Release.

There are other groups working on splitting organs to segments based on vasculature in 3D Slicer, such as this liver resection project:

@RafaelPalomar can you give us an update about the status of your curved planar cutting widget?

1 Like

Thanks very much for your help. I tried the latest Slicer Preview Release, which significantly improved the operation of the Surface Cut extension.

I have used T-splines (Edit “Form”) in 3D Fusion to solve a similar problem after importing structures and landmarks from 3D Slicer. There is a bit of a learning curve for the Fusion T-spline tool, however. The advantage is that one can specify the desired surface with a minimum number of control points. In other cases, lofting along curves in Fusion is easier. Beautiful surfaces result. Here’s the workflow:

  • Export the segmented structures as STL from 3D Slicer. Perhaps make an additional segment with little bit blops for where important control points go. Or make fiducials instead and export to CVS.
  • Import into 3D Fusion. Also, fiducial points can be read via a Fusion 360 script that adds them to a 3D sketch. (I don’t remember the details.)
  • Construct surface using Fusion tools. The Fusion Section Analysis allows viewing cross sections through meshes. With T-splines, control points can be directly placed on imported meshes such as those stemming from bit blops. In any case, a BREP surface eventually results.
  • Thicken surface into a BREP body in Fusion, say by .5mm, and export this body as STL.
  • Import the surface body into 3D Slicer, but remember to click Options to reveal a button that imports in RAS coordinates.
  • The surface body, now a model in Slicer, can be converted to a segment, so that it becomes a tool in Boolean operations for complicated shape 3D cuts.

This workflow could be supported by scripts at both ends. I never got around to writing a 3D slicer/Fusion 360 pair for automating all this.

1 Like

This is an interesting method that I will try. Thanks for your detailed workflow.

Correction: I meant “Fusion 360” as the suggested 3D surface editing tool (others such as Blender are also possible).

1 Like