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에서 직접 가져왔으며, 추가 기능은 추론하지 않았습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트