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은 웜의 생물역학을 신경 모델(Neuron, c302 등)과 결합할 수 있게 해줍니다. 이는 동체지능 연구를 위한 구체적인 플랫폼이 되며, 가상 웜을 움직이는 동일한 코드가 실제 신경 시뮬레이션에 의해 제어될 수 있어, 운동, 근육 활성화, 유체-구조 상호작용에 대한 폐루프 실험을 가능하게 합니다.
핵심 기능
- 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전체 웜 바디 구성 로드 및 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*환경 변수를 설정해야 합니다. - 빌드 후, Python 헬퍼 모듈을 가져오기 위해 리포지토리 루트를
PYTHONPATH에 추가해야 합니다.
누가 사용할 수 있나요
- 웜의 운동을 연구하는 계산 생물학자.
- 소프트바디 시뮬레이션과 신경-기계 결합에 관심 있는 로봇 공학 연구자.
- 연구나 교육용으로 GPU 가속 SPH 유체/탄성 솔버가 필요한 누구나.
링크
- 메인 리포지토리: https://github.com/openworm/sibernetic
- NEURON 브리지: https://github.com/openworm/sibernetic_NEURON
- OpenWorm 프로젝트: http://www.openworm.org
모든 세부 정보는 리포지토리의 README에서 직접 가져왔으며, 외부 가정은 전혀 추가되지 않았습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트