nvidia/i4h-catheter-navigation
Overview of `workflows/catheter_navigation/` (fluorosim DRR, XPBD physics, vasculature digital twin). Use when the user asks what the catheter navigation workflow is, what's supported, or where to start.
npx skills add https://github.com/NVIDIA/skills --skill i4h-catheter-navigation
Orient on the endovascular catheter navigation workflow before touching a specific stage: which CLI modes exist, how fluorosim / physics / digital-twin pieces fit together, and which per-stage skill to invoke next. This skill routes - it runs no pipeline stage itself.
These steps drive the i4h-workflows base code (the workflows/catheter_navigation/ tree). To reuse an existing checkout, set I4H_WORKFLOWS to its path (no clone happens). Otherwise this resolves the current repo, or clones to ~/i4h-workflows - pick that default without prompting. Run every command below from the resolved root:
# Resolve the i4h-workflows base code (provides workflows/catheter_navigation/).
ROOT="${I4H_WORKFLOWS:-$(git rev-parse --show-toplevel 2>/dev/null)}"
if [ ! -d "$ROOT/workflows/catheter_navigation" ]; then
ROOT="${I4H_WORKFLOWS:-$HOME/i4h-workflows}"
[ -d "$ROOT/workflows/catheter_navigation" ] || git clone https://github.com/isaac-for-healthcare/i4h-workflows "$ROOT"
fi
export I4H_WORKFLOWS="$ROOT"; cd "$ROOT"
workflows/catheter_navigation/metadata.json - lists ./i4h modes and their runtime commands.workflows/catheter_navigation/README.md - data download, digital-twin build, viewport controls, troubleshooting.Fallback when ./i4h modes catheter_navigation fails (setup incomplete):
| Mode | Purpose |
|---|---|
| preprocess_ct | CT -> attenuation volume (mu_volume.npy) + optional HU cache |
| segment_vessels | Arterial tree mask + centerline (vasculature digital twin) |
| render_drr | Single DRR frame (synthetic phantom if no cache) |
| interactive_viewport | Live fluoroscopy viewport with XPBD catheter physics |
| Directory | Purpose |
|---|---|
| workflows/catheter_navigation/scripts/simulation/fluorosim/examples/interactive_catheter_slang_viewport.py | Interactive viewport glue script (invoked by interactive_viewport mode) |
| workflows/catheter_navigation/scripts/simulation/fluorosim/rendering/ | Local DRR rendering helpers used by viewport fallback path |
| workflows/catheter_navigation/metadata.json | ./i4h mode registry and command wiring |
| Installed packages | fluorosim, vasculature_digital_twin, catheter_vasculature_solver provide renderer + digital twin + solver runtime |
| workflows/catheter_navigation/tests/ | CPU smoke tests (no GPU required) |
Run the step below before answering. Each step is a separate bash call; variables persist in the local agent's tmux session.
REPO_ROOT="${I4H_WORKFLOWS:-$(git rev-parse --show-toplevel 2>/dev/null)}"; [ -d "$REPO_ROOT/workflows/catheter_navigation" ] || REPO_ROOT="$HOME/i4h-workflows"
"${REPO_ROOT}/i4h" modes catheter_navigation
If the command fails, use the Supported Modes fallback table above.
| Skill | Purpose |
|---|---|
| i4h-catheter-navigation-setup | Host/GPU preflight, PYTHONPATH, smoke-test verify |
| i4h-catheter-navigation-digital-twin | Download CT data, preprocess, segment vessels |
| i4h-catheter-navigation-render-drr | Render a single DRR frame |
| i4h-catheter-navigation-viewport | Launch interactive fluoroscopy + catheter sim |
| i4h-catheter-navigation-smoke | Run CPU unittest smoke suite |
| i4h-catheter-navigation-e2e | End-to-end smoke (setup -> digital twin -> render -> tests) |
./i4h not run from repo root. Fix: cd to repo root and re-run Step 1; inspect workflows/catheter_navigation/metadata.json.fluorosim / vasculature_digital_twin / catheter_vasculature_solver - Cause: dependencies not installed in active env. Fix: run [[i4h-catheter-navigation-setup]] and install README requirements.The response is incomplete unless it includes all three parts below, each separated by a blank line.
./i4h modes.Then recommend [[i4h-catheter-navigation-setup]] if setup is not done, and name one next stage skill matched to the user's goal.
Take nvidia/i4h-catheter-navigation from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.