NVIDIA-Omniverse/usd-brep
USD BRep is a standalone C++ and Python library for NURBS-based boundary representation (BRep) solid modeling
NVIDIA‑Omniverse / usd‑brep – クイック概要
概要 – Pixar の Universal Scene Description (USD) フレームワーク内でソリッドモデリングジオメトリ(NURBS ベースの境界表現)を実装するための、独立した NVIDIA Omniverse リポジトリです。C++ および Python バインディングを提供しており、開発者は USD ファイル内の B‑Rep ジオメトリを直接作成、編集、クエリできます。
重要性 – USD は、現代の 3‑D パイプライン(VFX、ゲーム、シミュレーション、ロボティクス)における事実上の標準交換フォーマットです。本格的な B‑Rep サポートを追加することで、エンジニアは単なるポリゴンメッシュではなく、数学的に正確な CAD スタイルのソリッドを扱うことが可能になります。これは、高精度なシミュレーション、製造、およびメッシュへの変換に役立ちます。
主要コンポーネント
- C++ コアライブラリ (
smlib):B‑Rep データ構造とアルゴリズムを実装。 - Python バインディング (pybind11 経由):スクリプトや Omniverse 拡張機能に同じ機能を提供。
- USD スキーマプラグイン (
omniSolid):新しい USD prim タイプを登録し、B‑Rep データを USD ファイルに保存可能にする。 - GUI ツール (
tools/scripts/smlib_gui.py):B‑Rep アセットの対話的な検査とデバッグ用。 - ユーティリティ (
usd.heal_file):USD ファイル内の破損した B‑Rep 定義を修復可能。
実行方法
- Git + Git‑LFS をインストールします(大きなバイナリアセットは LFS ポインタとして保存されます)。
- Windows では C++ ツールセットと Windows SDK を備えた Visual Studio 2019/2022 が必要です。Linux では一般的な
build-essentialパッケージが必要です。macOS は Apple‑Silicon でのユニバーサルビルドがサポートされています。 - リポジトリのヘルパースクリプトを実行します:
./prebuild.sh # stage the USD schema plugin ./repo.sh build # compile the C++ library and Python extensions ./repo.sh test # run the test suite - オプションで
uv run … smlib_gui.pyを使用して Python GUI を起動し、B‑Rep モデルを探索します。
典型的な使用例
import usd_brep
# Repair a USD file that contains broken B‑Rep definitions
usd_brep.usd.heal_file("input.usdc", "input_healed.usdc")
ステータス – このリポジトリは NVIDIA によって保守されており (2020‑2026)、Apache 2.0 ライセンス(コアコード)でリリースされています。ビルドスクリプトは MIT ライセンスです。現在コントリビューションは受け付けていませんが、問題やバグ報告は歓迎します。
すべての詳細はリポジトリの README から直接引用しており、追加機能は推測していません。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト