omniverse-cad-to-simready について
omniverse-cad-to-simready は、CAD などのソースアセットを SimReady アセットやパッケージにする、ドキュメント主導のワークフロースキルです。単一の実行ツールではなく、変換、属性割り当て、適合、検証、レンダリング、パッケージ化の既存工程を連携します。
主な機能
- 01変換と属性割り当ての連携
- 02適合および検証工程の実行
- 03プレビューのレンダリング
- 04納品パッケージの作成と検証
- 05統合ワークフローレポートの出力
活用シーン
- 01CAD ソースを SimReady アセットに変換
- 02USD アセットのみを変換して確認
- 03アセット要件を検証して修正
- 04最終 USD のプレビューとパッケージを作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ promptingcompany/ nv-skills --skill omniverse-cad-to-simreadyインストール後、Claude Code で/omniverse-cad-to-simreadyを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
BENCHMARK.mdagents/openai.yamlevals/evals.jsonevals/files/minimal_mesh.stlreferences/commands.mdreferences/assemble-package-source/README.mdreferences/assemble-package-source/scripts/check_dependencies.pyreport_schema.jsonrun.pyreferences/content-agents/README.mdreferences/content-agents/references/material-agent-client/README.mdreferences/content-agents/references/material-agent-client/scripts/check_dependencies.pyreport_schema.jsonrun.pyreferences/content-agents/references/physics-agent-client/README.mdreferences/content-agents/references/physics-agent-client/scripts/check_dependencies.pyreport_schema.jsonrun.pyreferences/content-agents/references/texture-agent-client/README.mdreferences/content-agents/references/texture-agent-client/scripts/check_dependencies.pyreport_schema.jsonrun.pyreferences/content-agents/scripts/check_dependencies.pycontent_agent_check_dependencies.pycontent_agent_client.pycontent_agent_material_cleanup.pycontent_agent_report_schema.jsonreport_schema.jsonrun.pyreferences/convert-to-usd/README.md詳細
CAD から SimReady へ
使用する場面
ユーザーが、ソースアセットから SimReady アセットまたはパッケージまでのエンドツーエンドのパイプラインを求めている場合に、このワークフロースキルを使用してください。このスキルは、既存の変換、オーサリング、検証、適合性確認、レンダリング、パッケージ化の各リファレンスを直接連携させます。ワークフローを単一のモノリシックな実行コマンドに置き換えないでください。
このスキルはドキュメント主導であり、scripts/run.py は同梱していません。リポジトリのチェックアウトに依存してはなりません。あるステージで決定論的な実行が必要な場合は、そのステージのリファレンスがインストールされたディレクトリから、移植可能なスクリプトを実行してください。Shell が宣言されているのは、このワークフローがインストール済みのステージリファレンスのスクリプトを直接呼び出すためです。モノリシックな実行コマンドに発展させてはなりません。
前提条件
- 決定論的なセットアップのため、最初に
preflightリファレンスを実行することを推奨します。このリファレンスはローカルの上流リポジトリをインストールまたは検証し、cad-to-simready-preflight.jsonマニフェストを書き込み、後続のリファレンス向けにPHYSICAL_AI_PREFLIGHT_MANIFESTとPHYSICAL_AI_REQUIRE_PREFLIGHT=1をエクスポートします。 - Python 3.12 と
uv(リポジトリのREADME.mdに従います)。 - Content Agents のローカルデプロイを実行する場合は、
https://build.nvidia.comの NVIDIA_API_KEY が必要です。すでに稼働しているエンドポイントでは、明示的なエンドポイント変数に加えて、NGC_API_KEY、NVCF_API_KEY、CONTENT_AGENTS_*_TOKENなどの使用トークンを利用できます。 - Content Agents と OVRTX のステージには、Docker、NVIDIA Container Toolkit、NVIDIA GPU が必要です。
- 後続のステージで上流のスクリプトまたは仕様が必要な場合は、
${PHYSICAL_AI_SKILL_HUB_UPSTREAM_ROOT:-$HOME/.physical-ai-skill-hub/upstreams}以下に上流リポジトリのローカルチェックアウトが必要です。
最小限の実行範囲
変換のみを行うワークフローも有効です。ユーザーがソースアセットの変換だけを求めている場合、またはそのスモークテストだけを求めている場合は、property_assignment_intent=skip を設定し、Content Agents をデプロイせず、convert-to-usd を実行します。変換が成功したら、生成された USD に対して validate-usd-minimum を実行してください。
uv sync がすべてのソース変換ランタイムをインストールするかのように示してはなりません。URDF、MuJoCo/MJCF、およびリポジトリの Python 依存関係はプロジェクト環境で処理されますが、NVIDIA を利用するソース変換には、インストール済みで検証済みの NVIDIA-Omniverse/usd-convert-cad チェックアウトが必要です。そのランタイムが見つからない場合、またはソースに対応していない場合は、ブロックされた変換レポートとその install_hint を保持してください。要求されていないローカルビルドを試したり、別の変換ツールで代用したりしないでください。
最初に行うこと
CAD/ソースアセットから SimReady への幅広い変換リクエストでは、ユーザーが変換のみ、検証のみ、またはマテリアル/物理プロパティの割り当てなしを明示的に求めていない限り、
property_assignment_intent=run とみなします。
コンバーター、検証、Content Agents、OVRTX、パッケージング、FET ヘルパースクリプトを実行する前に、preflight リファレンスを実行するか、既存の
PHYSICAL_AI_PREFLIGHT_MANIFEST を確認します。preflight はワークフローのルーティングではなく、必須の依存関係ブートストラップ手順として扱ってください。ユーザーがサービスをデプロイしないよう明示的に求めている場合、または変換のみ/検証のみを求めている場合は、
--skip-content-agents を使用します。
PHYSICAL_AI_REQUIRE_PREFLIGHT=1 が設定されており、必須コンポーネントがマニフェストで準備できていない場合、後続のリファレンスは上流システムやサービスを直接再検出せず、preflight ガードレールに従ってブロックする必要があります。
property_assignment_intent=run の場合、ソースパスを確認して意図を解決した後、最初に実行する操作は Content Agents サービスの確認またはデプロイです。アセットコンテキストの確認、コンバーターの依存関係チェック、変換、検証、適合性確認、レンダリング、パッケージング、上流ソースのビルドよりも先に実施してください。
利用可能な場合は、正常な既存エンドポイントを使用します。OVRTX、Material、または Physics のエンドポイントが存在しない、もしくは正常でない場合は、まず
deploy-content-agents を実行し、共有のスタンドアロン OVRTX レンダラーと、独立した Material および Physics のサービスコンテナーが正常になり、
CONTENT_AGENTS_*_BASE_URL を通じてエクスポートされるまで先へ進まないでください。テクスチャ生成が要求されている場合は、Texture Agent もデプロイします。
必要なデプロイ認証情報がない場合は、ユーザーに
NVIDIA_API_KEY を求め、回答を待ちます。提供されたエンドポイントで利用認証が必要な場合は、代わりに適切な利用トークンを求めます。デプロイしても正常なサービスを用意できない場合は、変換に進まず、Content Agents の準備状況をブロックとして報告します。
Instructions
- ソースアセットのパスが存在することを確認し、
output_rootを解決して、リクエストをエンドツーエンド、変換のみ、検証のみ、パッケージ化のいずれかに分類します。 - アセットの検査、コンバーターのプローブ、変換、検証、適合性確認、レンダリング、パッケージ化のいずれかを実行する前に、
property_assignment_intentを解決します。 - 選択したワークフローの対象について
preflightを実行します。ただし、準備完了状態のPHYSICAL_AI_PREFLIGHT_MANIFESTがすでに設定されている場合は除きます。生成されたenvファイルを読み込んでから、後続のスクリプトを実行してください。preflightは依存関係のセットアップのみを行うものとして扱います。依存関係の確認対象を絞り込むために、指定された--source-asset、--source-format、または--conversion-toolsの値を使用する場合がありますが、実際の変換サポートはconvert-to-usdと上流コンバーターの参照情報に基づいて判断します。 property_assignment_intent=runの場合は、まずContent Agentsサービスの稼働を確認するか、デプロイします。認証情報がない場合やサービスが正常でない場合は、続行せず処理を止めます。references/workflow.mdとreferences/commands.mdを読み、現在のリクエストに必要なステージの参照情報のみを実行します。- Web検索が利用可能な場合、またはプロパティ割り当てを実行する場合は、元のソースアセットに対して
identify-asset-contextを実行します。 - ソースを
convert-to-usdに渡します。入力がすでにUSDの場合は変換を省略し、ソースパスを現在のUSDパスとして扱います。 - コストの高い後続処理の前に
validate-usd-minimumを実行します。これは実行可能性のゲートとしてのみ扱います。metersPerUnit != 1.0などの単位やプロファイルの問題は記録しますが、プロパティ割り当てを実行する場合は、Content Agentsによる割り当て前にsimready-conform-profile、FET001、その他のFET修復を実行しないでください。 - 要求されている場合、または必須の場合は、変換済みかつ最小要件を満たしたUSDに対して、Content Agentsのマテリアル、物理特性、任意のテクスチャの割り当てを実行します。
- プロパティ割り当て後、最新のシミュレーションUSDパスに対して
simready-conform-profileを実行し、選択したすべてのFET修復レポートを保持します。 - 次の順序で検証ゲートを実行します。
omni-asset-validate、omni-asset-validate-geometry、omni-asset-validate-physics、simready-validate。 simready-validateで修復可能な要件が報告された場合は、simready-conform-profileを再実行し、最新の編集済みUSDに対してプロファイル検証を再実行します。- プレビュー、サムネイル、または検査用画像が要求されている場合は、
ovrtx-render-serviceを実行します。パッケージ出力が要求されている場合は、次にassemble-package-sourceを実行し、最終USDとサムネイルからクリーンなdeliverable/パッケージソースを作成してから、そのdeliverableフォルダーのみを対象にnv-core-package-sampleとnv-core-package-sample-validationを実行します。 - 最終USDパス、すべてのステージレポート、検証結果、再実行の理由、次の作業を含む、統合ワークフローレポートを出力します。
property_assignment_intent=runの場合は、プロパティ割り当て後に限り、simready-conform-profileの参照情報を使用してください。機能の修復は、ブランチmainのsimready-foundation-conform-fet-000-core、simready-foundation-conform-fet-001-minimal、simready-foundation-conform-fet-004-simulate-multi-body-physics、simready-foundation-conform-fet-005-simulate-grasp-physicsなど、上流のSimReady Foundation FETスキルに振り分けられます。
最初の適合性チェック後に simready-validate が修復可能な要件を報告した場合は、最終結果を記述する前に、構造化された要件 ID を simready-conform-profile の参照先に渡してください。特に、GSP.001 は上流の
simready-foundation-conform-fet-005-simulate-grasp-physics が担当します。ビジョン対応エージェントが視覚的な証拠を確認できる場合、または明示的な把持点が指定されている場合は、そのスキルを実行してください。それ以外の場合は、FET005 のステップを任意のプレビュー作業として扱うのではなく、ビジョン/把持点がないためブロックされたと記録してください。
RB.MB.001 の場合は、失敗を上流の
simready-foundation-conform-fet-004-simulate-multi-body-physics に引き継いでください。複数のビジュアルプリムが複数の剛体であると決めつけず、UsdPhysics.RigidBodyAPI の適用状況を確認してください。Physics Agent のレポートに合成されたトポロジ最適化が示されている場合、または USD に既存のコンポーネントコライダー/パーツルートがあり、プロファイルバリデーターが FET004/RB.MB.001 を報告した場合、FET004 はジオメトリを作成せずに、それらの既存コンポーネントを剛体に昇格させてください。再利用可能なボディ候補が 2 つ未満であることを確認してからでなければ、ゲートを該当なしとしてはいけません。
出力形式
Markdown で統合ワークフローレポートを出力し、ワークフローが構造化アーティファクトを書き出す場合は JSON も含めてください。レポートには以下を含めてください。
- 全体ステータス:
passed、blocked、failed、needs_rerunのいずれか。 - リクエストの概要:ソースアセットのパス、検出したソース形式、出力ルート、選択した SimReady プロファイル/バージョン、プロパティ割り当ての意図。
- 順序付きのステージ結果:ステージ参照、入力アーティファクト、出力 USD または USDZ のパス、レポートのパス、ステータス、ブロッカーの理由、該当する場合は再実行の理由。
- Content Agents の準備状況とプロパティ割り当て結果。サービス URL、トークン、認証情報は秘匿してください。
- ゲート、要件 ID、選択した FET 修復参照、修復ループの試行回数、最終的な判定ごとに分類した適合性および検証結果。
- 最終アーティファクト:最終レポート対象の USD パス、リクエストされた場合はレンダープレビューのパス、パッケージ化を実行した場合はパッケージルートとパッケージ検証レポート、Markdown レポートのパス、存在する場合は JSON レポートのパス、推奨される次の作業。
詳細な参照先
現在のリクエストに必要な参照先のみを確認してください。
references/preflight/README.md:決定論的なローカルセットアップ、マニフェスト/環境変数の仕様、Linux および Windows 用ラッパー、Content Agents のデプロイをオプトアウトする方法、ガードレールの動作。references/workflow.md:入力、ソースのルーティング、詳細なワークフロー、検証ポリシー、出力レポートのフィールド、承認ポイント、次のステップ。references/commands.md:各ステージで使う、移植可能なスクリプトコマンドの具体例。references/assemble-package-source/README.md:2 ゾーンのパッケージソースの組み立て、正規ルート USD の命名、サムネイルの配置、自己完結型成果物のチェック。
公開レイアウトに関する注意事項
このプロダクトリポジトリのスキルの信頼できる情報源として skills/omniverse-cad-to-simready/ を使用してください。.agents/skills シンボリックリンクは、ローカルで agentskills.io 形式の検出に対応するためのエイリアスであり、.codex/skills と .claude/skills はエージェント固有の互換性エイリアスです。
agentskills.io ランタイムとの互換性を保つため、フロントマターでは version と tools をトップレベルに配置します。NVCARPS の検出用フィールドは metadata の下に配置します。
入れ子になった references/ ツリーは意図的な構成です。スクリプトを含む個別ステージの参照先、上流への引き継ぎに関する注記、ルーターのドキュメントをワークフロー配下に維持しながら、公開カタログスキルを 1 つに保ちます。リポジトリの公開モデルが変更されない限り、これらの参照先をフラット化したり、入れ子になった README の参照先を兄弟階層の SKILL.md ファイルに昇格させたりしないでください。
制限事項
- このワークフローは、既存の変換、プロパティ割り当て、適合性確認、検証、レンダリング、パッケージ化のスキルを調整するものであり、単一のモノリシックなランナーコマンドに置き換えるものではありません。
- ユーザーからベストエフォートでの続行を明示的に求められていない限り、デプロイ、変換、プロパティ割り当て、適合性確認の作成ゲートで最初に失敗した時点で停止してください。
- 上流の
simready-foundation-conform-fet-005-simulate-grasp-physicsが意味のある把持ベクトルを作成するには、目視でのレビュー、または明示的な把持点が必要です。
トラブルシューティング
| 症状 | 原因 | 対処方法 |
|---|---|---|
| 下流の参照で、cad-to-simready の事前チェックによるコンポーネントの準備ができていないと報告される | PHYSICAL_AI_REQUIRE_PREFLIGHT=1 が設定されていますが、マニフェストがないか、必要なランタイム/サービスが ready ではありません | preflight/scripts/preflight.py を実行し、生成された env ファイルを source するか、Content Agents が対象範囲外の場合に限り、--skip-content-agents でサービスのデプロイを明示的に無効にしてください。 |
ワークフローが GSP.001 で停止し、失敗が未分類として報告される | FET005 に視覚的な証拠または明示的な把持点が提供されていません | 視覚認識に対応したエージェントがアセットをレビューした後にのみ、上流の simready-foundation-conform-fet-005-simulate-grasp-physics を実行するか、明示的な把持点を渡してください。それ以外の場合、FET005 のステップは失敗ではなく blocked と報告してください。 |
| 意味のある USD アーティファクトがすでに存在するのに、検証が失敗する | ワークフローが最初の検証結果で停止しました | 残りの診断ゲートを続行し、結果を needs_rerun としてください。USD アーティファクトが生成された後は、検証結果で停止しないでください。 |
| プロパティ割り当ての段階で、サービスエンドポイントが見つからずに失敗する | 変換前に Content Agents サービスがデプロイされていません | 先に deploy-content-agents を実行してください。プロパティ割り当てを実行する場合、Content Agents の準備が整う前にアセットの検査、変換、検証、適合性確認、レンダリング、パッケージ化を開始しないでください。 |
単位またはプロファイルの修正後、Material Agent がレンダリングで 0 images が生成されたと報告する | Material Agent の実行前に適用された FET の修正(一般的には FET001 の単位正規化)によって、サービスが使用する USD のレイヤリング/シーン状態が変更されました | 変換後/最小限の妥当性を満たす USD から割り当てを再実行してください。Material Agent、次に Physics Agent の順に実行し、その後、最新のサービス作成済み USD に対して simready-conform-profile と FET の修正を実行してください。 |
Material Agent または Physics Agent のローカル最適化パスで Permission denied: '/app/.build-resources/scene_optimizer_core/python' が報告される | ローカル Docker Scene Optimizer バンドルの権限により、root 以外のサービスユーザーがパッケージ化された SO ランタイムを読み取れません | docker exec --user root content-material-agent-service chmod -R a+rX /app/.build-resources/scene_optimizer_core または docker exec --user root content-physics-agent-service chmod -R a+rX /app/.build-resources/scene_optimizer_core を実行して該当するローカルコンテナを修復し、同じ最適化エージェントコマンドを再実行してください。インスタンス化されたアセット/プロトタイプアセットの場合、オプティマイザーなしのフォールバックを根本原因とみなさないでください。 |
アセットに多数の prim があるのに RB.MB.001 が失敗する | プロファイルが数えるのは視覚 prim やコライダー prim ではなく、UsdPhysics.RigidBodyAPI の prim です。Physics Agent がルートに剛体を 1 つ作成する場合があります | 上流の simready-foundation-conform-fet-004-simulate-multi-body-physics に回してください。まず、該当する場合に Physics Agent が composed-topology optimization を使用したことを確認します。その後、有効なプロファイルで FET004/RB.MB.001 が報告され、ジオメトリを新たに作成する必要がない場合は、既存のコンポーネントコライダー/パーツルートを昇格させてください。 |
厳守事項
- ローカルのアップストリームのルート、コンバーターの実行ファイル、SimReady 検証ランタイム、OVRTX エンドポイント、Content Agents サービス URL には、プリフライトマニフェストを優先して使用してください。
PHYSICAL_AI_REQUIRE_PREFLIGHT=1が設定されている場合は、マニフェストを迂回してアップストリームを直接検出しないでください。 - プロパティ割り当てを実行する場合は、Content Agents の準備が整う前に、アセットの検査、コンバーターのプローブ、ローカルのアップストリームのビルド、変換、検証、適合性確認、レンダリング、パッケージ化を実行しないでください。
- ステージ固有のインストール済み参照スクリプトを直接使用してください。単一の
omniverse-cad-to-simreadyランナーコマンドを追加したり、呼び出したりしないでください。 - ソース変換では、
convert-to-usd参照に委任してください。CAD 形式やメッシュ形式に対して、別のコンバーターで代用しないでください。 - プロパティ割り当てでは、Content Agents の参照を個別のアトミックステップとして使用してください。マテリアルを最初に実行し、次に物理を実行し、テクスチャは要求された場合にのみ実行してください。
- プロパティ割り当てを実行する場合は、Content Agents より前に
simready-conform-profileや FET ヘルパーを実行しないでください。まず最小限の USD を検証し、次に変換済みの最小要件を満たす USD に対して Content Agents を実行してから、サービスが作成した最新の USD に FET の修復を適用してください。 - プロパティ割り当てを実行する場合は、Content Agents より前に
simready-validateや SimReady プロファイルの検証を実行しないでください。サービス呼び出し前に許可される検証ゲートは、基本的な USD の実行可能性チェックであるvalidate-usd-minimumのみです。 - ユーザーが明示的にベストエフォートでの続行を求めていない限り、デプロイ、変換、プロパティ割り当て、または適合性確認の作成ゲートで最初に失敗した時点で停止してください。
- 意味のある USD アーティファクトが作成された後は、検証結果を理由に停止しないでください。残りの診断ゲートを続行し、結果を
needs_rerunとしてください。 GSP.001プロファイルの失敗を、分類されない最終的な指摘事項として残さないでください。アップストリームのsimready-foundation-conform-fet-005-simulate-grasp-physicsに振り分けてください。現在のエージェントがレンダリングを検査できない場合、または明示的な把持点が利用できない場合は、視覚的証拠のパスまたは入力不足の理由とともに、FET005 の修復がブロックされていることを報告してください。- 各ステージのレポートをすべて保持し、各レポートの具体的な出力 USD パスを次のステージに渡してください。