physical-ai-neural-reconstruction

Par nvidia · skills

Routeur pour NVIDIA NuRec/NRE : rendu USDZ, conversion NCore, 3DGS, simulation de capteurs gRPC, datasets PhysicalAI HF. À NE PAS utiliser pour SimReady ou la configuration d'infrastructure.

npx skills add https://github.com/nvidia/skills --skill physical-ai-neural-reconstruction

Routeur Physical AI Neural Reconstruction (NuRec)

Objectif

Ceci est un routeur allégé pour les requêtes NVIDIA Neural Reconstruction (NuRec). Il pointe vers le skill upstream nurec-index à https://github.com/NVIDIA/nurec-skills et ses cinq skills frères (physical-ai-datasets, ncore, nre, asset-harvester, nurec-fixer). Utilisez ce skill pour :

  • Identifier quel skill frère upstream répond à une question NuRec.
  • Localiser, cloner ou actualiser le checkout canonical nurec-skills.
  • Orchestrer des workflows NuRec multi-étapes (données → conversion → entraînement → rendu → nettoyage) avant d'ouvrir la recette upstream.

Les recettes canoniques (entraînement, rendu, conversion de données, téléchargements de datasets, extraction d'objets, nettoyage de frames) résident dans les skills frères upstream. Ne copiez ni ne reconstruisez jamais leurs commandes ici.

N'utilisez PAS ce skill pour :

  • Packaging SimReady de CAD ou de maillages sources → utilisez omniverse-cad-to-simready.
  • Optimisation USD générique sans rapport avec NuRec → utilisez omniverse-usd-performance-tuning.
  • Configuration infrastructure AKS / OSMO / NIM Operator → utilisez physical-ai-infrastructure-setup-and-resilient-scaling.

Quand l'utiliser

Lisez ce skill d'abord quand un utilisateur mentionne l'un des termes suivants :

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?".

Déterminez quel skill frère upstream répond à la question, récupérez-le (voir Localiser et récupérer les skills upstream), puis suivez le contenu de ce skill.

Prérequis

Le skill routeur lui-même n'a aucun prérequis runtime au-delà de git pour récupérer l'upstream. Les skills frères en aval nécessitent :

  • Docker + NVIDIA Container Toolkit + GPU — pour les conteneurs nre, nre-tools, et nurec-fixer (nvcr.io/nvidia/nre/nre, nvcr.io/nvidia/nre/nre-tools, nvcr.io/nvidia/cosmos/cosmos-predict2-container:1.2).
  • Clé API NGC (NGC_API_KEY) — pour extraire les conteneurs NGC.
  • Token Hugging Face (HF_TOKEN) avec les licences protégées nvidia/PhysicalAI-*, nvidia/DiffusionHarmonizer, et nvidia/asset-harvester acceptées à l'avance sur Hugging Face.
  • Python 3.10+ avec huggingface_hub installé.
  • (Optionnel) CARLA, Isaac Sim 5.1, ou AlpaSim pour l'intégration simulateur via serve-grpc.

Vérifiez les secrets de manière sûre (ne signalez pas les valeurs) :

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"

Voir references/secrets-handling.md pour les anti-patterns bash à éviter.

Qu'est-ce que NuRec ?

NuRec (NVIDIA Omniverse Neural Reconstruction) prend des enregistrements caméra, LiDAR, radar ou stéréo — typiquement d'une voiture autonome ou d'un robot — et les transforme en une scène 3D que vous pouvez restituer de n'importe quel point de vue. Voici les noms qui reviennent souvent :

  • NRE — « Neural Reconstruction Engine ». NuRec est le produit ; NRE est le moteur qui entraîne et restitue. Les deux routent vers le skill upstream nre.
  • USDZ — le format de fichier d'une scène entraînée. Une archive ZIP qu'Omniverse, Isaac Sim et CARLA peuvent ouvrir.
  • NCore V4 — le format d'entrée que NRE consomme. Les enregistrements bruts doivent être convertis en NCore V4 avant l'entraînement.
  • 3DGUT / 3DGRT — les deux variantes 3D Gaussian Splatting utilisées en interne par NRE. La recette Hydra par défaut en sélectionne une ; la plupart des utilisateurs ne la définissent jamais manuellement.

Un projet NuRec typique comporte trois étapes :

  1. Obtenir l'entrée — convertissez votre propre enregistrement en NCore V4 (ncore), ou téléchargez un dataset pré-converti (physical-ai-datasets).
  2. Entraîner la reconstruction — alimentez NCore V4 à NRE ; vous obtenez un USDZ (nre).
  3. Restituer de nouvelles vues — restituez des images, des vidéos ou des balayages LiDAR à partir de l'USDZ (nre).

Les projets qui veulent simplement utiliser une scène publiée par NVIDIA existante sautent l'étape 2.

Choisir un skill

Associez l'objectif de l'utilisateur dans la colonne de gauche et ouvrez le skill upstream nommé à droite. Les flèches signifient « faites ceci dans cet ordre ».

Je veux… Skill upstream
Trouver ou télécharger un dataset NuRec publié par NVIDIA physical-ai-datasets
Convertir mon propre enregistrement caméra / LiDAR / radar / profondeur / stéréo en NCore V4 ncore
Écrire un nouveau convertisseur pour une configuration de capteur non supportée (drone, RGB-D, sac ROS 2, COLMAP, ScanNet++) ncore
Entraîner une reconstruction 3D à partir d'un clip NCore ncorenre
Générer les entrées supplémentaires dont NRE a besoin (masques de segmentation, profondeur, masque ego) nre (utilise le conteneur nre-tools)
Restituer un USDZ le long des positions caméra originales nre
Restituer à la pleine résolution / qualité maximale nre (voir « Quality presets »)
Restituer le long d'une trajectoire décalée (p. ex. voiture déplacée de 3 m vers la gauche) nre
Restituer via un serveur pour que CARLA / Isaac Sim / AlpaSim / un simulateur personnalisé puisse demander des frames nre (serve-grpc)
Restituer le même USDZ plusieurs fois d'affilée depuis Python avec une latence minimale par appel nre (warm serve-grpc + thin Python client / batch_render_rgb)
Restituer des balayages LiDAR (nuages de points) à partir d'un USDZ nre (render-grpc --lidar)
Ignorer l'entraînement et simplement restituer une scène NuRec construite par NVIDIA physical-ai-datasetsnre
Extraire des objets 3D individuels (voitures, piétons) d'un clip de conduite asset-harvester
Ajouter, supprimer ou remplacer des voitures / piétons dans une scène NuRec asset-harvesternre
Nettoyer ou harmoniser les frames restitués (fantômes, flotteurs, scintillement, éclairage/ombres) nurec-fixer, ou --enable-difix dans nre pour la restitution en ligne
Exporter la scène en tant que PLY, maillage, cartes de profondeur, masque ego, etc. nre
Mettre à niveau un ancien USDZ pour que les versions NRE plus récentes le chargent plus vite nre (upgrade-artifact)
Ouvrir un USDZ ou PLY dans un visualiseur de navigateur nre (viewer / ply_viewer)
Mesurer la qualité de restitution (PSNR, SSIM, LPIPS) par rapport à la vérité de terrain nre (eval-rendering-metrics)
Comparer différentes méthodes de reconstruction sur les mêmes scènes physical-ai-datasets (PhysicalAI-NuRec-PPISP) → nre
Entraîner sur plusieurs GPU ou sur SLURM nre (Workflow D)

Workflows courants

Six workflows de bout en bout sont documentés dans references/workflows.md :

  • A. Créer une scène NuRec à partir de votre propre enregistrement.
  • B. Utiliser une scène NuRec déjà entraînée par NVIDIA.
  • C. Ajouter, supprimer ou remplacer des objets 3D dans une scène.
  • D. Nettoyer les frames restitués.
  • E. Comparer la qualité de reconstruction.
  • F. Connecter NuRec à un simulateur.

Ouvrez ce fichier quand la tâche de l'utilisateur s'étend sur plus d'un skill frère.

Skills frères (upstream)

Nom Dossier upstream Ce qu'il fait
physical-ai-datasets .agents/skills/physical-ai-datasets/ Catalogue et recettes de téléchargement pour chaque dataset NVIDIA Physical AI sur Hugging Face (conduite, robotique, manipulation, scènes NuRec, benchmarks).
ncore .agents/skills/ncore/ Convertit tout enregistrement de capteur en NCore V4 (le format dont NRE a besoin). Couvre aussi l'écriture d'un nouveau convertisseur.
nre .agents/skills/nre/ Le Neural Reconstruction Engine lui-même. Entraîne, restitue (localement, via warm serve-grpc + thin Python client / batch_render_rgb, ou vers un simulateur externe), exporte des maillages / nuages de points / profondeur, édite les acteurs, évalue la qualité.
asset-harvester .agents/skills/asset-harvester/ Pipeline Apache-2.0 open-source qui extrait des objets 3D individuels de vues peu denses dans un clip de conduite et les sauvegarde en tant que splats Gaussiens .ply avec métadonnées.
nurec-fixer .agents/skills/nurec-fixer/ Workflow DiffusionHarmonizer NVIDIA autonome — successeur public des plus anciennes recettes Fixer / Difix3D+ — qui nettoie les frames restitués, harmonise les acteurs insérés, évalue PSNR/LPIPS, et affine optionnellement le modèle.

Pour les chevauchements de noms (NRE vs Fixer, ncore vs nre, AV-NuRec vs Cosmos-Drive-Dreams, NuRec vs SimReady) voir references/mix-ups.md.

Localiser et récupérer les skills upstream

Recette rapide (version complète dans 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"

Ensuite, lisez le skill upstream avant d'exécuter toute commande mutante :

cat "$UPSTREAM_ROOT/nurec-skills/.agents/skills/SKILL.md"          # router
cat "$UPSTREAM_ROOT/nurec-skills/.agents/skills/<folder>/SKILL.md" # frère

Ordre de recherche local (essayez dans l'ordre avant le clone upstream) :

  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)

Règles strictes

  • Routeur uniquement — ne dupliquez pas les recettes NuRec upstream ici. Lisez le contenu du skill frère upstream avant d'exécuter toute commande mutante.
  • Référencez les skills frères par leur name: (p. ex. nre), pas par le chemin du dépôt. Les dispositions de dossiers peuvent changer ; le nom est portable.
  • Clonez ou actualisez https://github.com/NVIDIA/nurec-skills sous la racine upstream partagée (${NUREC_SKILLS_UPSTREAM_ROOT:-${PHYSICAL_AI_SKILL_HUB_UPSTREAM_ROOT:-$HOME/.physical-ai-skill-hub/upstreams}}/nurec-skills). Ne scannez pas les espaces de travail développeur généraux comme ~/Codes et ne réutilisez pas de vieux clones sans rapport.
  • physical-ai-datasets couvre les datasets Hugging Face protégés. Ne contournez pas les conditions de licence des datasets ; l'utilisateur doit accepter les licences protégées PhysicalAI-* sur Hugging Face et fournir un token avant de télécharger.
  • Asset Harvester s'exécute avant l'empaquetage en USDZ. N'appelez pas export-external-assets de nre sur des fichiers .ply créés à la main à moins que l'utilisateur ne demande explicitement de ignorer Asset Harvester.
  • Pour le nettoyage d'artefacts, préférez le chemin --enable-difix intégré dans nre. Routez vers le nurec-fixer autonome uniquement quand l'utilisateur a besoin du code public/model card, de l'évaluation appariée, de l'affinage, ou de correctifs sur les frames précédemment restitués.
  • N'inventez pas de commandes NRE / NCore / DiffusionHarmonizer de mémoire. Relisez le skill frère upstream — les versions bougent vite (la tag release_26.04 de NRE est actuellement épinglée).
  • Ce routeur ne déploie pas d'infrastructure. Routez la configuration AKS / OSMO / NIM Operator vers physical-ai-infrastructure-setup-and-resilient-scaling.

Limitations

  • Routeur uniquement. Ce skill n'exécute jamais de commandes NuRec mutantes. Tout l'entraînement, la restitution, la conversion et l'harmonisation se font dans les skills frères upstream.
  • Épinglé à l'upstream. Les recettes résident dans https://github.com/NVIDIA/nurec-skills, qui évolue en dehors de ce dépôt. Les clones obsolètes peuvent dériver ; toujours git pull l'upstream avant de dépendre d'un skill frère.
  • Contenu protégé. nvidia/PhysicalAI-*, nvidia/DiffusionHarmonizer, et nvidia/asset-harvester exigent que l'utilisateur accepte d'abord les conditions de licence sur Hugging Face. Le routeur ne peut pas contourner cela.
  • Empreinte lourde. Un workflow NuRec complet peut laisser 150 GB+ sur le disque. Voir references/teardown.md.
  • Stack NVIDIA uniquement. Nécessite un GPU NVIDIA plus NVIDIA Container Toolkit. AMD / Intel / Apple Silicon ne sont pas supportés.
  • Pas un pipeline SimReady. NuRec produit un USDZ renderable à partir d'un enregistrement ; l'empaquetage SimReady de CAD ou de maillages sources est un pipeline différent (voir omniverse-cad-to-simready).

Dépannage

Erreur / symptôme Cause probable Solution
Clone nurec-skills manquant ou vide Upstream non récupéré encore Exécutez le bloc de clone dans Localiser et récupérer les skills upstream
403/401 en extrayant nvidia/PhysicalAI-* depuis HF Licence protégée non acceptée, ou HF_TOKEN non défini / mauvaise portée Acceptez la licence protégée sur Hugging Face, puis hf auth login avec un token ayant accès read
denied: requested access to the resource is denied depuis nvcr.io/nvidia/nre/* NGC_API_KEY manquante ou expirée docker login nvcr.io avec $oauthtoken / NGC_API_KEY ; rotez la clé à org.ngc.nvidia.com/setup/api-key si nécessaire
NRE refuse de charger un clip (« not valid NCore V4 ») L'enregistrement n'a pas été converti Exécutez le skill ncore avant d'invoquer nre
Latence démarrage froid serve-grpc domine une boucle Python Invocation Docker unique par restitution Utilisez la recette warm serve-grpc de nre + thin Python client (batch_render_rgb)
Les fichiers de sortie appartiennent à root après docker run -u $(id -u):$(id -g) était manquant sudo chown -R "$(id -u):$(id -g)" <output_dir> ; ajoutez le flag -u la prochaine fois
Les frames ont des fantômes / flotteurs / scintillement après restitution Nettoyage en ligne non activé Restituez à nouveau avec nre --enable-difix, ou post-traitez avec nurec-fixer (DiffusionHarmonizer)
Noms de skills obsolètes (ncore-data-conversion, ancien nvidia/Fixer) dans la sortie agent Skill en cache obsolète Mettez à jour les références vers ncore et nurec-fixer (DiffusionHarmonizer) ; voir references/maintenance.md
Anti-pattern bash ${HF_TOKEN:+yes}${HF_TOKEN:-no} a signaté la valeur du token Mauvaise utilisation de l'expansion de paramètre bash Rotez le token ; utilisez hf auth whoami ou des vérifications longueur uniquement (voir references/secrets-handling.md)

Démantèlement cross-skill

Un workflow NuRec complet peut laisser 150 GB+ sur le disque entre les images conteneur, les poids de modèle, les clones de code, les envs conda, et les répertoires de sortie. Chaque skill frère a sa propre section Teardown dédiée — lisez-les dans l'ordre documenté dans references/teardown.md quand l'utilisateur n'a plus besoin du workflow.

Maintenir ce routeur à jour

La procédure pour ajouter de nouveaux skills frères, des renommages, ou les changements d'URL upstream réside dans references/maintenance.md. Traitez le nurec-index upstream à https://github.com/NVIDIA/nurec-skills/blob/main/.agents/skills/SKILL.md comme faisant autorité ; ce skill ne reflète que les tables de sélection, l'orchestration du workflow, et la recette de récupération upstream.

Skills similaires