markaren/threepp
A cross-platform C++20 3D library with Python bindings and the high-level API of three.js.
해결하는 문제
threepp는 three.js의 고수준의 접근하기 쉬운 API를 C++ 생태계로 가져오는 크로스 플랫폼 C++20 3D 라이브러리입니다. 웹 스타일 3D API의 유연성이 필요하면서도 C++의 성능과 하드웨어 액세스가 필요한 개발자를 위해 통합된 씬 그래프를 제공하며, 여기에는 고급 렌더링 백엔드와 로봇 공학 연구를 위한 통합 물리 및 센서 시뮬레이션이 포함됩니다.
작동 원리
이 라이브러리는 단일 씬 그래프를 사용하며, 휴대용 OpenGL 렌더러와 지연 렌더링 Vulkan 렌더러라는 두 가지 별도의 백엔드를 통해 렌더링할 수 있습니다. Vulkan 백엔드는 레이 트레이싱 그림자, 반사, 전역 조명과 같은 하이엔드 기능을 지원합니다. 시뮬레이션을 위해 강체 및 관절 시뮬레이션을 위한 PhysX와 연체/입자 지면 시뮬레이션을 위한 NVIDIA Warp를 통합했습니다. 또한 Python 바인딩을 제공하여 C++ 성능을 유지하면서 Python에서 3D 씬을 생성하고 시뮬레이션을 실행할 수 있습니다.
대상 사용자
주로 로봇 공학 및 AI 분야의 연구원, 학생, 프로토타이퍼를 위해 설계되었으며, 특히 디지털 트윈 구축, 인식 센서(LiDAR, 소나, 이벤트 카메라)용 합성 데이터 생성, 시뮬레이션 환경에서 RL(강화 학습) 에이전트를 훈련하는 사용자에게 적합합니다.
주요 특징
- three.js 호환성: 메시, 조명, 카메라, 로더(glTF, OBJ, STL 등)를 포함한 three.js API의 포괄적인 이식 구현.
- 고급 렌더링: 레이 트레이싱, DLSS/FSR 3.1 업스케일링, 볼륨 안개를 지원하는 Vulkan 백엔드.
- 로봇 공학 시뮬레이션: 로봇 관절(URDF/xacro)을 위한 PhysX 통합 및 합성 데이터를 위한 그라운드 트루스 라벨이 포함된 시뮬레이션 센서.
- Python 통합: 강화 학습을 위한 GPU 벡터화 PPO 스택을 포함한 완전한 Python 바인딩.
- Hardware-in-the-Loop: ArduPilot을 사용한 락스텝 비행 시뮬레이션 지원.
- Gaussian Splatting:
.ply및 SOG 스캔 렌더링 지원 및 스캔을 물리 연산용 표면으로 베이킹하는 기능.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트