In situ visualization and clusters

Hello everyone. 3D Slicer has been great the past 3 years that we customized it to the O&G industry. We did not release GeoSlicer to the market yet, but we’ve achieved great improvement over the traditional workflows on the industry. We’ve developed closed source extensions and had great support from the community. We’ve tried to give back as much as possible. We are super grateful to everyone that helped.
Now we’ve come to a next step where a single workstation is simply not enough to render and process the workflows from the O&G industry. I’ve came across the in situ visualizations capabilities of Paraview. With that I was able to render a 4TB volume using 32 cluster nodes in almost real time. I wonder how hard would it be to implement similar data/render server-client model into 3D Slicer. Since both platforms are based on vtk, how hard could it be, right?
We have an opportunity to compete for an 18 months project. It would need to integrate the processing and rendering on a cluster. I guess what I am asking here is for input if that would be possible. If it is something that would need to completely revamp 3D Slicer core or it would be like a somewhat simpler adaptation. We would like to make this capabilities available to the community if we succeed in this endeavor. I appreciate any input on this matter. Thanks!

1 Like

One approach could be to combine ParaView and Slicer. Combination/integration could happen at many different levels.

Another approach would be to leverage modern Python-based tools for managing large data in Slicer. For example, store images in NGFF format and retrieve image tiles in the appropriate resolution from the visible parts of the volume, process data using ITK out-of-core processing features.

1 Like

Thanks, Andras. Thinking about the processing part, I believe can be done with the slicer cli system, so we can use almost the same python code to run things locally or on the cluster. But the visualization part is still a mystery for me. The integration of ParaView and Slicer you mentioned would aim to allow for something like Slicer to connect to a pvserver and show a ParaView rendering window inside Slicer?

@fbordignon Thanks for the summary and for raising these questions.

From a high level, scaling up Slicer capabilities to support dealing if very large datasets makes sense.

As @lassoan pointed out, this could happen a many different level. To understand the “right” level of integration and how to prioritize the work, having a better idea of the bottle neck could make sense.

We could envision Slicer being a paraview catalyst [1] client, we would have to figure out which Slicer and VTK capabilities would need to be consolidated to support use in this scenario:

  • segment editor effect and associated effect (could we narrow down the list ?)
  • update of vtkSegmentationCore to be a first class VTK & Paraview module

@fbordignon @lassoan What do you think if I schedule a meeting with members of the Paraview team and us three to help sketch our a plan ?

I would also like to involve @thewtex working on the ITK side as scaling that part is also sensible.


  1. In situ | ParaView ↩︎

1 Like

Hey @jcfr sure I will be happy to give my two cents on this subject. Reach me on fernando at ltrace.com.br
Thanks!

Great. I will follow up by email. Likely on Monday so that I can coordinate few things with the teams.

1 Like