SlicerIGT: Transform to Markup for real-time patient tracking using the Fiducial Registration Wizard

Hi, I’m trying to use Slicer IGT to track and correct for changes in patient position in real-time. The patient is tracked with multiple 6DOF NDI aurora sensors that are read out by PlusServer and send to Slicer as transforms. From these sensors, I only use the position.

I would like to use the Fiducial Registration Wizard with Auto-update mode turned on, to register the current patient position with the initial patient position, in order to determine the most suitable average rigid transformation. However, the wizard requires markup fiducials as input and the option: “Place fiducials using transforms” does not update the fiducials when the transforms change in value.
Is there a way to automatically update markup fiducials with the translational part from the transforms that are sent?

I found this thread ( and I wonder if, when implemented, this would solve my problem. If so, is there may be a workaround to use in the meantime? Thanks!


From Plus you can send a transform for each optical marker as usual. In Slicer, you can write a few lines of Python script that adds an observer to a transform and updates a markup fiducial point. See script repository for examples.

Thanks for the quick reply!