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 物理引擎,用於模擬流體、彈性物質、膜與收縮組織。此軟體為 OpenWorm 專案所開發,旨在模擬線蟲 Caenorhabditis elegans 的身體及其神經活動。
為何重要 – 透過提供一個真實、GPU 加速的軟體動力學環境,Sibernetic 讓研究人員能將蠕蟲的生物力學與神經模型(NEURON、c302 等)結合。這使其成為具身智能研究的具體平台:驅動虛擬蠕蟲運動的同一段程式碼,可由真實神經模擬驅動,進而實現對運動、肌肉活化與流體-結構交互作用的閉迴路實驗。
核心功能
- PCISPH 流體求解器(預測-校正不可壓縮光滑粒子流體動力學)用於不可壓縮液體。
- 弹性物質模擬、液體不可穿透膜、表面張力與邊界處理。
- 透過 OpenCL 支援 GPU;可回退至 CPU。
- 3D OpenGL 可視化,支援互動控制(暫停、切換示範、旋轉/縮放場景)。
- 命令列選項支援無頭執行、記錄步驟、匯出 VTK 檔案供 Paraview 使用,或儲存原始緩衝區。
- 與 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載入完整蠕蟲身體設定並啟動 Python 肌肉訊號模組。device=gpu強制 GPU 執行。
- 與神經元耦合 – 加入
-nrn <hoc_file>啟動 NEURON 橋接,或使用提供的sibernetic_c302.py指令碼,以 c302 NeuroML 模型驅動模擬。 - 分析 – 在 Paraview 中載入產生的
state_*.vtp檔案,或使用-l_from重播儲存的緩衝區。
安裝注意事項
- Linux 使用者需安裝 OpenCL 驅動程式(AMD 最佳;Intel 為替代方案)。README 列出所需的精確
apt-get套件。 - macOS 使用者在執行 OSX 專用 makefile 前,必須設定幾個
PYTHON*環境變數。 - 建置完成後,將倉儲根目錄加入
PYTHONPATH,以便匯入 Python 輔助模組。
誰可能使用它
- 研究蠕蟲運動的計算生物學家。
- 對軟體模擬與神經-機械耦合感興趣的機器人研究人員。
- 任何需要 GPU 加速 SPH 流體/彈性求解器用於研究或教學的人。
連結
- 主倉儲:https://github.com/openworm/sibernetic
- NEURON 橋接:https://github.com/openworm/sibernetic_NEURON
- OpenWorm 專案:http://www.openworm.org
所有細節均直接取自倉儲的 README;未添加任何外部假設。
相關
- 專案
- 專案
- 專案
- 專案
- 專案