physical-ai-neural-reconstruction
Original:🇺🇸 English
Translated
Router for NVIDIA NuRec/NRE: USDZ rendering, NCore conversion, 3DGS, gRPC sensor sim, PhysicalAI HF datasets. Do NOT use for SimReady or infra setup.
10installs
Sourcenvidia/skills
Added on
NPX Install
npx skill4agent add nvidia/skills physical-ai-neural-reconstructionTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Physical AI Neural Reconstruction (NuRec) Router
Purpose
This is a thin router for NVIDIA Neural Reconstruction (NuRec)
requests. It points at the upstream skill at
and its five sibling skills
(, , , ,
). Use this skill to:
nurec-indexhttps://github.com/NVIDIA/nurec-skillsphysical-ai-datasetsncorenreasset-harvesternurec-fixer- Identify which upstream sibling skill answers a NuRec question.
- Locate, clone, or refresh the canonical checkout.
nurec-skills - 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:
nurecnurec routernurec indexneural reconstructionneural reconstruction engineNRE3DGUT3DGRTUSDZNCore V4sensor simnovel view synthesisPhysicalAI-Autonomous-Vehicles-NuRecPhysicalAI-NuRec-PPISPCosmos-Drive-Dreamsasset harvesternurec fixerDiffusionHarmonizerharmonizerdifixdifix3dserve-grpcrender-grpcwarm serve-grpcnre thin clientbatch_render_rgbnurec teardownDecide which upstream sibling skill answers the question, fetch it
(see Locate and fetch the upstream skills),
then follow that skill's body.
Prerequisites
Router skill itself has no runtime prerequisites beyond for
fetching the upstream. Downstream sibling skills require:
git- Docker + NVIDIA Container Toolkit + GPU — for ,
nre, andnre-toolscontainers (nurec-fixer,nvcr.io/nvidia/nre/nre,nvcr.io/nvidia/nre/nre-tools).nvcr.io/nvidia/cosmos/cosmos-predict2-container:1.2 - NGC API key () — for pulling NGC containers.
NGC_API_KEY - Hugging Face token () with the
HF_TOKEN,nvidia/PhysicalAI-*, andnvidia/DiffusionHarmonizergated licenses accepted in advance on Hugging Face.nvidia/asset-harvester - Python 3.10+ with installed.
huggingface_hub - (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
for the bash anti-patterns to avoid.
references/secrets-handling.mdWhat 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
skill.
nre - 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:
- Get the input — convert your own recording to NCore V4
(), or download a pre-converted dataset (
ncore).physical-ai-datasets - Train the reconstruction — feed NCore V4 to NRE; out comes a
USDZ ().
nre - 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 | |
| Convert my own camera / LiDAR / radar / depth / stereo recording into NCore V4 | |
| Write a new converter for an unsupported sensor setup (drone, RGB-D, ROS 2 bag, COLMAP, ScanNet++) | |
| Train a 3D reconstruction from an NCore clip | |
| Generate the extra inputs NRE needs (segmentation masks, depth, ego mask) | |
| Render a USDZ along the original camera positions | |
| Render at full resolution / highest quality | |
| Render along a shifted trajectory (e.g. car moved 3 m left) | |
| Render through a server so CARLA / Isaac Sim / AlpaSim / a custom simulator can ask for frames | |
| Render the same USDZ many times back-to-back from Python with minimal per-call latency | |
| Render LiDAR sweeps (point clouds) from a USDZ | |
| Skip training and just render a NuRec scene NVIDIA already built | |
| Extract individual 3D objects (cars, pedestrians) from a driving clip | |
| Add, remove, or replace cars / pedestrians in a NuRec scene | |
| Clean up or harmonize rendered frames (ghosting, floaters, flicker, lighting/shadows) | |
| Export the scene as a PLY, mesh, depth maps, ego mask, etc. | |
| Upgrade an old USDZ so newer NRE versions load it faster | |
| Open a USDZ or PLY in a browser viewer | |
| Measure rendering quality (PSNR, SSIM, LPIPS) against ground truth | |
| Benchmark different reconstruction methods on the same scenes | |
| Train on multiple GPUs or on SLURM | |
Common workflows
Six end-to-end workflows are documented in
:
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 |
|---|---|---|
| | Catalog and download recipes for every NVIDIA Physical AI dataset on Hugging Face (driving, robotics, manipulation, NuRec scenes, benchmarks). |
| | Converts any sensor recording to NCore V4 (the format NRE needs). Also covers writing a new converter. |
| | The Neural Reconstruction Engine itself. Trains, renders (locally, via warm |
| | Open-source Apache-2.0 pipeline that extracts individual 3D objects from sparse views in a driving clip and saves them as |
| | 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.mdLocate and fetch the upstream skills
Quick recipe (full version in
):
references/upstream-fetch.mdbash
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" # siblingLocal lookup order (try in order before the upstream clone):
- (Cursor, Codex, NemoClaw)
.agents/skills/<name>/SKILL.md - (Claude Code)
.claude/skills/<name>/SKILL.md - (project-scoped)
.cursor/skills/<name>/SKILL.md - (personal skills)
~/.cursor/skills/<name>/SKILL.md
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 (e.g.
name:), not by repo path. Folder layouts can change; the name is portable.nre - Clone or refresh under the shared upstream root (
https://github.com/NVIDIA/nurec-skills). Do not scan broad developer workspaces such as${NUREC_SKILLS_UPSTREAM_ROOT:-${PHYSICAL_AI_SKILL_HUB_UPSTREAM_ROOT:-$HOME/.physical-ai-skill-hub/upstreams}}/nurec-skillsor reuse unrelated old clones.~/Codes - covers gated Hugging Face datasets. Do not bypass dataset license terms; the user must accept the
physical-ai-datasetsgated licenses on Hugging Face and provide a token before downloading.PhysicalAI-* - Asset Harvester runs before packaging into a USDZ. Do not call
's
nreon hand-rolledexport-external-assetsfiles unless the user explicitly asks to skip Asset Harvester..ply - For artifact cleanup, prefer the built-in path in
--enable-difix. Route to the standalonenreonly when the user needs the public code/model card, paired evaluation, fine-tuning, or fixes on previously rendered frames.nurec-fixer - Do not invent NRE / NCore / DiffusionHarmonizer commands from
memory. Re-read the upstream sibling skill — versions move fast
(NRE is the current pinned tag).
release_26.04 - 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
, which evolves outside this repo. Stale clones can drift; always
https://github.com/NVIDIA/nurec-skillsthe upstream before relying on a sibling skill.git pull - Gated content. ,
nvidia/PhysicalAI-*, andnvidia/DiffusionHarmonizerrequire the user to accept license terms on Hugging Face first. The router cannot bypass this.nvidia/asset-harvester - Heavy footprint. A complete NuRec workflow can leave 150 GB+
on disk. See .
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 |
|---|---|---|
| Upstream not fetched yet | Run the clone block in Locate and fetch the upstream skills |
| Gated license not accepted, or | Accept the gated license on Hugging Face, then |
| Missing or expired | |
| NRE refuses to load a clip ("not valid NCore V4") | Recording was not converted | Run the |
| One-shot Docker invocation per render | Use the |
Output files are owned by | | |
| Frames have ghosting / floaters / flicker after rendering | Inline cleanup not enabled | Re-render with |
Stale skill names ( | Out-of-date cached skill | Update references to |
Bash anti-pattern | Misuse of bash parameter expansion | Rotate the token; use |
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
section — read them in the order documented in
when the user no
longer needs the workflow.
Teardownreferences/teardown.mdKeeping this router up to date
Procedure for adding new sibling skills, renames, or upstream URL
changes lives in .
Treat the upstream 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.
references/maintenance.mdnurec-index