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 流水线集成,允许从真实神经模型输入肌肉信号。

典型工作流程

  1. 构建 – 安装 OpenCL、OpenGL、GLUT、GLEW 和 Python-numpy 后,Linux 使用 make all,macOS 使用 make all -f makefile.OSX
  2. 运行 – 使用 ./Release/Sibernetic 启动图形化演示,或添加以下标志:
    • -no_g  无图形运行(适用于批处理任务)
    • -l_to  将模拟状态记录到磁盘
    • -export_vtk  导出 VTK 文件用于外部可视化
    • -f worm  加载完整蠕虫体配置并启动 Python 肌肉信号模块。
    • device=gpu  强制 GPU 执行。
  3. 与神经元耦合 – 添加 -nrn <hoc_file> 启动 NEURON 桥接,或使用提供的 sibernetic_c302.py 脚本,通过 c302 NeuroML 模型驱动模拟。
  4. 分析 – 在 Paraview 中加载生成的 state_*.vtp 文件,或使用 -l_from 重放保存的缓冲区。

安装说明

  • Linux 用户需要 OpenCL 驱动程序(AMD 最佳;Intel 为替代方案)。README 列出了所需的精确 apt-get 包。
  • macOS 用户在调用 OSX 特定的 makefile 前,必须设置几个 PYTHON* 环境变量。
  • 构建完成后,将仓库根目录添加到 PYTHONPATH,以便导入 Python 辅助模块。

谁可能使用它

  • 研究蠕虫运动的计算生物学家。
  • 对软体模拟和神经-机械耦合感兴趣的机器人研究人员。
  • 任何需要 GPU 加速 SPH 流体/弹性求解器用于研究或教学的人。

链接


所有细节均直接来自仓库的 README;未添加任何外部假设。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目