Repolode
markaren

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. 1

    PyPIからPythonパッケージをインストールする

    pip install threepp
  2. 2

    CMake presetsを使ってOpenGLバックエンドをビルドする

    cmake --preset gl
  3. 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 の数値は毎日更新されます。

関連プロジェクト