openworm/sibernetic
This is a C++/OpenCL implementation of the PCISPH algorithm supplemented with a set of biomechanics related features applied to C. elegans locomotion
Sibernetic – C. elegans のためのバイオメカニカルシミュレータ
何であるか – Sibernetic は、流体、弾性物質、膜、収縮組織をモデル化する C++/OpenCL 物理エンジンです。このソフトウェアは、線虫 Caenorhabditis elegans の身体と神経活動を同時にシミュレートする目的で、OpenWorm プロジェクトのために開発されました。
なぜ重要か – GPU で加速された現実的なソフトボディダイナミクス環境を提供することで、Sibernetic は、worm のバイオメカニクスと神経モデル(NEURON、c302 など)を結合できるようにします。これにより、同じコードで仮想wormを動かすことが可能になり、運動、筋肉活性化、流体-構造相互作用に関する閉ループ実験が実現します。
主要機能
- PCISPH 流体ソルバー(予測-補正不圧縮平滑粒子流体動力学):不圧縮流体用。
- 弾性物質シミュレーション、液体透過防止膜、表面張力、境界処理。
- OpenCL を介した GPU サポート;CPU へのフォールバックも可能。
- 3D OpenGL 可視化とインタラクティブコントロール(一時停止、デモ切り替え、シーンの回転/スケーリング)。
- コマンドラインオプションでヘッドレス実行、ステップログ、Paraview 用の VTK ファイルエクスポート、または生バッファの保存が可能。
- NEURON シミュレータ(sibernetic_NEURON ブリッジ経由)および c302 NeuroML パイプラインとの統合により、実際の神経モデルからの筋肉信号入力を可能にします。
一般的なワークフロー
- ビルド – OpenCL、OpenGL、GLUT、GLEW、Python-numpy をインストール後、Linux では
make all、macOS ではmake all -f makefile.OSXを実行。 - 実行 – グラフィカルデモ用に
./Release/Siberneticを実行。以下のようなフラグを追加可能:-no_gグラフィックスなしで実行(バッチジョブに有用)-l_toシミュレーション状態をディスクに記録-export_vtk外部可視化用に VTK ファイルを出力-f worm完全なwormボディ設定を読み込み、Python筋肉信号モジュールを起動。device=gpuGPU 実行を強制。
- 神経と結合 –
-nrn <hoc_file>を追加して NEURON ブリッジを起動、または提供されたsibernetic_c302.pyスクリプトを使って c302 NeuroML モデルでシミュレーションを駆動。 - 解析 – 生成された
state_*.vtpファイルを Paraview で読み込み、または-l_fromを使って保存されたバッファを再再生。
インストールノート
- Linux ユーザーは OpenCL ドライバーが必要(AMD が最適;Intel は代替案)。README に必要な
apt-getパッケージが明記されています。 - macOS ユーザーは、OSX 特有の makefile を実行する前にいくつかの
PYTHON*環境変数を設定する必要があります。 - ビルド後、リポジトリのルートを
PYTHONPATHに追加して、Python ヘルパーモジュールをインポートできるようにします。
誰が使うべきか
- worm の運動を研究する計算生物学者。
- ソフトボディシミュレーションとニューロメカニカル結合に興味を持つロボティクス研究者。
- 研究や教育用に GPU で加速された SPH 流体/弾性ソルバーが必要な人。
リンク
- メインリポジトリ: https://github.com/openworm/sibernetic
- NEURON ブリッジ: https://github.com/openworm/sibernetic_NEURON
- OpenWorm プロジェクト: http://www.openworm.org
すべての詳細はリポジトリの README から直接取得しており、外部の仮定は一切追加されていません。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト