The NeuroMechFly Model#

NeuroMechFly is a morphologically realistic neuromechanical model of the adult fruit fly Drosophila melanogaster based on a micro-CT scan of the animal. It was originally described in our NeuroMechFly paper and updated in our NeuroMechFly 2.0 paper. Please refer to these publications for more details.


Figure from the NeuroMechFly paper (Lobato-Rios et al, Nature Methods 2022): a, An adult female fly encased in resin for X-ray microtomography. b, Cross-section of the resulting X-ray scan. Cuticle, muscles, nervous tissues and internal organs are visible. c, Thresholded data separating the foreground (white) from the background (black). d, 3D polygon mesh of the exoskeleton and wings. e, Articulated body parts after separation from one another. f, Body parts after reassembly into a natural resting pose and overlaid with a rigged skeleton in dark red. g, Fly model after the addition of texture.#

Body Parts#

The biomechanical model consists of a set of rigid body parts. The body parts relevant to locomotion are shown below:

Fly anatomy

Source: Chyb, S., & Gompel, N. (2013). Atlas of Drosophila Morphology. doi:10.1016/c2009-0-61936-x#

A “joint” links two body parts (see Joint Links). Note that in the physics simulation, a “joint” refers to a single degree of freedom (DoF). Therefore, if a (biological) joint has multiple DoFs (such as the thorax-coxa joint), the (biological) joint is implemented as multiple joint links. As a result, the same (biological) body segment is simulated with multiple body segments to create “virtual” links between different DoFs on the same joint. Any unlabelled link is a pitch DoF. Any link with a suffix of _roll is a roll DoF. Any link with a suffix of _yaw is a yaw DoF.

The following is a complete list of the body parts defined in the model (subject to update to enable more refined articulation or contact measurements). In general, L and R indicate the left and right side. F, M, H indicate the fore-, mid-, and hindlegs. An indicate the n-th segement of the abdomen. For example, RHFemur means the femur of the right hindleg; LFTarsus1 means the first tarsus link of the left foreleg, and A1A2 means the fused first and second segments of the abdomen.

['Thorax', 'A1A2', 'A3', 'A4', 'A5', 'A6', 'Head_roll', 'Head_yaw',
 'Head', 'LEye', 'LPedicel_roll', 'LPedicel_yaw', 'LPedicel',
 'LFuniculus_roll', 'LFuniculus_yaw', 'LFuniculus', 'LArista_roll',
 'LArista_yaw', 'LArista', 'REye', 'Rostrum', 'Haustellum',
 'RPedicel_roll', 'RPedicel_yaw', 'RPedicel', 'RFuniculus_roll',
 'RFuniculus_yaw', 'RFuniculus', 'RArista_roll', 'RArista_yaw',
 'RArista', 'LFCoxa_roll', 'LFCoxa_yaw', 'LFCoxa', 'LFFemur',
 'LFFemur_roll', 'LFTibia', 'LFTarsus1', 'LFTarsus2', 'LFTarsus3',
 'LFTarsus4', 'LFTarsus5', 'LHaltere_roll', 'LHaltere_yaw',
 'LHaltere', 'LHCoxa_roll', 'LHCoxa_yaw', 'LHCoxa', 'LHFemur',
 'LHFemur_roll', 'LHTibia', 'LHTarsus1', 'LHTarsus2', 'LHTarsus3',
 'LHTarsus4', 'LHTarsus5', 'LMCoxa_roll', 'LMCoxa_yaw', 'LMCoxa',
 'LMFemur', 'LMFemur_roll', 'LMTibia', 'LMTarsus1', 'LMTarsus2',
 'LMTarsus3', 'LMTarsus4', 'LMTarsus5', 'LWing_roll', 'LWing_yaw',
 'LWing', 'RFCoxa_roll', 'RFCoxa_yaw', 'RFCoxa', 'RFFemur',
 'RFFemur_roll', 'RFTibia', 'RFTarsus1', 'RFTarsus2', 'RFTarsus3',
 'RFTarsus4', 'RFTarsus5', 'RHaltere_roll', 'RHaltere_yaw',
 'RHaltere', 'RHCoxa_roll', 'RHCoxa_yaw', 'RHCoxa', 'RHFemur',
 'RHFemur_roll', 'RHTibia', 'RHTarsus1', 'RHTarsus2', 'RHTarsus3',
 'RHTarsus4', 'RHTarsus5', 'RMCoxa_roll', 'RMCoxa_yaw', 'RMCoxa',
 'RMFemur', 'RMFemur_roll', 'RMTibia', 'RMTarsus1', 'RMTarsus2',
 'RMTarsus3', 'RMTarsus4', 'RMTarsus5', 'RWing_roll', 'RWing_yaw',


  • Lobato-Rios, V., Ramalingasetty, S. T., Özdil, P. G., Arreguit, J., Ijspeert, A. J., & Ramdya, P. (2022). NeuroMechFly, a neuromechanical model of adult Drosophila melanogaster. Nature Methods, 19(5), 620-627.

  • Wang-Chen, S., Stimpfling, V. A., Özdil, P. G., Genoud, L., Hurtak, F., & Ramdya, P. (2023). NeuroMechFly 2.0, a framework for simulating embodied sensorimotor control in adult Drosophila. Preprint on bioRxiv.