physical-ai-neural-reconstruction
NVIDIA/skills
NuRec/신경망 재구성 요청을 올바른 상위 NVIDIA 스킬(데이터셋, 변환, 훈련, 렌더링, 오브젝트 추출, 프레임 정리)로 전달합니다.
...모든 것을 확장하십시오물리 기반 AI 신경망 재구성(NuRec) 라우터
목적
이 라우터는 NVIDIA 신경 재구성(NuRec)
요청을 처리하기 위한 경량 라우터 입니다. 이 라우터는https://github.com/NVIDIA/nurec-skills 에 위치한
상위 nurec-index 스킬과 그 5개의 형제 스킬
(physical-ai-datasets, ncore, nre, asset-harvester,
nurec-fixer)을 가리킵니다. 이 스킬을 사용하여 다음을 수행할 수 있습니다:
- NuRec 질문에 응답하는 업스트림 형제 스킬을 식별합니다.
- 표준
nurec-skills체크아웃을 찾거나, 복제하거나, 새로 고칠 수 있습니다. - 업스트림 레시피를 열기 전에 다단계 NuRec 워크플로우(데이터 → 변환 → 훈련 → 렌더링 → 정리)의 순서를 정합니다.
표준 레시피(훈련, 렌더링, 데이터 변환, 데이터셋 다운로드, 객체 수집, 프레임 정리)는 업스트림 자매 스킬에 포함되어 있습니다. 이곳에서 해당 명령어를 복사하거나 재구성해서는 안 됩니다.
다음 용도로는 이 스킬을 사용하지 마십시오:
- CAD 또는 소스 메쉬의 SimReady 패키징 →
omniverse-cad-to-simready를사용하십시오. - NuRec과 무관한 일반적인 USD 성능 튜닝 →
omniverse-usd-performance-tuning을사용하십시오. - AKS / OSMO / NIM 오퍼레이터 인프라 설정 →
physical-ai-infrastructure-setup-and-resilient-scaling을사용하십시오.
사용 시점
사용자가 다음 용어 중 하나를 언급할 때는 먼저 이 스킬을 읽어보십시오:
nurec, nurec 라우터, nurec 인덱스, 신경망 재구성,
신경망 재구성 엔진, NRE, 3DGUT, 3DGRT, USDZ,
NCore V4, 센서 시뮬레이션, 새로운 뷰 합성,
PhysicalAI-Autonomous-Vehicles-NuRec, PhysicalAI-NuRec-PPISP,
Cosmos-Drive-Dreams, asset harvester, nurec fixer,
DiffusionHarmonizer, harmonizer, difix, difix3d, serve-grpc,
render-grpc, warm serve-grpc, nre 씬 클라이언트, batch_render_rgb,
nurec 테어다운, “NuRec을 어디서부터 시작해야 할까요?”, “X에 대해 어떤 NuRec 스킬을
사용해야 할까요?”.
어떤 업스트림 형제 스킬이 해당 질문에 답하는지 결정하고, 해당 스킬을 가져온 다음 (‘업스트림 스킬 찾기 및 가져오기’ 참조), 해당 스킬의 본문을 따르십시오.
필수 조건
라우터 스킬 자체는 업스트림을 가져오기 위한 git 외에
별도의 런타임 전제 조건이 없습니다. 다운스트림 형제 스킬에는 다음이 필요합니다:
- Docker + NVIDIA Container Toolkit + GPU —
nre,nre-tools,nurec-fixer컨테이너용 (nvcr.io/nvidia/nre/nre,nvcr.io/nvidia/nre/nre-tools,nvcr.io/nvidia/cosmos/cosmos-predict2-container:1.2). - NGC API 키 (
NGC_API_KEY) — NGC 컨테이너를 가져오기 위해 필요합니다. - Hugging Face 토큰 (
HF_TOKEN) — Hugging Face에서 사전에 승인된nvidia/PhysicalAI-*,nvidia/DiffusionHarmonizer및nvidia/asset-harvester게이트 라이선스용. huggingface_hub가설치된Python 3.10 이상.- (선택 사항)
serve-grpc를통한 시뮬레이터 통합을 위한 CARLA, Isaac Sim 5.1 또는 AlpaSim.
비밀 정보를 안전하게 확인하십시오(값을 화면에 표시하지 마십시오):
hf auth whoami
[ -n "${HF_TOKEN:-}" ] && echo "HF_TOKEN 길이=${#HF_TOKEN}" || echo "HF_TOKEN 미설정"
[ -n "${NGC_API_KEY:-}" ] && echo "NGC_API_KEY 길이=${#NGC_API_KEY}" || echo "NGC_API_KEY 미설정"
피해야 할 bash 안티패턴에 대해서는
references/secrets-handling.md를참조하십시오.
NuRec이란 무엇인가요?
NuRec (NVIDIA Omniverse Neural Reconstruction)은 카메라, LiDAR, 레이더 또는 스테레오 녹화 데이터(일반적으로 자율주행차나 로봇에서 수집된 것)를 받아, 어떤 시점에서도 다시 렌더링할 수 있는 3D 장면으로 변환합니다. 자주 등장하는 용어:
- NRE — “Neural Reconstruction Engine”. NuRec은 제품이며, NRE는
훈련 및 렌더링을 담당하는 엔진입니다. 둘 다 상위
nre스킬로 연결됩니다. - USDZ — 훈련된 씬의 파일 형식입니다. Omniverse, Isaac Sim, CARLA에서 열 수 있는 zip 아카이브입니다.
- NCore V4 — NRE가 처리하는 입력 형식입니다. 원본 녹화 데이터는 훈련 전에 NCore V4로 변환되어야 합니다.
- 3DGUT / 3DGRT — NRE가 내부적으로 사용하는 두 가지 3D 가우시안 스플래팅 방식입니다. 기본 Hydra 레시피가 그중 하나를 선택하므로, 대부분의 사용자는 수동으로 설정할 필요가 없습니다.
일반적인 NuRec 프로젝트는 세 단계로 구성됩니다:
- 입력 데이터 확보 — 직접 녹화한 데이터를 NCore V4로 변환하거나
(
ncore), 미리 변환된 데이터셋을 다운로드합니다 (physical-ai-datasets). - 재구성 모델 훈련 — NCore V4를 NRE에 입력하면,
USDZ(
nre) 파일이 출력됩니다. - 새로운 뷰 렌더링 — USDZ (
nre) 파일을 기반으로 이미지, 동영상 또는 LiDAR 스윕을 렌더링합니다.
NVIDIA에서 공개한 기존 씬을 그대로 사용 하려는 프로젝트는 2단계를 건너뜁니다.
스킬 선택
왼쪽 열에서 사용자의 목표와 일치하는 항목을 찾아 오른쪽의 해당 업스트림 스킬을 엽니다. 화살표는 “이 순서대로 수행”함을 의미합니다.
| 다음 작업을 수행하고 싶습니다… | 상류 스킬 |
|---|---|
| NVIDIA에서 공개한 NuRec 데이터셋을 찾거나 다운로드하기 | physical-ai-datasets |
| 자신이 촬영한 카메라 / LiDAR / 레이더 / 깊이 / 스테레오 영상을 NCore V4로 변환하기 | ncore |
| 지원되지 않는 센서 구성(드론, RGB-D, ROS 2 bag, COLMAP, ScanNet++)을 위한 새로운 변환기를 작성하기 | ncore |
| NCore 클립을 기반으로 3D 재구성 모델 훈련하기 | ncore → nre |
| NRE에 필요한 추가 입력(분할 마스크, 깊이, 에고 마스크) 생성 | nre ( nre-tools 컨테이너 사용) |
| 원본 카메라 위치를 따라 USDZ 렌더링 | nre |
| 최대 해상도/최고 품질로 렌더링 | nre (“품질 사전 설정” 참조) |
| 이동된 궤적을 따라 렌더링(예: 차량이 왼쪽으로 3m 이동한 경우) | nre |
| 서버를 통해 렌더링하여 CARLA / Isaac Sim / AlpaSim / 사용자 정의 시뮬레이터가 프레임을 요청할 수 있도록 함 | nre (serve-grpc) |
| 호출당 지연 시간을 최소화하면서 Python에서 동일한 USDZ 파일을 연속적으로 여러 번 렌더링 | nre (warm serve-grpc + 얇은 Python 클라이언트 / batch_render_rgb) |
| USDZ 파일에서 LiDAR 스윕(포인트 클라우드)을 렌더링합니다 | nre (render-grpc --lidar) |
| 훈련 과정을 건너뛰고 NVIDIA가 이미 구축한 NuRec 씬만 렌더링 | physical-ai-datasets → nre |
| 주행 영상에서 개별 3D 객체(차량, 보행자) 추출 | asset-harvester |
| NuRec 장면에서 차량/보행자를 추가, 제거 또는 교체 | asset-harvester → nre |
| 렌더링된 프레임을 정리하거나 보정합니다(고스팅, 플로터, 플리커, 조명/그림자) | nurec-fixer, 또는 인라인 렌더링을 위해 nre 내에서 --enable-difix 사용 |
| 씬을 PLY, 메쉬, 깊이 맵, 에고 마스크 등으로 내보내기 | nre |
| 구형 USDZ를 업그레이드하여 최신 NRE 버전에서 더 빠르게 불러올 수 있도록 함 | nre (upgrade-artifact) |
| 브라우저 뷰어에서 USDZ 또는 PLY 열기 | nre (viewer / ply_viewer) |
| 그라운드 트루와 비교하여 렌더링 품질(PSNR, SSIM, LPIPS) 측정 | nre (eval-rendering-metrics) |
| 동일한 장면에서 다양한 재구성 방법의 성능 비교 | physical-ai-datasets (PhysicalAI-NuRec-PPISP) → nre |
| 여러 GPU 또는 SLURM 환경에서 훈련 | nre (워크플로우 D) |
일반적인 워크플로우
다음과 같은 6가지 엔드투엔드 워크플로가
references/workflows.md에 문서화되어 있습니다:
- A. 직접 녹화한 자료를 바탕으로 NuRec 씬을 생성합니다.
- B. NVIDIA에서 이미 훈련을 마친 NuRec 장면을 사용합니다.
- C. 장면 내 3D 오브젝트를 추가, 제거 또는 교체합니다.
- D. 렌더링된 프레임을 정리합니다.
- E. 재구성 품질 벤치마킹.
- F. NuRec을 시뮬레이터에 연결하세요.
사용자의 작업이 하나 이상의 형제 스킬에 걸쳐 있을 때 해당 파일을 엽니다.
동급 스킬(상류)
| 이름 | 상위 폴더 | 기능 |
|---|---|---|
physical-ai-datasets |
.agents/skills/physical-ai-datasets/ |
Hugging Face에 있는 모든 NVIDIA Physical AI 데이터셋(운전, 로봇 공학, 조작, NuRec 장면, 벤치마크)에 대한 레시피를 검색하고 다운로드합니다. |
ncore |
.agents/skills/ncore/ |
모든 센서 기록을 NCore V4(NRE에서 요구하는 형식)로 변환합니다. 또한 새로운 변환기 작성 방법도 다룹니다. |
nre |
.agents/skills/nre/ |
신경 재구성 엔진(Neural Reconstruction Engine) 자체입니다. 훈련, 렌더링(로컬에서 warm serve-grpc + 경량 Python 클라이언트 / batch_render_rgb를 통해, 또는 외부 시뮬레이터로), 메쉬/포인트 클라우드/깊이 데이터 내보내기, 액터 편집, 품질 평가를 수행합니다. |
asset-harvester |
.agents/skills/asset-harvester/ |
주행 클립 내의 스파스 뷰에서 개별 3D 오브젝트를 추출하여 메타데이터가 포함된 .ply 가우시안 스플랫 ( Gaussian splats) 형식으로 저장하는 오픈소스 Apache-2.0 파이프라인입니다. |
nurec-fixer |
.agents/skills/nurec-fixer/ |
독립형 NVIDIA DiffusionHarmonizer 워크플로우 — 구형 Fixer / Difix3D+ 레시피의 공개 후속 버전 —로, 렌더링된 프레임을 정리하고, 삽입된 액터를 조화시키며, PSNR/LPIPS를 평가하고, 선택적으로 모델을 미세 조정합니다. |
이름 중복(NRE 대 Fixer, ncore 대 nre, AV-NuRec 대
Cosmos-Drive-Dreams, NuRec 대 SimReady)에 대해서는
references/mix-ups.md를 참조하십시오.
업스트림 스킬 찾기 및 가져오기
간단한 레시피 (전체 버전은
references/upstream-fetch.md에 있음):
UPSTREAM_ROOT="${NUREC_SKILLS_UPSTREAM_ROOT:-${PHYSICAL_AI_SKILL_HUB_UPSTREAM_ROOT:-$HOME/.physical-ai-skill-hub/upstreams}}"
mkdir -p "$UPSTREAM_ROOT"
if [ -d "$UPSTREAM_ROOT/nurec-skills/.git" ]; then
git -C "$UPSTREAM_ROOT/nurec-skills" fetch --tags
git -C "$UPSTREAM_ROOT/nurec-skills" checkout main
git -C "$UPSTREAM_ROOT/nurec-skills" pull --ff-only
else
git clone --depth 1 https://github.com/NVIDIA/nurec-skills.git \
"$UPSTREAM_ROOT/nurec-skills"
fi
test -f "$UPSTREAM_ROOT/nurec-skills/.agents/skills/SKILL.md"
그런 다음, 데이터를 변경하는 명령어를 실행하기 전에 업스트림 스킬을 읽어옵니다:
cat "$UPSTREAM_ROOT/nurec-skills/.agents/skills/SKILL.md" # 라우터
cat "$UPSTREAM_ROOT/nurec-skills/.agents/skills//SKILL.md" # 형제
로컬 조회 순서 (업스트림 복제 전에 순서대로 시도):
.agents/skills/(Cursor, Codex, NemoClaw)/SKILL.md .claude/skills/(Claude Code)/SKILL.md .cursor/skills/(프로젝트 범위)/SKILL.md ~/.cursor/skills/(개인 스킬)/SKILL.md
엄격한 규칙
- 라우터 전용 — 여기에서 업스트림 NuRec 레시피를 중복하지 마십시오. 변경을 유발하는 명령을 실행하기 전에 업스트림의 동급 스킬 본문을 읽어보십시오.
- 형제 스킬은 저장소 경로가 아닌
이름으로참조하십시오:(예:nre). 폴더 구조는 변경될 수 있지만 이름은 이식성이 있습니다. - 공유 업스트림 루트 아래에 있는 https://github.com/NVIDIA/nurec-skills를
클론하거나 새로 고침하십시오 (${NUREC_SKILLS_UPSTREAM_ROOT:-${PHYSICAL_AI_SKILL_HUB_UPSTREAM_ROOT:-$HOME/.physical-ai-skill-hub/upstreams}}/nurec-skills) 아래에서 https://github.com/NVIDIA/nurec-skills를 클론하거나 새로 고침하십시오.~/Codes와같은 광범위한 개발자 작업 공간을 스캔하거나 관련 없는 오래된 클론을 재사용하지 마십시오. physical-ai-datasets는접근 제한이 있는 Hugging Face 데이터셋을 다룹니다. 데이터셋 라이선스 조건을 우회하지 마십시오. 사용자는 Hugging Face에서PhysicalAI-*접근 제한 라이선스에 동의하고 토큰을 제공해야만 다운로드할 수 있습니다.- Asset Harvester는 USDZ로 패키징하기 전에 실행됩니다. 사용자가 명시적으로 Asset Harvester를 건너뛰도록 요청하지 않는 한,
수동으로 생성된
.ply파일에 대해nre의export-external-assets를호출하지 마십시오. nre의 내장된 --enable-difix 경로를 사용하여 아티팩트를 정리하는 것을 권장합니다. - 아티팩트 정리 시에는
nre의내장된--enable-difix경로를 우선적으로 사용하십시오. 사용자가 공개 코드/모델 카드, 페어링 평가, 파인 튜닝, 또는 이전에 렌더링된 프레임에 대한 수정이 필요한 경우에만독립형 nurec-fixer로전환하십시오. - 기억에만 의존하여 NRE / NCore / DiffusionHarmonizer 명령어를
임의로 만들지 마십시오. 업스트림의 동급 스킬을 다시 확인하십시오 — 버전이 빠르게
변경됩니다(NRE
release_26.04가현재 고정된 태그입니다). - 이 라우터는 인프라를 배포하지 않습니다. AKS / OSMO /
NIM Operator 설정은
physical-ai-infrastructure-setup-and-resilient-scaling으로라우팅하십시오.
제한 사항
- 라우터 전용입니다. 이 스킬은 데이터 변형을 일으키는 NuRec 명령을 절대 실행하지 않습니다. 모든 훈련, 렌더링, 변환 및 조화 작업은 업스트림의 관련 스킬에서 수행됩니다.
- 업스트림 고정. 레시피는
https://github.com/NVIDIA/nurec-skills에 있으며, 이는 이 저장소 외부에서 발전합니다. 오래된 클론은 내용이 달라질 수 있으므로, 형제 스킬을 사용하기 전에 항상 업스트림에서git pull을 수행하십시오. - 접근 제한 콘텐츠.
nvidia/PhysicalAI-*,nvidia/DiffusionHarmonizer, 및nvidia/asset-harvester를사용하려면 사용자가 먼저 Hugging Face에서 라이선스 약관에 동의해야 합니다. 라우터는 이 과정을 우회할 수 없습니다. - 대용량 리소스. 완전한 NuRec 워크플로는 디스크에 150 GB 이상의
공간을 차지할 수 있습니다.
references/teardown.md를참조하십시오. - NVIDIA 전용 스택입니다. NVIDIA GPU와 NVIDIA 컨테이너 툴킷이 필요합니다. AMD, Intel, Apple Silicon은 지원되지 않습니다.
- SimReady 파이프라인이 아닙니다. NuRec은 녹화 데이터를 바탕으로
렌더링 가능한 USDZ 파일을 생성하지만, CAD 또는 소스 메쉬의 SimReady 패키징은
별도의 파이프라인입니다(
omniverse-cad-to-simready참조).
문제 해결
| 오류/증상 | 가능한 원인 | 해결 방법 |
|---|---|---|
nurec-skills 클론이 없거나 비어 있음 |
업스트림이 아직 가져오지 않음 | Locate에서 clone 블록을 실행하고 업스트림 스킬을 가져오십시오 |
HF에서 nvidia/PhysicalAI-*를 가져오는 중403/401 오류 발생 |
게이트드 라이선스가 허용되지 않거나, HF_TOKEN이 설정되지 않았거나 범위가 잘못됨 |
Hugging Face에서 게이트형 라이선스를 수락한 후, 읽기 권한이 있는 토큰으로 hf auth 로그인을 수행하십시오 |
거부됨: nvcr.io/nvidia/nre/*에서요청한 리소스 접근이 거부되었습니다 |
NGC_API_KEY가 없거나 만료되었습니다 |
$oauthtoken 또는 NGC_API_KEY를 사용하여nvcr.io에 docker 로그인하십시오. 필요한 경우 org.ngc.nvidia.com/setup/api-key 에서 키를 갱신하십시오 |
| NRE에서 클립 로딩을 거부함("not valid NCore V4") | 녹화본이 변환되지 않았습니다 | nre를 호출하기 전에 ncore 스킬을 실행하십시오 |
serve-grpc의 콜드 스타트 지연 시간이 Python 루프의 성능을 크게 저해합니다 |
렌더링마다 Docker를 한 번씩 호출 | nre warm serve-grpc + thin Python 클라이언트(batch_render_rgb) 레시피를 사용하십시오 |
docker run 실행 후 출력 파일의 소유자가 root로 설정됨 |
-u $(id -u):$(id -g) 옵션이 누락되었습니다 |
sudo chown -R "$(id -u):$(id -g)" ; 다음 번에는 -u 플래그를 추가하세요 |
| 렌더링 후 프레임에 고스팅/플로터/깜빡임 현상 발생 | 인라인 정리 기능이 활성화되지 않음 | nre --enable-difix를 사용하여 다시 렌더링하거나, nurec-fixer (DiffusionHarmonizer)로 후처리하십시오 |
에이전트 출력에 오래된 스킬 이름(ncore-data-conversion, 구형 nvidia/Fixer)이 표시됨 |
캐시된 스킬이 오래된 경우 | ncore 및 nurec-fixer (DiffusionHarmonizer)에 대한 참조를 업데이트하십시오; references/maintenance.md 참조 |
Bash 안티패턴 ${HF_TOKEN:+yes}${HF_TOKEN:-no} 로 토큰 값이 그대로 출력됨 |
Bash 매개변수 확장의 오용 | 토큰을 순환시키세요; hf auth whoami 또는 길이만 확인하는 방식을 사용하세요( references/secrets-handling.md 참조) |
스킬 간 정리
완전한 NuRec 워크플로는 컨테이너 이미지, 모델 가중치, 코드 클론, conda 환경 및 출력
디렉토리를 합쳐 디스크에 150 GB 이상의 공간을 남길 수 있습니다.
각 자매 스킬에는 전용 'Teardown' 각 자매 스킬에는 전용 테어다운
섹션이 있습니다. 사용자가 더 이상
워크플로우를 필요로 하지 않을 때
references/teardown.md에 문서화된 순서대로 해당 내용을 확인하십시오.
이 라우터 최신 상태 유지
새로운 자매 스킬 추가, 이름 변경 또는 업스트림 URL
변경 절차는 references/maintenance.md에 나와 있습니다.
https://github.com/NVIDIA/nurec-skills/blob/main/.agents/skills/SKILL.md에 있는
업스트림 nurec-index를
공식적인 기준으로 간주하십시오. 이 스킬은 피커 테이블,
워크플로우 순서, 그리고 업스트림 페치 레시피만 반영합니다.
---
name: physical-ai-neural-reconstruction
description: Routes NuRec/Neural Reconstruction requests to the correct upstream NVIDIA skill (datasets, conversion, training, rendering, object harvesting, frame cleanup).
license: Apache-2.0
---
# Physical AI Neural Reconstruction (NuRec) Router
## Purpose
This is a **thin router** for NVIDIA Neural Reconstruction (NuRec)
requests. It points at the upstream `nurec-index` skill at
`https://github.com/NVIDIA/nurec-skills` and its five sibling skills
(`physical-ai-datasets`, `ncore`, `nre`, `asset-harvester`,
`nurec-fixer`). Use this skill to:
- Identify which upstream sibling skill answers a NuRec question.
- Locate, clone, or refresh the canonical `nurec-skills` checkout.
- Order multi-step NuRec workflows (data → conversion → train →
render → cleanup) before opening the upstream recipe.
The canonical recipes (training, rendering, data conversion, dataset
downloads, object harvesting, frame cleanup) live in the upstream
sibling skills. **Never copy or reconstruct their commands here.**
**Do NOT use this skill for:**
- SimReady packaging of CAD or source meshes → use
`omniverse-cad-to-simready`.
- Generic USD performance tuning unrelated to NuRec → use
`omniverse-usd-performance-tuning`.
- AKS / OSMO / NIM Operator infrastructure setup → use
`physical-ai-infrastructure-setup-and-resilient-scaling`.
## When to Use
Read this skill **first** whenever a user mentions any of:
`nurec`, `nurec router`, `nurec index`, `neural reconstruction`,
`neural reconstruction engine`, `NRE`, `3DGUT`, `3DGRT`, `USDZ`,
`NCore V4`, `sensor sim`, `novel view synthesis`,
`PhysicalAI-Autonomous-Vehicles-NuRec`, `PhysicalAI-NuRec-PPISP`,
`Cosmos-Drive-Dreams`, `asset harvester`, `nurec fixer`,
`DiffusionHarmonizer`, `harmonizer`, `difix`, `difix3d`, `serve-grpc`,
`render-grpc`, `warm serve-grpc`, `nre thin client`, `batch_render_rgb`,
`nurec teardown`, "where do I start with NuRec", "which NuRec skill
should I use for X?".
Decide which upstream sibling skill answers the question, fetch it
(see [Locate and fetch the upstream skills](#locate-and-fetch-the-upstream-skills)),
then follow that skill's body.
## Prerequisites
Router skill itself has no runtime prerequisites beyond `git` for
fetching the upstream. Downstream sibling skills require:
- **Docker + NVIDIA Container Toolkit + GPU** — for `nre`, `nre-tools`,
and `nurec-fixer` containers
(`nvcr.io/nvidia/nre/nre`, `nvcr.io/nvidia/nre/nre-tools`,
`nvcr.io/nvidia/cosmos/cosmos-predict2-container:1.2`).
- **NGC API key** (`NGC_API_KEY`) — for pulling NGC containers.
- **Hugging Face token** (`HF_TOKEN`) with the
`nvidia/PhysicalAI-*`, `nvidia/DiffusionHarmonizer`, and
`nvidia/asset-harvester` gated licenses **accepted in advance** on
Hugging Face.
- **Python 3.10+** with `huggingface_hub` installed.
- **(Optional)** CARLA, Isaac Sim 5.1, or AlpaSim for simulator
integration over `serve-grpc`.
Verify secrets safely (do not echo values):
```bash
hf auth whoami
[ -n "${HF_TOKEN:-}" ] && echo "HF_TOKEN length=${#HF_TOKEN}" || echo "HF_TOKEN unset"
[ -n "${NGC_API_KEY:-}" ] && echo "NGC_API_KEY length=${#NGC_API_KEY}" || echo "NGC_API_KEY unset"
```
See [`references/secrets-handling.md`](references/secrets-handling.md)
for the bash anti-patterns to avoid.
## What is NuRec?
**NuRec** (NVIDIA Omniverse Neural Reconstruction) takes camera, LiDAR,
radar, or stereo recordings — typically from a self-driving car or a
robot — and turns them into a 3D scene you can re-render from any
viewpoint. Names that come up a lot:
- **NRE** — "Neural Reconstruction Engine". NuRec is the product; NRE
is the engine that trains and renders. Both route to the upstream
`nre` skill.
- **USDZ** — the file format of a trained scene. A zip archive that
Omniverse, Isaac Sim, and CARLA can open.
- **NCore V4** — the input format NRE consumes. Raw recordings must be
converted to NCore V4 before training.
- **3DGUT / 3DGRT** — the two 3D Gaussian Splatting flavours used
internally by NRE. The default Hydra recipe picks one; most users
never set it manually.
A typical NuRec project has three stages:
1. **Get the input** — convert your own recording to NCore V4
(`ncore`), or download a pre-converted dataset
(`physical-ai-datasets`).
2. **Train the reconstruction** — feed NCore V4 to NRE; out comes a
USDZ (`nre`).
3. **Render new views** — render images, videos, or LiDAR sweeps from
the USDZ (`nre`).
Projects that just want to *use* an existing NVIDIA-published scene
skip step 2.
## Pick a skill
Match the user's goal in the left column and open the named upstream
skill on the right. Arrows mean "do these in order".
| I want to… | Upstream skill |
|------------|----------------|
| Find or download a NuRec dataset NVIDIA has published | `physical-ai-datasets` |
| Convert my own camera / LiDAR / radar / depth / stereo recording into NCore V4 | `ncore` |
| Write a new converter for an unsupported sensor setup (drone, RGB-D, ROS 2 bag, COLMAP, ScanNet++) | `ncore` |
| Train a 3D reconstruction from an NCore clip | `ncore` → `nre` |
| Generate the extra inputs NRE needs (segmentation masks, depth, ego mask) | `nre` (uses the `nre-tools` container) |
| Render a USDZ along the original camera positions | `nre` |
| Render at full resolution / highest quality | `nre` (see "Quality presets") |
| Render along a shifted trajectory (e.g. car moved 3 m left) | `nre` |
| Render through a server so CARLA / Isaac Sim / AlpaSim / a custom simulator can ask for frames | `nre` (`serve-grpc`) |
| Render the same USDZ many times back-to-back from Python with minimal per-call latency | `nre` (warm `serve-grpc` + thin Python client / `batch_render_rgb`) |
| Render LiDAR sweeps (point clouds) from a USDZ | `nre` (`render-grpc --lidar`) |
| Skip training and just render a NuRec scene NVIDIA already built | `physical-ai-datasets` → `nre` |
| Extract individual 3D objects (cars, pedestrians) from a driving clip | `asset-harvester` |
| Add, remove, or replace cars / pedestrians in a NuRec scene | `asset-harvester` → `nre` |
| Clean up or harmonize rendered frames (ghosting, floaters, flicker, lighting/shadows) | `nurec-fixer`, **or** `--enable-difix` inside `nre` for inline rendering |
| Export the scene as a PLY, mesh, depth maps, ego mask, etc. | `nre` |
| Upgrade an old USDZ so newer NRE versions load it faster | `nre` (`upgrade-artifact`) |
| Open a USDZ or PLY in a browser viewer | `nre` (`viewer` / `ply_viewer`) |
| Measure rendering quality (PSNR, SSIM, LPIPS) against ground truth | `nre` (`eval-rendering-metrics`) |
| Benchmark different reconstruction methods on the same scenes | `physical-ai-datasets` (`PhysicalAI-NuRec-PPISP`) → `nre` |
| Train on multiple GPUs or on SLURM | `nre` (Workflow D) |
## Common workflows
Six end-to-end workflows are documented in
[`references/workflows.md`](references/workflows.md):
- **A.** Make a NuRec scene from your own recording.
- **B.** Use a NuRec scene NVIDIA has already trained.
- **C.** Add, remove, or replace 3D objects in a scene.
- **D.** Clean up rendered frames.
- **E.** Benchmark reconstruction quality.
- **F.** Connect NuRec to a simulator.
Open that file when the user's task spans more than one sibling skill.
## Sibling skills (upstream)
| Name | Upstream folder | What it does |
|------|-----------------|--------------|
| `physical-ai-datasets` | `.agents/skills/physical-ai-datasets/` | Catalog and download recipes for every NVIDIA Physical AI dataset on Hugging Face (driving, robotics, manipulation, NuRec scenes, benchmarks). |
| `ncore` | `.agents/skills/ncore/` | Converts any sensor recording to NCore V4 (the format NRE needs). Also covers writing a new converter. |
| `nre` | `.agents/skills/nre/` | The Neural Reconstruction Engine itself. Trains, renders (locally, via warm `serve-grpc` + thin Python client / `batch_render_rgb`, or to an external simulator), exports meshes / point clouds / depth, edits actors, evaluates quality. |
| `asset-harvester` | `.agents/skills/asset-harvester/` | Open-source Apache-2.0 pipeline that extracts individual 3D objects from sparse views in a driving clip and saves them as `.ply` Gaussian splats with metadata. |
| `nurec-fixer` | `.agents/skills/nurec-fixer/` | Standalone NVIDIA **DiffusionHarmonizer** workflow — public successor to the older Fixer / Difix3D+ recipes — that cleans rendered frames, harmonizes inserted actors, evaluates PSNR/LPIPS, and optionally fine-tunes the model. |
For naming overlaps (NRE vs Fixer, ncore vs nre, AV-NuRec vs
Cosmos-Drive-Dreams, NuRec vs SimReady) see
[`references/mix-ups.md`](references/mix-ups.md).
## Locate and fetch the upstream skills
Quick recipe (full version in
[`references/upstream-fetch.md`](references/upstream-fetch.md)):
```bash
UPSTREAM_ROOT="${NUREC_SKILLS_UPSTREAM_ROOT:-${PHYSICAL_AI_SKILL_HUB_UPSTREAM_ROOT:-$HOME/.physical-ai-skill-hub/upstreams}}"
mkdir -p "$UPSTREAM_ROOT"
if [ -d "$UPSTREAM_ROOT/nurec-skills/.git" ]; then
git -C "$UPSTREAM_ROOT/nurec-skills" fetch --tags
git -C "$UPSTREAM_ROOT/nurec-skills" checkout main
git -C "$UPSTREAM_ROOT/nurec-skills" pull --ff-only
else
git clone --depth 1 https://github.com/NVIDIA/nurec-skills.git \
"$UPSTREAM_ROOT/nurec-skills"
fi
test -f "$UPSTREAM_ROOT/nurec-skills/.agents/skills/SKILL.md"
```
Then read the upstream skill before running any mutating command:
```bash
cat "$UPSTREAM_ROOT/nurec-skills/.agents/skills/SKILL.md" # router
cat "$UPSTREAM_ROOT/nurec-skills/.agents/skills/<folder>/SKILL.md" # sibling
```
Local lookup order (try in order before the upstream clone):
1. `.agents/skills/<name>/SKILL.md` (Cursor, Codex, NemoClaw)
2. `.claude/skills/<name>/SKILL.md` (Claude Code)
3. `.cursor/skills/<name>/SKILL.md` (project-scoped)
4. `~/.cursor/skills/<name>/SKILL.md` (personal skills)
## Hard Rules
- Router only — do not duplicate upstream NuRec recipes here. Read
the upstream sibling skill body before running any mutating command.
- Refer to sibling skills by their `name:` (e.g. `nre`), not by repo
path. Folder layouts can change; the name is portable.
- Clone or refresh `https://github.com/NVIDIA/nurec-skills` under the
shared upstream root
(`${NUREC_SKILLS_UPSTREAM_ROOT:-${PHYSICAL_AI_SKILL_HUB_UPSTREAM_ROOT:-$HOME/.physical-ai-skill-hub/upstreams}}/nurec-skills`).
Do not scan broad developer workspaces such as `~/Codes` or reuse
unrelated old clones.
- `physical-ai-datasets` covers gated Hugging Face datasets. Do not
bypass dataset license terms; the user must accept the
`PhysicalAI-*` gated licenses on Hugging Face and provide a token
before downloading.
- Asset Harvester runs **before** packaging into a USDZ. Do not call
`nre`'s `export-external-assets` on hand-rolled `.ply` files unless
the user explicitly asks to skip Asset Harvester.
- For artifact cleanup, prefer the built-in `--enable-difix` path in
`nre`. Route to the standalone `nurec-fixer` only when the user
needs the public code/model card, paired evaluation, fine-tuning,
or fixes on previously rendered frames.
- Do not invent NRE / NCore / DiffusionHarmonizer commands from
memory. Re-read the upstream sibling skill — versions move fast
(NRE `release_26.04` is the current pinned tag).
- This router does not deploy infrastructure. Route AKS / OSMO /
NIM Operator setup to
`physical-ai-infrastructure-setup-and-resilient-scaling`.
## Limitations
- **Router only.** This skill never executes mutating NuRec commands.
All training, rendering, conversion, and harmonization happens in
upstream sibling skills.
- **Upstream-pinned.** Recipes live in
`https://github.com/NVIDIA/nurec-skills`, which evolves outside
this repo. Stale clones can drift; always `git pull` the upstream
before relying on a sibling skill.
- **Gated content.** `nvidia/PhysicalAI-*`, `nvidia/DiffusionHarmonizer`,
and `nvidia/asset-harvester` require the user to accept license
terms on Hugging Face first. The router cannot bypass this.
- **Heavy footprint.** A complete NuRec workflow can leave 150 GB+
on disk. See [`references/teardown.md`](references/teardown.md).
- **NVIDIA-only stack.** Requires an NVIDIA GPU plus the NVIDIA
Container Toolkit. AMD / Intel / Apple Silicon are not supported.
- **Not a SimReady pipeline.** NuRec produces a renderable USDZ from
a recording; SimReady packaging of CAD or source meshes is a
different pipeline (see `omniverse-cad-to-simready`).
## Troubleshooting
| Error / symptom | Likely cause | Solution |
|-----------------|--------------|----------|
| `nurec-skills` clone missing or empty | Upstream not fetched yet | Run the clone block in [Locate and fetch the upstream skills](#locate-and-fetch-the-upstream-skills) |
| `403`/`401` pulling `nvidia/PhysicalAI-*` from HF | Gated license not accepted, or `HF_TOKEN` unset / wrong scope | Accept the gated license on Hugging Face, then `hf auth login` with a token that has `read` access |
| `denied: requested access to the resource is denied` from `nvcr.io/nvidia/nre/*` | Missing or expired `NGC_API_KEY` | `docker login nvcr.io` with `$oauthtoken` / `NGC_API_KEY`; rotate the key at `org.ngc.nvidia.com/setup/api-key` if needed |
| NRE refuses to load a clip ("not valid NCore V4") | Recording was not converted | Run the `ncore` skill before invoking `nre` |
| `serve-grpc` cold-start latency dominates a Python loop | One-shot Docker invocation per render | Use the `nre` warm `serve-grpc` + thin Python client (`batch_render_rgb`) recipe |
| Output files are owned by `root` after a `docker run` | `-u $(id -u):$(id -g)` was missing | `sudo chown -R "$(id -u):$(id -g)" <output_dir>`; add the `-u` flag next time |
| Frames have ghosting / floaters / flicker after rendering | Inline cleanup not enabled | Re-render with `nre --enable-difix`, or post-process with `nurec-fixer` (DiffusionHarmonizer) |
| Stale skill names (`ncore-data-conversion`, old `nvidia/Fixer`) in agent output | Out-of-date cached skill | Update references to `ncore` and `nurec-fixer` (DiffusionHarmonizer); see [`references/maintenance.md`](references/maintenance.md) |
| Bash anti-pattern `${HF_TOKEN:+yes}${HF_TOKEN:-no}` echoed token value | Misuse of bash parameter expansion | Rotate the token; use `hf auth whoami` or length-only checks (see [`references/secrets-handling.md`](references/secrets-handling.md)) |
## Cross-skill teardown
A complete NuRec workflow can leave **150 GB+** on disk between
container images, model weights, code clones, conda envs, and output
directories. Each sibling skill has its own dedicated `Teardown`
section — read them in the order documented in
[`references/teardown.md`](references/teardown.md) when the user no
longer needs the workflow.
## Keeping this router up to date
Procedure for adding new sibling skills, renames, or upstream URL
changes lives in [`references/maintenance.md`](references/maintenance.md).
Treat the upstream `nurec-index` at
<https://github.com/NVIDIA/nurec-skills/blob/main/.agents/skills/SKILL.md>
as authoritative; this skill mirrors only the picker tables, the
workflow ordering, and the upstream fetch recipe.
모든 파일
1개 파일physical-ai-neural-reconstruction 설치
스킬 파일을 다운로드하여 .claude/skills/ 디렉터리에 압축을 풀어주세요.
ZIP 다운로드저장소를 클론하고 스킬 파일을 프로젝트에 복사하세요.
git clone https://github.com/NVIDIA/skills/tree/main/skills/physical-ai-neural-reconstruction # Copy SKILL.md to your .claude/skills/ directory
복사





집
