Keypoint locations¶
deeperfly tracks a 38-point skeleton on the fly: five points per leg
(thorax–coxa, coxa–trochanter, femur–tibia, tibia–tarsus, claw) for each of the
six legs, plus one antenna and three abdominal markers per side. The names and
ordering are defined by the [skeleton] table of the packaged config (see
Conventions & glossary).
The viewer below shows where those keypoints sit on the body. The fly is the NeuroMechFly biomechanical model; the colored balls and connecting sticks are deeperfly's keypoints, colored by limb (left = blue, right = red, lightening front → hind). Drag to orbit, scroll to zoom, and move the joint sliders to see how each keypoint tracks the body as the pose changes. The sliders start at the model's resting pose; under Pose, Neutral returns to it and Zero sets every joint angle to 0. The View buttons snap the camera to the seven rig angles (RH–LH) plus hind, bottom and top.
Leg, claw and antenna keypoints sit exactly on the model
Each leg keypoint is the joint between two segments, which coincides with a NeuroMechFly body origin, so those points sit exactly on the model; the claw is the distal tip of the fifth tarsal segment, and each antenna sits at the pedicel–head joint. The abdomen markers are placed with per-point offsets that reproduce the original DeepFly3D annotation on the NeuroMechFly body.
Why there are two abdomen chains
For annotation consistency, the three abdomen points per side are labeled on the top of the abdomen's silhouette, at the first, third and fifth stripe (counting from the proximal end). Because that silhouette edge is annotated separately in the left and right views, the points triangulate slightly lateral to the body midline rather than onto it — and the left and right annotations resolve to different 3-D points. deeperfly therefore keeps the two chains separate; tick Combine abdomen in the viewer to merge each left/right pair into a single midline chain by taking its midpoint.
The model is rendered with MuJoCo compiled to WebAssembly,
running entirely in your browser — no data is uploaded. It is the
NeuroMechFly v2 model from
flygym (Apache-2.0); the bundled model and
keypoint mapping are generated by scripts/build_keypoint_viewer_assets.py.