Open source tools for surgical navigation built as a 3D Slicer extension.
SlicerOpenNav (also known as OpenNav) provides a complete workflow for image-guided surgical navigation, including:
- Patient Management: DICOM import, case organization, and automatic session saving/loading
- Surgical Planning: Skin and target segmentation, trajectory planning, and anatomical landmark definition
- Tool Calibration: Pivot and spin calibration for tracked surgical instruments
- Patient Registration: Landmark-based and surface-based (ICP) registration to align patient anatomy with preoperative imaging
- Real-time Navigation: Live instrument tracking with multi-planar reformatted views following the pointer tip
- Guided step-by-step workflow with validation at each stage
- OptiTrack optical tracking integration via PLUS toolkit
- Automatic case saving and session recovery
- Customizable anatomical landmark selection
- Surface tracing for registration refinement
- Multiple navigation view layouts (6-up, 2-up)
- 3D Slicer (version 5.0 or later recommended)
- PLUS toolkit for optical tracking support
- OptiTrack camera system (or compatible tracking hardware)
- SlicerOpenIGTLink
- SlicerIGT
(Coming soon)
-
Clone this repository:
git clone https://github.com/NousNav/SlicerOpenNav.git
-
Build as a Slicer extension:
mkdir SlicerOpenNav-build && cd SlicerOpenNav-build cmake -DSlicer_DIR=/path/to/Slicer-build/Slicer-build ../SlicerOpenNav cmake --build . --config Release
-
Or load directly in Slicer for development:
- Open Slicer
- Go to Edit → Application Settings → Modules
- Add the module directories to "Additional module paths"
- Restart Slicer
- Patients: Load DICOM images or open an existing case
- Planning:
- Segment the skin surface
- Segment the target anatomy
- Define the surgical trajectory (entry and target points)
- Place anatomical landmarks for registration
- Registration:
- Connect and position tracking hardware
- Perform pointer pivot and spin calibration
- Collect landmark points on the patient
- Trace the skin surface for registration refinement
- Verify registration accuracy
- Navigation: Track instruments in real-time with image guidance
Cases are automatically saved to ~/OpenNav/Cases/{case_name}/ and can be reopened from the Patients screen.
| Module | Description |
|---|---|
| Home | Main application interface and workflow orchestration |
| Patients | DICOM loading and case management |
| Planning | Segmentation and trajectory planning |
| Registration | Calibration and patient-to-image registration |
| Navigation | Real-time tracking and visualization |
| LandmarkManager | Anatomical landmark handling |
| OptiTrack | Optical tracking hardware integration |
| OpenNavUtils | Shared utilities and helpers |
Contributions are welcome! Please feel free to submit issues and pull requests.
This project uses pre-commit with ruff for linting and formatting:
pip install pre-commit
pre-commit installTo ignore formatting commits in git blame:
git config blame.ignoreRevsFile .git-blame-ignore-revsThis project is licensed under the Apache License 2.0 - see the LICENSE.txt file for details.
- Developed by Kitware Inc.
- Built on 3D Slicer
- Tracking integration via PLUS toolkit
