Skip to content

NeuroMechanical Modeling - Sibernetic

Sibernetic implements DD003 (Body Physics Architecture) — the formal specification for SPH-based body mechanics.

What It Does

Simulates the C. elegans body as ~100K particles using Smoothed Particle Hydrodynamics (SPH):

Particle Type Count Role DD Reference
Liquid ~50K Surrounding fluid medium DD003
Elastic ~30K Body wall, muscles, cuticle DD003
Boundary ~20K Substrate surface DD003, DD022

Key algorithm: PCISPH (Predictive-Corrective Incompressible SPH) pressure solver, implemented in C++ with GPU acceleration (OpenCL).

Current Status (Phase 0)

Accepted and working:

  • 3D body model with fluid-structure interaction
  • Muscle activation produces emergent undulatory locomotion
  • Validated against Schafer lab kinematics (DD010 Tier 3: speed, wavelength, frequency within +/-15%)

To get a quick idea of what this looks like, check out the latest movie. In this movie you can see a simulated 3D C. elegans being activated in an environment. Its muscles are located around the outside of its body, and as they turn red, they are exerting forces on the body that cause the bending to happen.

Roadmap

Phase 1-2 (DD004): Mechanical cell identity

  • Per-particle cell IDs (map each SPH particle to one of 959 somatic cells)
  • Cell-type-specific elasticity (neurons vs. muscles vs. hypodermal)

Phase 2 (DD022): Environmental modeling

  • Substrate types (agar, liquid, soil)
  • Chemical/thermal gradients
  • Food particles and obstacles

Phase 4 (DD014.2): Mesh deformation

  • GPU skinning from SPH particles to Virtual Worm anatomical meshes
  • Photorealistic rendering

Previous accomplishments

Issues list

All issues related to the Sibernetic code base can be found on GitHub.

Associated Repositories

Repository Description Language
Smoothed-Particle-Hydrodynamics The Sibernetic code base — C++ implementation of SPH customised for OpenWorm C++
ConfigurationGenerator Generation of start scene configuration for PCISPH solver JavaScript
CyberElegans Circa 2010 neuromechanical prototype (archived) C++

Continue Reading