Androidでの軽量・高効率な動作を重視して設計された、Android、iOS、Linux、macOS、Windows、WebGL2対応のリアルタイム物理ベースレンダリングエンジン。
markaren/threepp
three.js風API、OpenGLおよびVulkanバックエンド、Pythonバインディング、物理・センサーシミュレーションを備えたクロスプラットフォームのC++20 3Dライブラリ。
- スター
- 1,212
- フォーク
- 156
- 未解決の Issue
- 3
- 最終コミット
- 昨日
これは何?
threeppはthree.jsの高水準APIに準拠したC++20 3Dライブラリです。three.jsに慣れた開発者なら、Mesh、Scene、ライト、カメラ、ローダーなどの同様のオブジェクトを使ってシーンコードを記述できます。レンダリングには移植性の高いOpenGLバックエンド、またはレイトレースによるシャドウ、反射、アンビエントオクルージョン、グローバルイルミネーションに対応した遅延レンダラーのVulkanバックエンドを利用でき、どちらでも同じシーンコードが動作します。
レンダリング以外にも、シーンエディター、PhysXベースのロボットおよび剛体シミュレーション、合成データ用の正解ラベルを出力できるLiDAR、深度、カメラ、IMUなどのセンサーシミュレーション、ArduPilotを使ったハードウェア・イン・ザ・ループ飛行に対応しています。PythonバインディングはPyPIで公開されており、レンダラー、NumPy配列形式のラベル、PhysXのアーティキュレーションを利用できます。
このプロジェクトは、本番用エンジンではなく、研究、プロトタイピング、教育向けであると説明しており、リリースごとにAPIが変更される場合があるとしています。Vulkanバックエンドにはレイトレーシング拡張機能が必要なためmacOSでは動作せず、代わりにOpenGLレンダラーを使用します。
主な機能
- 01メッシュ、ライト、カメラ、コントロール、アニメーション、ポストプロセッシングを扱うthree.js風API。
- 02glTF、OBJ、STL、COLLADA、SVG、URDF、FBX(オプトイン)、一般的な画像形式およびHDR形式に対応したローダー。
- 03レイトレースによるシャドウ、反射、AO、GIに対応したVulkan遅延レンダラー。
- 04LiDAR、深度・カラー各種カメラ、IMU、ジョイントエンコーダーなどのセンサーシミュレーション。
- 05剛体、アーティキュレーション、ソフトボディ、車両向けのPhysX統合。
- 06PyPIからインストールでき、ヘッドレスレンダリングにも対応したPythonバインディング。
ユースケース
- C++でセンサーモデルと物理演算を必要とするロボティクスや自律システムのシミュレーションを構築する。
- 認識モデルの学習向けに、ラベル付きの合成画像・深度データを生成する。
- three.js風のシーンコードをネイティブC++アプリケーションに移植する。
- 親しみやすい高水準APIを使って3Dグラフィックスの概念を教える。
クイックスタート
- 1
PyPIからPythonパッケージをインストールする
pip install threepp - 2
CMake presetsを使ってOpenGLバックエンドをビルドする
cmake --preset gl - 3
OpenGLビルドをコンパイルする
cmake --build --preset gl
使う前に知っておきたいこと
- Vulkanバックエンドにはレイトレーシング対応GPUが必要で、macOSでは動作しません。その場合はGLRendererを使用してください。
- このプロジェクトは研究、プロトタイピング、教育向けに開発されており、本番環境向けではありません。また、APIはリリースごとに変更されます。
- シミュレーションレイヤー(Vulkan、センサー、PhysX、エディター、Python)は最も頻繁に変更されます。エディターのVulkanビューポートはベストエフォートで提供されています。
収録されている特集
トピック
よくある質問
- threepp とは?
- three.js風API、OpenGLおよびVulkanバックエンド、Pythonバインディング、物理・センサーシミュレーションを備えたクロスプラットフォームのC++20 3Dライブラリ。 threeppはthree.jsの高水準APIに準拠したC++20 3Dライブラリです。three.jsに慣れた開発者なら、Mesh、Scene、ライト、カメラ、ローダーなどの同様のオブジェクトを使ってシーンコードを記述できます。レンダリングには移植性の高いOpenGLバックエンド、またはレイトレースによるシャドウ、反射、アンビエントオクルージョン、グローバルイルミネーションに対応した遅延レンダラーのVulkanバックエンドを利用でき、どちらでも同じシーンコードが動作します。
- threepp は無料で使えますか?ライセンスは?
- threepp は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- threepp は今もメンテナンスされていますか?
- 活発にメンテナンス中。threepp の最終コミットは 2026年11月6日 です。
- threepp は何に使えますか?
- C++でセンサーモデルと物理演算を必要とするロボティクスや自律システムのシミュレーションを構築する。 認識モデルの学習向けに、ラベル付きの合成画像・深度データを生成する。 three.js風のシーンコードをネイティブC++アプリケーションに移植する。 親しみやすい高水準APIを使って3Dグラフィックスの概念を教える。
- threepp のインストール方法は?
- PyPIからPythonパッケージをインストールする: pip install threepp CMake presetsを使ってOpenGLバックエンドをビルドする: cmake --preset gl OpenGLビルドをコンパイルする: cmake --build --preset gl
- threepp はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/markaren/threepp
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
デスクトップでリアルタイムにリアルな夜空を描画する、無料のオープンソース3Dプラネタリウムソフトウェア。
Three.jsやGSAPなどのWeb 3D・アニメーション技術をClaude Codeに教えるスキルとプラグイン集。
OGREは、Vulkan、Direct3D、OpenGLを抽象化し、C++やPythonでの3Dアプリケーション開発を支援するモジュール型C++レンダリングエンジンです。
公式仕様からOpenGL、Vulkan、EGL、GLX、WGLなどのC/C++ほか各言語向けバインディングを生成するローダージェネレーター。
宣言的DSLを中心に構成された、GLFW/SDL2のウィンドウバックエンドとOpenGL/Vulkan描画に対応するクロスプラットフォームC++17 UIフレームワーク。