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ライブラリです。Webスタイルの3D APIの柔軟性を必要としながらも、C++のパフォーマンスとハードウェアアクセスを求める開発者のために、統一されたシーングラフを提供します。これには、高度なレンダリングバックエンドや、ロボット工学研究のための統合された物理・センサーシミュレーションが含まれます。
仕組み
このライブラリは単一のシーングラフを使用し、ポータブルなOpenGLレンダラーと遅延レンダリングを行うVulkanレンダラーという2つの異なるバックエンドでレンダリング可能です。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スキャンのレンダリングをサポートし、スキャンを物理演算用のサーフェスとしてベイクする機能。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト