← Back to skills

CURATED FROM PUBLIC GIT

i4h-catheter-navigation-setup

Verify host/GPU requirements and PYTHONPATH for the catheter navigation workflow. Use when asked to set up, install, or bootstrap catheter_navigation, or when hitting import/GPU/slangpy errors.

↓ 0★ 0by greatsage_sh
893c384d4c03
skillmarket install greatsage_sh/i4h-catheter-navigation-setup
Public Git sourcehttps://github.com/NVIDIA/skills.gitcommit 893c384d4c03770e7c13b4dcee1de6cd16e7a9c0
Part of skillsetskills →

About this skill

---
name: i4h-catheter-navigation-setup
version: "0.7.0"
description: Verify host/GPU requirements and PYTHONPATH for the catheter navigation workflow. Use when asked to set up, install, or bootstrap catheter_navigation, or when hitting import/GPU/slangpy errors.
license: Apache-2.0
metadata:
  author: "Isaac for Healthcare Team <[email protected]>"
  tags:
    - isaac-for-healthcare
    - i4h
    - catheter-navigation
    - setup
    - installation
---

# i4h Catheter Navigation - Setup

## Purpose

Verify host and GPU requirements, confirm the `./i4h` CLI sees the workflow, and run CPU smoke tests. Use when asked to set up catheter navigation or when hitting missing imports, GPU, or slangpy errors.

## Base Code

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:

```bash
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"
```

## Basics

- Catheter navigation registers via `workflows/catheter_navigation/metadata.json` and runs through `./i4h run catheter_navigation <mode>`.
- Runtime is package-first: `render_drr` uses installed `fluorosim` (`python -m fluorosim.examples.render_drr`), while `interactive_viewport` is launched from the local workflow script path in `metadata.json`.
- Docker image: `workflows/catheter_navigation/docker/Dockerfile` (drop `--local` on `./i4h run` to use it).
- GPU modes need slangpy, Warp, and CUDA; CPU smoke tests do not.

## Preflight

```bash
command -v python3
command -v git
nvidia-smi
df -h .
```

Required: Linux x86_64 (Ubuntu 22.04/24.04 tested), NVIDIA GPU (CC >= 7.0), driver compatible with CUDA 12.8, >= 16 GB RAM, >= 20 GB disk.

Run the steps below in order. Each step is a separate bash call; variables persist in the local agent's tmux session.

### Step 1 - resolve repo and export paths

```bash
REPO_ROOT="${I4H_WORKFLOWS:-$(git rev-parse --show-toplevel 2>/dev/null)}"; [ -d "$REPO_ROOT/workflows/catheter_navigation" ] || REPO_ROOT="$HOME/i4h-workflows"
WF_ROOT="${REPO_ROOT}/workflows/catheter_navigation"
SIM_ROOT="${WF_ROOT}/scripts/simulation"
export PYTHONPATH="${SIM_ROOT}:${PYTHONPATH:-}"
RUN_DIR="${WF_ROOT}/runs/setup_$(date +%Y%m%d_%H%M%S)"
mkdir -p "${RUN_DIR}/logs"
ln -sfn "${RUN_DIR}" "${WF_ROOT}/runs/.latest"
```

### Step 2 - verify CLI registration

```bash
"${REPO_ROOT}/i4h" modes catheter_navigation 2>&1 | tee "${RUN_DIR}/logs/modes.log"
```

### Step 3 - CPU smoke tests (no GPU)

```bash
python3 -m unittest workflows/catheter_navigation/tests/test_fluorosim_smoke.py \
  2>&1 | tee "${RUN_DIR}/logs/smoke.log"
```

Expected: `Ran 7 tests ... OK`. Parser error lines in stderr from negative test cases are expected.

### Step 4 - optional GPU sanity (synthetic DRR)

Skip if no GPU or slangpy not installed.

```bash
"${REPO_ROOT}/i4h" run catheter_navigation render_drr --local \
  --run-args="--output ${RUN_DIR}/drr.png" \
  2>&1 | tee "${RUN_DIR}/logs/render_drr.log"
```

## Verify

```bash
test -f "${RUN_DIR}/logs/smoke.log"
grep -q "OK" "${RUN_DIR}/logs/smoke.log"
python3 -c "import fluorosim; print('fluorosim', fluorosim.__file__)"
```

## Prerequisites

- Repo checkout with `workflows/catheter_navigation/` present.
- Python 3 with numpy; full GPU stack (slangpy, torch CUDA, warp) for render/viewport modes.

## Limitations

- No dedicated `setup.sh` yet - this skill verifies and documents host requirements; use Docker when host deps are incomplete.
- Step 4 requires a GPU; Step 3 alone is sufficient for CI-style verification.

## Troubleshooting

- **Error:** `fluorosim` import fails - Cause: PYTHONPATH not set. Fix: re-run Step 1; confirm `SIM_ROOT` exists.
- **Error:** `./i4h` not found - Cause: not at repo root. Fix: `cd "$REPO_ROOT"` where `./i4h` lives.
- **Error:** render_drr fails with slang/GPU - Cause: missing CUDA or slangpy. Fix: use Docker (`./i4h run catheter_navigation render_drr` without `--local`) or install deps per README.

## Final Response

Report setup status, smoke-test result, optional DRR output path, and recommend the next skill ([[i4h-catheter-navigation-digital-twin]] for patient data, [[i4h-catheter-navigation-viewport]] for interactive demo).