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 定義を修復可能。

実行方法

  1. Git + Git‑LFS をインストールします(大きなバイナリアセットは LFS ポインタとして保存されます)。
  2. Windows では C++ ツールセットと Windows SDK を備えた Visual Studio 2019/2022 が必要です。Linux では一般的な build-essential パッケージが必要です。macOS は Apple‑Silicon でのユニバーサルビルドがサポートされています。
  3. リポジトリのヘルパースクリプトを実行します:
    ./prebuild.sh        # stage the USD schema plugin
    ./repo.sh build      # compile the C++ library and Python extensions
    ./repo.sh test       # run the test suite
    
  4. オプションで 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 から直接引用しており、追加機能は推測していません。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト