Back to
Projects List
Real-Time Point Cloud Streaming to 3D Slicer via OpenIGTLink
Key Investigators
- Vitor Azevedo Padovani (TELUQ University, Canada)
- Houssem Gueziri (TELUQ University, Canada)
Project Description
This project explores the real-time streaming of dynamic 3D point clouds or surfaces to 3D Slicer using OpenIGTLink and OpenIGTLinkIO. The goal is to generate synthetic time-varying surface data (e.g., a deforming mesh or animated point cloud), package it as VTK PolyData, and transmit it to Slicer for visualization and possible downstream processing. This will also allow benchmarking the performance of OpenIGTLinkIO versus the traditional OpenIGTLink API for sending non-transform data types like surfaces.
Objective
- Objective A. Implement a function to generate time-varying surface data (e.g., a sinusoidal wave or morphing geometry).
- Objective B. Package this data into vtkPolyData and stream it to Slicer in real time using OpenIGTLinkIO.
- Objective C. Test the same setup with the original OpenIGTLink library and compare performance.
- Objective D. Evaluate the responsiveness, latency, and frame rates when visualizing dynamic surface data in Slicer.
Approach and Plan
- Create a C++ module that synthesizes a point cloud or surface that varies over time (e.g., a wave surface or a breathing-like deformation).
- Use vtkPolyData to store the generated geometry at each time step.
- Integrate OpenIGTLinkIO to send this PolyData to a 3D Slicer scene using an appropriate device type (e.g., Mesh or PolyData device).
- Validate the rendering in Slicer, ensuring correct reception and visualization.
- Repeat the above using the standard OpenIGTLink library and measure latency, throughput, and CPU usage.
- Record performance differences and summarize findings.
Progress and Next Steps
- Local development environment with OpenIGTLinkIO, VTK, and 3D Slicer already set up
Illustrations
No response
Background and References
No response