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;未添加任何外部假设。
相关
- 项目
- 项目
- 项目
- 项目
- 项目