New to Claude Skills? Learn how to install them →

nvidia on GitHub

Catheter Navigation Digital Twin

OfficialFree

Create patient-specific vasculature models from CT data.

by nvidia2.8k stars on nvidia/skills
1 views
Updated Aug 7, 2026
Get this skill

Free · Opens the source repo

What Catheter Navigation Digital Twin does

The i4h Catheter Navigation Digital Twin skill is designed to facilitate the creation of patient-specific vasculature models from CT imaging data. By preprocessing CT volumes and segmenting the arterial tree, this skill generates a digital twin that is essential for various medical applications, including viewport rendering and digitally reconstructed radiography (DRR). The skill operates through a series of bash commands that guide users through the necessary steps to preprocess CT data and extract relevant vessel information.

To use this skill, users must first ensure they have access to a suitable CT volume, particularly one that is contrast-enhanced and follows the TotalSegmentator dataset format. The skill provides a clear workflow, starting from downloading the dataset (if not already available) to preprocessing the CT images and segmenting the vessels. Each step is executed in a local environment, allowing for efficient handling of the data and results. The output includes a cache of processed data that can be reused in subsequent workflows, making it a practical tool for ongoing projects.

This skill is particularly suited for developers and researchers in the medical imaging field who require a reliable method for generating digital twins from CT data. It streamlines the process of creating vasculature models, thus enabling further analysis and visualization. The skill is built to work within the i4h workflows, ensuring compatibility and ease of integration with other related processes.

While the skill is powerful, it does have limitations. Users must provide their own CT data, as the skill does not ship with any datasets. Additionally, it requires a significant amount of system resources, with at least 32 GB of RAM recommended for handling larger volumes. Users should also be prepared to troubleshoot common issues related to data paths and memory usage during execution.

When to use it

Use this skill when you need to generate a digital twin of a patient's vasculature from CT imaging data for medical applications.

When not to use it

This skill is not suitable if you lack access to appropriate CT data or if your system does not meet the required resource specifications.

What you can build with it

Generating a Digital Twin for Surgical Planning

Use this skill to create a detailed digital twin of a patient's vasculature to assist in pre-surgical planning and simulations.

Research in Medical Imaging

Employ this skill in research projects that require the segmentation and analysis of vascular structures from CT images.

Integrating with Other i4h Workflows

Utilize the generated cache in conjunction with other i4h workflows for enhanced visualization and analysis of medical data.

How to install Catheter Navigation Digital Twin

View source

1. Install with the skills CLI

npx skills add nvidia/skills/i4h-catheter-navigation-digital-twin --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by nvidia

i4h Catheter Navigation - Digital Twin

Purpose

Download or locate a CT volume, preprocess it to an attenuation cache, and segment the arterial tree into vessel mask + centerline - the vasculature digital twin required for patient-specific viewport and DRR runs.

Base Code

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

  • Output cache layout: --output-dir / --ct-dir (e.g. /tmp/ct_cache) holds mu_volume.npy, metadata.json, and after segmentation vessel mask + centerline artifacts.
  • Contrast-enhanced CTA subjects work best; TotalSegmentator small subset (~3.2 GB) is the documented public dataset.
  • Comply with the dataset license; no patient data is committed to the repo.

Run

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 paths

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"
RUN_DIR="${WF_ROOT}/runs/digital_twin_$(date +%Y%m%d_%H%M%S)"
mkdir -p "${RUN_DIR}/logs"
ln -sfn "${RUN_DIR}" "${WF_ROOT}/runs/.latest"

# User-supplied or downloaded subject directory (must contain ct.nii.gz + segmentations/)
SUBJ="${SUBJ:-}"
CACHE="${CACHE:-/tmp/ct_cache}"

if [ -z "${SUBJ}" ] || [ ! -f "${SUBJ}/ct.nii.gz" ]; then
  echo "digital-twin: set SUBJ to an extracted TotalSegmentator subject (got '${SUBJ:-<unset>}')." >&2
  echo "Example: SUBJ=/path/to/Totalsegmentator_dataset_small_v201/s0011" >&2
  exit 1
fi

Step 2 - download dataset (skip if SUBJ already exists)

Only run when the user has no CT data yet.

curl -L "https://www.dropbox.com/scl/fi/pee5yxebfxrhz007cbuy5/Totalsegmentator_dataset_small_v201.zip?rlkey=osvfk02jc4lw5gr6uhrldtb9e&dl=1" \
  -o "${RUN_DIR}/Totalsegmentator_dataset_small_v201.zip"
unzip "${RUN_DIR}/Totalsegmentator_dataset_small_v201.zip" -d "${RUN_DIR}/Totalsegmentator_dataset_small_v201"
ls "${RUN_DIR}/Totalsegmentator_dataset_small_v201"
# Then set SUBJ to one extracted subject before continuing.

Step 3 - preprocess CT

"${REPO_ROOT}/i4h" run catheter_navigation preprocess_ct --local \
  --run-args="--nifti ${SUBJ}/ct.nii.gz --output-dir ${CACHE} --save-hu" \
  2>&1 | tee "${RUN_DIR}/logs/preprocess_ct.log"

Step 4 - segment vessels

"${REPO_ROOT}/i4h" run catheter_navigation segment_vessels --local \
  --run-args="--ct-dir ${CACHE} --ts-gt-dir ${SUBJ}/segmentations" \
  2>&1 | tee "${RUN_DIR}/logs/segment_vessels.log"

Verify

test -f "${CACHE}/mu_volume.npy"
test -f "${CACHE}/metadata.json"
ls -la "${CACHE}"

Notes

  • SUBJ must point at one extracted subject with ct.nii.gz and segmentations/ (TotalSegmentator layout).
  • CACHE is reused by [[i4h-catheter-navigation-viewport]] and cache-based [[i4h-catheter-navigation-render-drr]].
  • Segmentation is CPU/GPU mixed and may take several minutes depending on volume size.

Prerequisites

  • [[i4h-catheter-navigation-setup]] completed (imports and CLI work).
  • A CT NIfTI and matching vessel segmentations (or TotalSegmentator subject).
  • = 32 GB RAM recommended for large volumes.

Limitations

  • Does not ship data; user must download or provide their own CT.
  • Zenodo mirror is throttled; prefer the Dropbox URL in Step 2.

Troubleshooting

  • Error: SUBJ unset or missing ct.nii.gz - Fix: download Step 2 dataset or set SUBJ to an existing subject path.
  • Error: segment_vessels fails on --ts-gt-dir - Fix: confirm ${SUBJ}/segmentations exists (TotalSegmentator ground truth).
  • Error: out of memory during preprocess - Fix: use a smaller subject or increase swap; close other GPU/CPU workloads.

Final Response

Report CACHE path, key artifacts present, log paths under RUN_DIR, and recommend [[i4h-catheter-navigation-viewport]] or [[i4h-catheter-navigation-render-drr]] next.

Frequently asked questions about Catheter Navigation Digital Twin

Similar skills