omniverse-cad-to-simready

Par nvidia · skills

Coordonne le workflow de bout en bout CAD/source-asset vers SimReady. À utiliser pour les requêtes générales telles que CAD vers SimReady, source asset vers USD simulation-ready, ou le packaging de props nécessitant une conversion, une assignation de matériaux/physique, une conformité SimReady, une validation et une création de package optionnelle ; déploie ou vérifie les services Content Agents en premier lorsque l'assignation de propriétés est activée ; achemine le travail à étape unique via des références imbriquées.

npx skills add https://github.com/nvidia/skills --skill omniverse-cad-to-simready

CAD to SimReady

Quand l'utiliser

Utilisez cette compétence de workflow lorsque l'utilisateur souhaite un pipeline de bout en bout, d'une ressource source à une ressource ou un package SimReady. Cette compétence coordonne directement les références existantes de conversion, d'édition, de validation, de conformité, de rendu et d'empaquetage. Ne remplacez pas le workflow par une seule commande runner monolithique.

Cette compétence est basée sur la documentation et ne fournit pas scripts/run.py. Elle ne doit pas dépendre d'une extraction de repository. Lorsqu'une étape nécessite une exécution déterministe, exécutez le script portable du répertoire installé de cette référence d'étape. Shell est déclaré parce que ce workflow invoque directement les scripts de référence d'étape installés ; il ne doit toujours pas devenir un runner monolithique.

Prérequis

  • Préférez d'abord exécuter la référence preflight pour une configuration déterministe. Elle installe ou vérifie les extractions amont locales, écrit un manifeste cad-to-simready-preflight.json, et exporte PHYSICAL_AI_PREFLIGHT_MANIFEST plus PHYSICAL_AI_REQUIRE_PREFLIGHT=1 pour les références aval.
  • Python 3.12 et uv (selon le README.md du repo).
  • NVIDIA_API_KEY depuis https://build.nvidia.com lorsque le déploiement local de Content Agents s'exécutera. Les endpoints déjà actifs peuvent plutôt utiliser des variables d'endpoint explicites plus des tokens d'utilisation comme NGC_API_KEY, NVCF_API_KEY, ou CONTENT_AGENTS_*_TOKEN.
  • Docker, NVIDIA Container Toolkit, et un GPU NVIDIA pour les étapes Content Agents et OVRTX.
  • Extractions amont locales sous ${PHYSICAL_AI_SKILL_HUB_UPSTREAM_ROOT:-$HOME/.physical-ai-skill-hub/upstreams} lorsqu'une étape aval a besoin de scripts ou specs amont.

Portée minimale viable

La conversion seule est une demande de workflow valide. Lorsque l'utilisateur demande uniquement de convertir ou de tester la conversion d'une ressource source, définissez property_assignment_intent=skip, ne déployez pas Content Agents, exécutez convert-to-usd, puis exécutez validate-usd-minimum sur l'USD généré si la conversion réussit.

Ne supposez pas que uv sync installe chaque runtime de convertisseur source. URDF, MuJoCo/MJCF, et les dépendances Python du repo sont gérés par l'environnement du projet, mais la conversion source soutenue par NVIDIA nécessite une extraction NVIDIA-Omniverse/usd-convert-cad installée et validée. Si ce runtime manque ou ne supporte pas la source, préservez le rapport de conversion bloquée et son install_hint au lieu de tenter une build locale non demandée ou de substituer un autre convertisseur.

Première action

Pour toute demande large de conversion CAD/ressource source vers SimReady, supposez property_assignment_intent=run sauf si l'utilisateur demande explicitement une conversion seule, une validation seule, ou aucune assignation de matériau/physique.

Avant d'invoquer le convertisseur, la validation, Content Agents, OVRTX, l'empaquetage, ou les scripts d'aide FET, exécutez la référence preflight ou vérifiez un PHYSICAL_AI_PREFLIGHT_MANIFEST existant. Traitez preflight comme l'étape d'amorçage obligatoire de dépendance, non comme du routage de workflow. Si l'utilisateur demande explicitement de ne pas déployer de services ou demande une conversion seule/validation seule, utilisez --skip-content-agents. Lorsque PHYSICAL_AI_REQUIRE_PREFLIGHT=1 est défini et qu'un composant requis n'est pas prêt dans le manifeste, les références aval doivent bloquer avec le garde-fou preflight au lieu de redécouvrir les upstreams ou services directement.

Lorsque property_assignment_intent=run, la première action opérationnelle après la confirmation du chemin source et la résolution de l'intention est de vérifier ou déployer les services Content Agents. Faites cela avant l'inspection du contexte d'actif, les vérifications de dépendance du convertisseur, la conversion, la validation, la conformité, le rendu, l'empaquetage, ou les builds source amont.

Utilisez les endpoints existants sains quand disponibles. Si les endpoints OVRTX, Material, ou Physics manquent ou sont défaillants, exécutez d'abord deploy-content-agents et ne continuez pas jusqu'à ce que le renderer OVRTX standalone partagé plus les conteneurs de service Material et Physics indépendants soient sains et exportés via CONTENT_AGENTS_*_BASE_URL. Déployez aussi l'Agent Texture lorsque la génération de texture est demandée.

Si l'authentification de déploiement requise manque, demandez à l'utilisateur NVIDIA_API_KEY et attendez. Si un endpoint fourni nécessite une auth d'utilisation, demandez plutôt le token d'utilisation approprié. Si le déploiement ne peut pas produire de services sains, signalez l'état de préparation de Content Agents comme bloqué au lieu de continuer vers la conversion.

Instructions

  1. Confirmez que le chemin de la ressource source existe, résolvez output_root, et classifiez la demande comme étant de bout en bout, conversion seule, validation seule, ou empaquetage.
  2. Résolvez property_assignment_intent avant d'exécuter toute étape d'inspection d'actif, de probe de convertisseur, de conversion, de validation, de conformité, de rendu, ou d'empaquetage.
  3. Exécutez preflight pour les cibles de workflow sélectionnées, sauf si un PHYSICAL_AI_PREFLIGHT_MANIFEST prêt est déjà configuré. Sourcez le fichier env généré avant d'exécuter les scripts aval. Traitez preflight comme simple configuration de dépendances : il peut utiliser une valeur fournie --source-asset, --source-format, ou --conversion-tools pour délimiter les vérifications de dépendances, mais convert-to-usd et les références du convertisseur amont décident toujours du support de conversion réel.
  4. Vérifiez ou déployez d'abord les services Content Agents lorsque property_assignment_intent=run ; bloquez sur l'authentification manquante ou les services défaillants au lieu de continuer.
  5. Lisez references/workflow.md et references/commands.md, puis exécutez uniquement les références d'étape nécessaires pour la demande actuelle.
  6. Exécutez identify-asset-context sur la ressource source originale lorsque la recherche web est disponible ou que l'assignation de propriétés s'exécutera.
  7. Routez la source via convert-to-usd, ou ignorez la conversion pour une entrée USD existante et traitez le chemin source comme le chemin USD actuel.
  8. Exécutez validate-usd-minimum avant les travaux aval coûteux. Traitez-le comme une simple porte de viabilité : enregistrez les problèmes d'unité/profil comme metersPerUnit != 1.0, mais ne lancez pas simready-conform-profile, FET001, ou toute autre réparation FET avant l'assignation Content Agents lorsque l'assignation de propriétés s'exécutera.
  9. Exécutez l'assignation de matériau, physique, et texture optionnelle de Content Agents sur l'USD converti/valide minimalement lorsque demandé ou requis.
  10. Exécutez simready-conform-profile sur le dernier chemin USD de simulation après l'assignation de propriétés et préservez tous les rapports de réparation FET sélectionnés.
  11. Exécutez les portes de validation dans l'ordre : omni-asset-validate, omni-asset-validate-geometry, omni-asset-validate-physics, et simready-validate.
  12. Réexécutez simready-conform-profile lorsque simready-validate signale une exigence réparable, puis réexécutez la validation du profil sur l'USD édité le plus récent.
  13. Exécutez ovrtx-render-service lorsque les images d'aperçu, miniature, ou inspection sont demandées. Lorsque les sorties de package sont demandées, exécutez assemble-package-source ensuite pour créer la source de package deliverable/ propre à partir de l'USD final et de la miniature, puis exécutez nv-core-package-sample et nv-core-package-sample-validation uniquement sur ce dossier livrable.
  14. Émettez le rapport de workflow consolidé avec le chemin USD final, tous les rapports d'étape, les conclusions de validation, les raisons de réexécution, et le travail suivant.

Utilisez la référence simready-conform-profile uniquement après l'assignation de propriétés lorsque property_assignment_intent=run. Elle route la réparation de feature vers les compétences SimReady Foundation FET amont comme simready-foundation-conform-fet-000-core, simready-foundation-conform-fet-001-minimal, simready-foundation-conform-fet-004-simulate-multi-body-physics, et simready-foundation-conform-fet-005-simulate-grasp-physics depuis la branche main.

Si simready-validate signale une exigence réparable après la première passe de conformité, réinjectez les IDs de requirement structurés dans la référence simready-conform-profile avant d'écrire le résultat final. En particulier, GSP.001 est possédée par l'amont simready-foundation-conform-fet-005-simulate-grasp-physics ; exécutez cette compétence lorsqu'un agent capable de vision peut inspecter la preuve visuelle ou lorsque des points de préhension explicites ont été fournis, sinon enregistrez l'étape FET005 comme bloquée par la vision/points manquants au lieu de la traiter comme une tâche d'aperçu optionnelle. Pour RB.MB.001, routez l'échec vers l'amont simready-foundation-conform-fet-004-simulate-multi-body-physics. Ne supposez pas que plusieurs prims visuels signifient plusieurs corps rigides ; inspectez les applications UsdPhysics.RigidBodyAPI. Lorsque le rapport de l'Agent Physique montre une optimisation de topologie composée ou lorsque l'USD a des colliders de composants existants/racines de pièces et que le validateur de profil signale FET004/RB.MB.001, FET004 devrait promouvoir ces composants existants en corps rigides sans créer de géométrie. Ne marquez pas la porte non applicable jusqu'après confirmation qu'il y a moins de deux candidats de corps réutilisables.

Format de sortie

Émettez un rapport de workflow consolidé en Markdown, et incluez JSON lorsque le workflow écrit des artefacts structurés. Le rapport doit inclure :

  • État global : passed, blocked, failed, ou needs_rerun.
  • Résumé de la demande : chemin de la ressource source, format source détecté, racine de sortie, profil/version SimReady sélectionné, et intention d'assignation de propriétés.
  • Résultats d'étape classés : référence d'étape, artefact d'entrée, chemin USD ou USDZ de sortie, chemin du rapport, état, raison du blocage, et raison de réexécution quand applicable.
  • Préparation de Content Agents et résultats d'assignation de propriétés avec URLs de service, tokens, et credentials masqués.
  • Conclusions de conformité et validation groupées par porte, ID de requirement, référence de réparation FET sélectionnée, tentative de boucle de réparation, et disposition finale.
  • Artefacts finaux : chemin USD final signalé, chemin d'aperçu de rendu quand demandé, racine de package et rapport de validation de package quand l'empaquetage s'est exécuté, chemin du rapport Markdown, chemin du rapport JSON quand présent, et travail suivant recommandé.

Références détaillées

Lisez uniquement les références nécessaires pour la demande actuelle :

  • references/preflight/README.md : configuration locale déterministe, contrat de manifeste/env, wrappers Linux et Windows, opt-out de déploiement de Content Agents, et comportement des garde-fous.
  • references/workflow.md : entrées, routage de source, workflow détaillé, politique de validation, champs de rapport de sortie, points d'approbation, et étapes suivantes.
  • references/commands.md : patterns de commande de script portable concrets pour chaque étape.
  • references/assemble-package-source/README.md : assemblage de source de package à deux zones, dénomination USD de racine canonique, placement de miniature, et vérifications de livrable autonome.

Notes de mise en page de publication

Utilisez skills/omniverse-cad-to-simready/ comme source de vérité pour la compétence de ce repo de produit. Le symlink .agents/skills est un alias de compatibilité pour la découverte de style agentskills.io local, et .codex/skills et .claude/skills sont des alias de compatibilité spécifiques aux agents.

Le frontmatter garde version et tools au niveau supérieur pour la compatibilité du runtime agentskills.io. Les champs de découvrabilité NVCARPS se situent sous metadata.

L'arborescence references/ imbriquée est intentionnelle. Elle maintient une compétence de catalogue public tout en conservant les références d'étape atomiques portant des scripts, les notes de remise amont, et la documentation du routeur sous le workflow. Ne planifiez pas ces références ou ne promouvez pas les références README imbriquées en fichiers SKILL.md frères sauf si le modèle de publication du repo change.

Limitations

  • Ce workflow coordonne les compétences existantes de conversion, assignation de propriétés, conformité, validation, rendu, et empaquetage ; il ne les remplace pas par une seule commande runner monolithique.
  • Arrêtez à la première porte de déploiement, conversion, assignation de propriétés, ou édition de conformité échouée sauf si l'utilisateur demande explicitement une continuation en meilleur effort.
  • L'amont simready-foundation-conform-fet-005-simulate-grasp-physics nécessite un examen visuel ou des points de préhension explicites avant de pouvoir éditer un vecteur de préhension significatif.

Dépannage

Symptôme Cause Correction
La référence aval signale que le preflight cad-to-simready n'a pas préparé un composant PHYSICAL_AI_REQUIRE_PREFLIGHT=1 est défini, mais le manifeste manque ou le runtime/service requis n'est pas ready Exécutez preflight/scripts/preflight.py, sourcez le fichier env généré, ou désactivez explicitement le déploiement de service avec --skip-content-agents uniquement lorsque Content Agents sont hors de portée.
Le workflow s'arrête sur GSP.001 et signale l'échec comme non classifié La preuve visuelle ou les points de préhension explicites n'ont pas été fournis à FET005 Exécutez l'amont simready-foundation-conform-fet-005-simulate-grasp-physics uniquement après qu'un agent capable de vision a examiné l'actif, ou passez des points de préhension explicites. Sinon signalez l'étape FET005 comme blocked, non échouée.
La validation échoue après qu'un artefact USD significatif existe déjà Le workflow s'est arrêté à la première conclusion de validation Continuez les portes de diagnostic restantes et marquez le résultat needs_rerun. N'arrêtez pas aux conclusions de validation une fois qu'un artefact USD a été produit.
L'étape d'assignation de propriétés échoue avec un endpoint de service manquant Le service Content Agents n'a pas été déployé avant la conversion Exécutez deploy-content-agents d'abord. Ne lancez pas l'inspection d'actif, la conversion, la validation, la conformité, le rendu, ou l'empaquetage avant la préparation de Content Agents lorsque l'assignation de propriétés s'exécutera.
Material Agent signale que le rendu a produit 0 images après réparation d'unité ou profil Une réparation FET, communément la normalisation d'unité FET001, a été appliquée avant Material Agent et a changé l'état de layering/scène USD consommé par le service Réexécutez l'assignation à partir de l'USD converti/valide minimalement : Material Agent d'abord, puis Physics Agent, puis exécutez simready-conform-profile et les réparations FET sur l'USD le plus récent édité par le service.
Material ou Physics Agent en chemin local optimisé signale Permission denied: '/app/.build-resources/scene_optimizer_core/python' Les permissions du bundle Scene Optimizer Docker local empêchent l'utilisateur de service non-root de lire le runtime SO emballé Réparez le conteneur local pertinent avec docker exec --user root content-material-agent-service chmod -R a+rX /app/.build-resources/scene_optimizer_core ou docker exec --user root content-physics-agent-service chmod -R a+rX /app/.build-resources/scene_optimizer_core, puis réexécutez la même commande d'agent optimisé. Ne traitez pas le fallback sans optimizer comme la cause root pour les actifs instanciés/prototype.
RB.MB.001 échoue même si l'actif a plusieurs prims Le profil compte les prims UsdPhysics.RigidBodyAPI, non les prims visuels ou colliders ; Physics Agent peut éditer un corps rigide racine unique Routez vers l'amont simready-foundation-conform-fet-004-simulate-multi-body-physics. D'abord assurez-vous que Physics Agent a utilisé l'optimisation de topologie composée quand applicable, puis promouvez les colliders de composants existants/racines de pièces lorsque le profil actif signale FET004/RB.MB.001 et qu'aucune géométrie ne doit être inventée.

Règles strictes

  • Préférez le manifeste preflight pour les racines amont locales, exécutables du convertisseur, runtime de validation SimReady, endpoint OVRTX, et URLs de service Content Agents. Lorsque PHYSICAL_AI_REQUIRE_PREFLIGHT=1 est défini, ne contournez pas le manifeste avec une découverte directe d'upstreams.
  • N'exécutez pas l'inspection d'actif, les probes de convertisseur, les builds source amont locaux, la conversion, la validation, la conformité, le rendu, ou l'empaquetage avant la préparation de Content Agents lorsque l'assignation de propriétés s'exécutera.
  • Utilisez directement les scripts de référence installés spécifiques à l'étape. N'ajoutez ni n'appelez une seule commande runner omniverse-cad-to-simready.
  • Pour la conversion de source, déléguez à la référence convert-to-usd ; ne substituez pas un autre convertisseur pour les formats CAD ou maille.
  • Pour l'assignation de propriétés, utilisez les références Content Agents comme étapes atomiques séparées : matériau d'abord, puis physique, puis texture uniquement quand demandé.
  • Lorsque l'assignation de propriétés s'exécutera, ne lancez pas simready-conform-profile ou toute aide FET avant Content Agents. Validez d'abord l'USD minimum, puis exécutez Content Agents sur cet USD converti/valide minimalement, puis appliquez les réparations FET à l'USD le plus récent édité par le service.
  • Lorsque l'assignation de propriétés s'exécutera, ne lancez pas simready-validate ou toute validation de profil SimReady avant Content Agents. La seule porte de validation autorisée avant les appels de service est validate-usd-minimum, qui est une vérification de viabilité USD basique.
  • Arrêtez à la première porte de déploiement, conversion, assignation de propriétés, ou édition de conformité échouée sauf si l'utilisateur demande explicitement une continuation en meilleur effort.
  • N'arrêtez pas aux conclusions de validation après qu'un artefact USD significatif existe. Continuez les portes de diagnostic restantes et marquez le résultat needs_rerun.
  • Ne laissez pas un échec de profil GSP.001 comme une conclusion finale non classifiée. Routez-le vers l'amont simready-foundation-conform-fet-005-simulate-grasp-physics ; si l'agent actuel ne peut pas inspecter les rendus ou aucun point de préhension explicite n'est disponible, signalez une réparation FET005 bloquée avec le chemin de preuve visuelle ou la raison d'entrée manquante.
  • Préservez tous les rapports d'étape et passez le chemin USD de sortie concret de chaque rapport à l'étape suivante.

Skills similaires