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 – Quick Overview
What it is – A standalone NVIDIA Omniverse repository that implements USD BRep, a library for solid‑modeling geometry (NURBS‑based boundary‑representation) inside Pixar’s Universal Scene Description (USD) framework. It provides C++ and Python bindings so developers can create, edit, and query B‑Rep geometry directly in USD files.
Why it matters – USD is the de‑facto interchange format for modern 3‑D pipelines (VFX, games, simulation, robotics). Adding true B‑Rep support lets engineers work with mathematically exact CAD‑style solids rather than just polygon meshes, which is useful for high‑precision simulation, manufacturing, and downstream conversion to meshes.
Key components
- C++ core library (
smlib) that implements the B‑Rep data structures and algorithms. - Python bindings (via pybind11) exposing the same functionality to scripts and Omniverse extensions.
- USD schema plugin (
omniSolid) that registers new USD prim types so B‑Rep data can be stored in a USD file. - GUI tool (
tools/scripts/smlib_gui.py) for interactive inspection and debugging of B‑Rep assets. - Utility (
usd.heal_file) that can repair corrupted B‑Rep definitions inside a USD file.
How to get it running
- Install Git + Git‑LFS (large binary assets are stored as LFS pointers).
- On Windows you need Visual Studio 2019/2022 with the C++ toolset and the Windows SDK; on Linux you need the usual
build-essentialpackages. macOS is supported on Apple‑Silicon via a universal build. - Run the repository’s helper scripts:
./prebuild.sh # stage the USD schema plugin ./repo.sh build # compile the C++ library and Python extensions ./repo.sh test # run the test suite - Optionally launch the Python GUI with
uv run … smlib_gui.pyto explore a B‑Rep model.
Typical use‑case snippet
import usd_brep
# Repair a USD file that contains broken B‑Rep definitions
usd_brep.usd.heal_file("input.usdc", "input_healed.usdc")
Status – The repo is maintained by NVIDIA (2020‑2026) and released under the Apache 2.0 license (core code). Build scripts are MIT‑licensed. Contributions are currently not accepted, but issues and bug reports are welcome.
All details are taken directly from the repository’s README; no extra features are inferred.
Related
- Project
- Project
- Project
- Project