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 – 快速概览

它是什么 – 一个独立的 NVIDIA Omniverse 仓库,实现了 USD BRep,这是一个用于在 Pixar 的 Universal Scene Description (USD) 框架内进行实体建模几何(基于 NURBS 的边界表示)的库。它提供 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 上,您需要 Visual Studio 2019/2022 以及 C++ 工具集和 Windows SDK;在 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;未推断任何额外功能。

相关

  • 项目
  • 项目
  • 项目
  • 项目