physical-ai-neural-reconstruction
NVIDIA/skills
NuRec/Neural Reconstructionからのリクエストを、適切な上流のNVIDIAスキル(データセット、変換、トレーニング、レンダリング、オブジェクトの抽出、フレームのクリーンアップ)にルーティングします。
...すべて拡張します物理AIニューラル再構成(NuRec)ルーター
目的
これは、NVIDIA Neural Reconstruction (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 Operator インフラストラクチャのセットアップ →
physical-ai-infrastructure-setup-and-resilient-scalingを使用してください。
使用すべき場面
ユーザーが以下のいずれかに言及した場合は、まずこのスキルをお読みください:
nurec、nurec router、nurec index、ニューラル再構成、
ニューラル再構成エンジン、NRE、3DGUT、3DGRT、USDZ、
NCore V4、センサーシミュレーション、新規ビュー合成、
PhysicalAI-Autonomous-Vehicles-NuRec、PhysicalAI-NuRec-PPISP、
Cosmos-Drive-Dreams、アセットハーベスター、nurecフィクサー、
DiffusionHarmonizer、ハーモナイザー、difix、difix3d、serve-grpc、
render-grpc、warm serve-grpc、nre thin client、batch_render_rgb、
nurec teardown、「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のゲート付きライセンス用。 huggingface_hubがインストールされたPython 3.10以上。- (オプション)
serve-grpc経由のシミュレータ統合用に、CARLA、Isaac Sim 5.1、または AlpaSim。
シークレットを安全に確認してください(値をエコー表示しないでください):
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"
避けるべき 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が内部で使用する2種類の3Dガウス・スプラッティング方式です。 デフォルトのHydraレシピがどちらか一方を選択するため、ほとんどのユーザーは 手動で設定することはありません。
一般的な NuRec プロジェクトには 3 つの段階があります:
- 入力の取得— 自身の記録データを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(「品質プリセット」を参照) |
| シフトされた軌跡に沿ってレンダリングする(例:車が 3 m 左に移動した場合) | nre |
| サーバー経由でレンダリングを行い、CARLA / Isaac Sim / AlpaSim / カスタムシミュレータがフレームを要求できるようにする | nre(serve-grpc) |
| Pythonから同じUSDZを連続して何度もレンダリングし、呼び出しごとのレイテンシを最小限に抑える | nre(warmserve-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 を開く | nrenre(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本体。トレーニング、レンダリング(ローカルで、warmserve-grpc+ 軽量Pythonクライアント/batch_render_rgb経由、または外部シミュレーターへ)、メッシュ/点群/深度データのエクスポート、アクターの編集、品質評価を行います。 |
asset-harvester |
.agents/skills/asset-harvester/ |
運転シーンのクリップに含まれる疎なビューから個々の3Dオブジェクトを抽出し、メタデータ付きの.ply形式のガウス・スプラットとして保存する、Apache-2.0ライセンスのオープンソースパイプライン。 |
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
厳守すべきルール
- Router専用 — アップストリームの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パスを優先してください。ユーザーがパブリックコード/モデルカード、ペア評価、 微調整、または以前にレンダリングされたフレームの修正を 必要とする場合にのみ、スタンドアロンの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 Container Toolkitが必要です。AMD / Intel / Apple Siliconはサポートされていません。
- SimReadyパイプラインではありません。NuRecは記録データから
レンダリング可能なUSDZを生成しますが、CADやソースメッシュの
SimReadyパッケージ化は別のパイプラインとなります(
omniverse-cad-to-simreadyを参照)。
トラブルシューティング
| エラー/症状 | 考えられる原因 | 解決策 |
|---|---|---|
nurec-skillsのクローンが存在しないか、空である |
アップストリームがまだ取得されていない | 「Locate」でクローンブロックを実行し、アップストリームのスキルをフェッチしてください |
HFからnvidia/PhysicalAI-*を取得する際に403/401エラーが発生 |
ゲート付きライセンスが受け入れられない、またはHF_TOKENが設定されていない/スコープが間違っている |
Hugging FaceでGatedライセンスを受け入れた後、読み取り権限を持つトークンを使用してhf authでログインしてください |
拒否: nvcr.io/nvidia/nre/*からのリソースへのアクセス要求が拒否されました |
NGC_API_KEYが存在しないか、有効期限が切れています |
$oauthtokenまたはNGC_API_KEY を使用してnvcr.io に docker loginを実行してください。必要に応じて、org.ngc.nvidia.com/setup/api-keyでキーを更新してください |
| NRE がクリップの読み込みを拒否する(「not valid NCore V4」) | 録画が変換されませんでした | nreを呼び出す前にncoreスキルを実行してください |
serve-grpcのコールドスタート時のレイテンシがPythonループの処理時間を支配している |
レンダリングごとに Docker を 1 回だけ起動する | nrewarmserve-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 のワークフローを完全に実行すると、
コンテナイメージ、モデル重み、コードのクローン、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
コピー





家
