OpenCL経由でGPUとCPU上の流体シミュレーションを実行できる、リアルタイム描画とマルチGPU対応の格子ボルツマン法CFDソルバー。
InteractiveComputerGraphics/SPlisHSPlasH
Smoothed Particle Hydrodynamics(SPH)を用いた物理ベースの流体シミュレーションを行うオープンソースのC++ライブラリ。PythonバインディングとCLIを備えています。
- スター
- 1,957
- フォーク
- 343
- 未解決の Issue
- 17
- 最終コミット
- 10 日前
これは何?
SPlisHSPlasHは、Smoothed Particle Hydrodynamicsを使って流体をシミュレーションするライブラリです。メッシュを使わないラグランジュ法で、有限個の近傍粒子から各粒子の物理量を計算します。WCSPH、PCISPH、PBF、IISPH、DFSPH、PFなどの非圧縮性圧力ソルバーに加え、粘性、表面張力、渦度を扱う手法も実装しています。
通常の流体だけでなく、剛体と流体の連成、変形可能な固体との双方向連成、多相流、抗力にも対応しています。シーンはJSONで定義でき、シミュレーション結果はpartioまたはVTKファイルとして出力し、Maya、Blender、ParaViewで利用できます。WindowsとLinux向けに、コマンドラインシミュレーターの`splash`と、pipでインストールできるPythonバインディング(pysplishsplash)が用意されています。
CMakeでビルドでき、C++11対応コンパイラーが必要です。近傍探索はCPUまたはGPUで実行でき、利用可能な環境ではAVXによるベクトル化を使用します。
主な機能
- 01非圧縮性流体向けの圧力ソルバー:WCSPH、PCISPH、PBF、IISPH、DFSPH、PF
- 02CPUまたはGPUによる近傍探索を使った2D・3Dシミュレーション
- 03剛体と流体の連成、および流体と固体の双方向連成
- 04多相流シミュレーションと抗力の計算
- 05Pythonスクリプトに対応したJSONシーンインポーター
- 06粒子データをpartioおよびVTK形式で出力
ユースケース
- SPH圧力ソルバーや流体と固体の連成手法の研究
- Maya、Blender、ParaViewに読み込む流体アニメーションデータの生成
- pysplishsplashバインディングを使ったPythonからの流体シーンのスクリプト作成
クイックスタート
- 1
Windows または Linux 用のビルド済み Python パッケージをインストールする
pip install pysplishsplash - 2
コマンドラインシミュレーターを実行する
splash
使う前に知っておきたいこと
- ビルド済みの Python wheel は、Python 3.6~3.10 向けに Windows と Linux のみで提供されています。
- ソースからビルドするには、CMake と C++11 コンパイラーが必要です。
トピック
よくある質問
- SPlisHSPlasH とは?
- Smoothed Particle Hydrodynamics(SPH)を用いた物理ベースの流体シミュレーションを行うオープンソースのC++ライブラリ。PythonバインディングとCLIを備えています。 SPlisHSPlasHは、Smoothed Particle Hydrodynamicsを使って流体をシミュレーションするライブラリです。メッシュを使わないラグランジュ法で、有限個の近傍粒子から各粒子の物理量を計算します。WCSPH、PCISPH、PBF、IISPH、DFSPH、PFなどの非圧縮性圧力ソルバーに加え、粘性、表面張力、渦度を扱う手法も実装しています。
- SPlisHSPlasH は無料で使えますか?ライセンスは?
- SPlisHSPlasH は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- SPlisHSPlasH は今もメンテナンスされていますか?
- 活発にメンテナンス中。SPlisHSPlasH の最終コミットは 2026年10月28日 です。
- SPlisHSPlasH は何に使えますか?
- SPH圧力ソルバーや流体と固体の連成手法の研究 Maya、Blender、ParaViewに読み込む流体アニメーションデータの生成 pysplishsplashバインディングを使ったPythonからの流体シーンのスクリプト作成
- SPlisHSPlasH のインストール方法は?
- Windows または Linux 用のビルド済み Python パッケージをインストールする: pip install pysplishsplash コマンドラインシミュレーターを実行する: splash
- SPlisHSPlasH はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/InteractiveComputerGraphics/SPlisHSPlasH
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
関節ロボットやアニメーションキャラクターの運動学・動力学・接触シミュレーションに対応した、Pythonバインディング付きのC++17物理ライブラリ。
スレッドプールで多数のGym形式環境を並列実行する、強化学習向けのC++バッチ環境プール。
Franka Roboticsの研究用ロボットをリアルタイムで低レベル制御するC++クライアントライブラリ。pylibfrankaによるPythonバインディングも提供。
Blenderは、モデリング、リギング、アニメーション、シミュレーション、レンダリング、コンポジット、モーショントラッキング、動画編集に対応した無料のオープンソース3D制作ソフトウェアです。
通常のPython関数をJITコンパイルし、CPUまたはNVIDIA GPUで実行できるカーネルに変換する、シミュレーション、ロボティクス、ML向けのPythonフレームワークです。