Error when using Endoscopy module


Getting an error when using Endoscopy module in master build. I loaded in a volume, and through various manipulations, wound up with about 7 default cameras. I went in to “Data” and deleted all but one default camera, and then added 7 fiducials along the desired path. When I hit “Create path”, I get this in the console:

Calculating Path...
Traceback (most recent call last):
  File "/Users/hherhold/Development/slicer/build-qt5/Slicer-build/lib/Slicer-4.9/qt-scripted-modules/", line 220, in onCreatePathButtonClicked
    result = EndoscopyComputePath(fiducialsNode)
  File "/Users/hherhold/Development/slicer/build-qt5/Slicer-build/lib/Slicer-4.9/qt-scripted-modules/", line 387, in __init__
  File "/Users/hherhold/Development/slicer/build-qt5/Slicer-build/lib/Slicer-4.9/qt-scripted-modules/", line 407, in calculatePath
    t, p, remainder = self.step(segment, t, remainder)
TypeError: 'NoneType' object is not iterable

I’ve had my misunderstandings about how to use cameras and the Endoscopy module before so it’s likely I’m just doing something wrong. But if it’s an actual bug, I’m happy to help debug and fix if someone (@pieper?) can point me in the right direction.



Unfortunately, currently a new camera node is created each time you load the scene (current camera node does not get overwritten but a new one is created). The Endoscopy module probably only determines the camera node at the beginning and does not update it later. I would not recommend to delete camera nodes to reduce chances of errors.

Screen capture module could be used by recording camera motion to a sequence and then use sequence animation mode in ScreenCapture module. However, there is a problem with clipping range update during replay

I’ll try to find some time later this week to make camera handling a bit more robust.

I’ve fixed most important issues with the camera node clipping range updates and recording/playback in sequences. It should all work in tomorrow’s nightly build.

Set up recording of camera node changes to a sequence:

  • Go to Sequence browser module
  • Click the + button to create a new sequence
  • Select Default Camera Node as Proxy node in the table

Record camera motion:

  • Hit record button (red circle) to start recording
  • Go to Endoscopy module, play a complete fly-through
  • Hit record button to stop recording
  • You can use playback controls (play/pause, slider, etc.) on the toolbar to verify the recording

Create video file of the fly-through:

  • Go to Screen Capture module
  • Select sequence as Animation mode
  • Select sequence browser node
  • Check Video export
  • Click Capture
1 Like

Hi Andras:

I am interested in endoscopy module to do a fly-through vessel. I was not able to run the endoscopy module. BTW, is it possible for you to create a youtube presentation showing how to perform fly-through a vessel or airways?

thank you,