physical-ai-neural-reconstruction
NVIDIA/skills
将 NuRec/神经重建请求路由到相应的上游 NVIDIA 技能(数据集、转换、训练、渲染、对象提取、帧清理)。
...展开全部物理AI神经重建(NuRec)路由器
用途
这是一个用于处理 NVIDIA 神经重建(NuRec)
请求的轻量级路由器。 它指向位于
https://github.com/NVIDIA/nurec-skills 的上游nurec-index技能及其五个同级技能
(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、资产采集器、nurec修复器、
DiffusionHarmonizer、谐波器、difix、difix3d、serve-grpc、
渲染-GRPC、预热服务-GRPC、NRE 瘦客户端、batch_render_rgb、
NuRec 清理工具、“如何开始使用 NuRec”、“对于 X 应该使用哪个 NuRec 技能
?”。
确定哪个上游同级技能能回答该问题,获取该技能 (参见“定位并获取上游技能”), 然后按照该技能的正文操作。
先决条件
Router 技能本身除了用于
获取上游的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的门控许可。 - Python 3.10+且已安装
huggingface_hub。 - (可选)CARLA、Isaac Sim 5.1 或 AlpaSim,用于通过
serve-grpc实现模拟器集成。
安全验证密钥(请勿回显值):
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 未设置"
请参阅references/secrets-handling.md
了解应避免的 bash 反模式。
什么是 NuRec?
NuRec(NVIDIA Omniverse 神经重建)接收来自摄像头、激光雷达、 雷达或立体视觉的录像——通常来自自动驾驶汽车或 机器人——并将它们转换为 3D 场景,您可以从任何 视角对其进行重新渲染。经常出现的名称:
- NRE——“神经重建引擎”。NuRec 是产品;NRE
是负责训练和渲染的引擎。两者均指向上游的
nre技能。 - USDZ—— 已训练场景的文件格式。这是一个 ZIP 压缩包, Omniverse、Isaac Sim 和 CARLA 均可打开。
- NCore V4—— NRE 使用的输入格式。原始录制数据必须在 训练前转换为 NCore V4 格式。
- 3DGUT / 3DGRT— NRE 内部使用的两种 3D 高斯喷溅变体。默认的 Hydra 配方会自动选择其中一种;大多数用户 无需手动设置。
一个典型的 NuRec 项目包含三个阶段:
- 获取输入— 将您自己的录音转换为 NCore V4
(
ncore),或下载预转换的数据集 (physical-ai-datasets)。 - 训练重建模型— 将 NCore V4 数据输入 NRE;输出结果为
USDZ 文件 (
nre)。 - 渲染新视图— 基于
USDZ (
nre) 渲染图像、视频或激光雷达扫描数据。
仅需使用NVIDIA 已发布的现有场景的项目 可跳过步骤 2。
选择一项技能
在左侧列中找到与用户目标匹配的选项,并打开右侧对应的 上游技能。箭头表示“按此顺序执行”。
| 我想…… | 上游技能 |
|---|---|
| 查找或下载 NVIDIA 发布的 NuRec 数据集 | physical-ai-datasets |
| 将我自己的摄像头/激光雷达/雷达/深度/立体图像记录转换为NCore V4 | ncore |
| 为不受支持的传感器配置编写新的转换器(无人机、RGB-D、ROS 2 bag、COLMAP、ScanNet++) | ncore |
| 基于 NCore 片段训练 3D 重建模型 | ncore→nre |
| 生成 NRE 所需的额外输入(分割掩膜、深度、自我掩膜) | nre(使用nre-tools容器) |
| 沿原始摄像机位置渲染 USDZ 文件 | nre |
| 以全分辨率/最高质量进行渲染 | nre(参见“质量预设”) |
| 沿偏移后的轨迹渲染(例如:汽车向左移动了 3 米) | nre |
| 通过服务器进行渲染,以便 CARLA / Isaac Sim / AlpaSim / 自定义模拟器能够请求帧数据 | nre(serve-grpc) |
| 通过 Python 连续多次渲染同一 USDZ 文件,并最大限度降低每次调用的延迟 | nre(预热serve-grpc+ 轻量级 Python 客户端 /batch_render_rgb) |
| 从 USDZ 文件渲染激光雷达扫描数据(点云) | 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) |
常见工作流
在
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 物理 AI 数据集(驾驶、机器人、操作、NuRec 场景、基准测试)的配方下载。 |
ncore |
.agents/skills/ncore/ |
将任何传感器记录数据转换为 NCore V4 格式(NRE 所需的格式)。还涵盖了编写新转换器的相关内容。 |
nre |
.agents/skills/nre/ |
神经重建引擎(Neural Reconstruction Engine)本身。负责训练、渲染(可在本地通过 warmserve-grpc配合轻量级 Python 客户端 /batch_render_rgb 实现,或渲染至外部模拟器)、导出网格/点云/深度数据、编辑角色以及评估质量。 |
资产采集器 |
.agents/skills/asset-harvester/ |
基于 Apache-2.0 开源协议的管道,可从驾驶视频片段的稀疏视图中提取单个 3D 对象,并将其保存为带有元数据的.ply高斯散点云格式文件。 |
nurec-fixer |
.agents/skills/nurec-fixer/ |
独立的 NVIDIADiffusionHarmonizer工作流——作为旧版 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 之前运行。请勿对 手动生成的 .ply 文件调用 nre 的 export-external-assets 功能,除非 用户明确要求跳过 Asset Harvester。- Asset Harvester在打包为 USDZ之前运行。请勿对
手动生成的
.ply文件调用nre 的export-external-assets命令,除非 用户明确要求跳过 Asset Harvester。 - 对于生成物的清理,建议优先使用
nre中的内置--enable-difix路径。 仅当用户 需要公开的代码/模型卡片、配对评估、微调, 或对先前渲染的帧进行修复时,才应转至独立的nurec-fixer。 - 切勿凭记忆编造 NRE / NCore / DiffusionHarmonizer 命令。
请重新查阅上游同级技能——版本更新迅速
(NRE
release_26.04是当前固定的标签)。 - 此路由器不部署基础设施。将 AKS / OSMO /
NIM 操作员的配置引导至
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克隆缺失或为空 |
尚未获取上游 | 在“定位”中运行克隆块,并获取上游技能 |
从 HF 拉取nvidia/PhysicalAI-*时出现403/401错误 |
未接受受限许可,或HF_TOKEN未设置/作用域错误 |
在 Hugging Face 上接受受限许可,然后使用具有读取权限的令牌通过hf auth 登录 |
被拒绝:来自nvcr.io/nvidia/nre/*的资源访问请求被拒绝 |
缺少或过期的NGC_API_KEY |
使用$oauthtoken/NGC_API_KEY 执行 `docker login nvcr.io`;如有需要,请在org.ngc.nvidia.com/setup/api-key轮换密钥 |
| NRE 无法加载片段(“NCore V4 无效”) | 录制内容未转换 | 在调用 nre之前请先运行ncore技能 |
serve-grpc的冷启动延迟主导了 Python 循环 |
每次渲染仅调用一次 Docker | 使用nre预热serve-grpc+ 轻量级 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 工作流可能会在磁盘上留下150 GB 以上的空间,包括
容器镜像、模型权重、代码克隆、conda 环境和输出
目录。 每个同级技能都有其专属的“Teardown”
部分——当用户不再
需要该工作流时,请按照
references/teardown.md中记录的顺序阅读这些内容。
保持此路由器最新
添加新同级技能、重命名或上游 URL
变更的流程详见references/maintenance.md。
请将上游的nurec-index(位于
https://github.com/NVIDIA/nurec-skills/blob/main/.agents/skills/SKILL.md
)视为权威来源;本技能仅同步选择器表、
工作流排序以及上游的获取配方。
---
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.





首页
