# Anatomy separation and completeness audit

## What was done

The original humane.fbx is untouched. A working copy, editable Blender scene, separated FBX, and independent nervous/muscular/skeletal GLBs are in the project's `editable` folder. Separation uses existing disconnected geometry. It does not cut arbitrary boundaries into organs or fabricate absent anatomy. Original labels and parent-group identifiers are retained in object metadata. Tiny surface fragments are retained with their nearest substantial component.

Clear bilateral components are assigned anatomical left/right by the supplied body's coordinate system (positive X is subject-left in the anterior view). Other components have neutral numbered identifiers. These are geometry identifiers, not validated anatomical names. Original source labels may themselves be inaccurate.

## Research-based separation priorities

| System | Source findings | Required next work for anatomical completeness |
|---|---|---|
| Skeleton | 26 source groups. Ribs contain 24 disconnected pieces; carpals 16; metatarsals 10; foot phalanges 28. Long bones and several girdle bones have clear left/right geometry. | Assign individual rib, carpal, tarsal, vertebral, and digit names through visual review. Do not equate loose-part counts with bone counts. Audit fused skull bones, hyoid, auditory ossicles, coccyx, and missing/merged pieces. |
| Skeleton anomalies | Metacarpal label contains 8 pieces, hand phalanges 30, cervical group 10, remaining vertebral column 37. Cranium and mandible each have 17 pieces. | A typical hand has 5 metacarpals and 14 phalanges per side; check whether thumb metacarpals are misgrouped under phalanges before declaring them absent. Separate teeth from skull/jaw counts. Cervical and vertebral fragments require identification before C/T/L numbering. `Malleolus` is a source label requiring review, not proof of a separate adult bone. |
| Muscles | 141 source groups contain 429 connected components before small-fragment consolidation. Some are bilateral muscles; others include multiple heads, slips, or distinct muscles. | Prioritize extensor pollicis longus/brevis, interossei, lumbricals, rhomboids, scalenes, erector spinae, transversospinales, and muscle heads. Component count alone cannot identify these. Audit deep layers, intercostals, extraocular/tongue/pelvic-floor muscles, and vastus intermedius, which has no dedicated source label. Diaphragm remains under Respiratory to preserve the existing grouping, despite being a skeletal muscle. |
| Nervous system | 5 retained source groups. Nerves contain 250 disconnected pieces. Cerebrum and `Medulla_Caudate_Nucleus` are each connected meshes. Cerebellum has 2 substantial pieces plus tiny artifacts. `Amygdala` has 4 pieces. | Review the CNS: cerebrum, diencephalon, cerebellum, brainstem (midbrain/pons/medulla), and spinal cord. Verify the unusual medulla/caudate and amygdala labels. Identify cranial nerves, spinal roots, plexuses, peripheral named nerves, and autonomic pathways by their course and connections. Unnamed disconnected tubes cannot safely be renamed as specific nerves from topology alone. |

## Scope of “complete”

The adult skeletal teaching inventory commonly uses 206 bones; teeth and cartilage are not additional bones in that count. The peripheral nervous teaching inventory includes 12 pairs of cranial nerves and 31 pairs of spinal nerves, with further branches and autonomic structures. A muscle atlas must distinguish whole muscles from their heads, tendons, and slips. No disconnected-component count proves completeness for any of these systems.

This release completes the non-destructive separation of existing loose geometry. It is **not an anatomically complete or clinically validated atlas**. Missing geometry requires additional modelling or a compatible, licensed, verified source. Naming uncertain components requires a visual anatomical review; it cannot be established reliably by an automatic split.

## Sources used for the audit

- [OpenStax: Divisions of the skeletal system](https://openstax.org/books/anatomy-and-physiology-2e/pages/7-1-divisions-of-the-skeletal-system)
- [OpenStax: Bones of the upper limb](https://openstax.org/books/anatomy-and-physiology-2e/pages/8-2-bones-of-the-upper-limb)
- [OpenStax: Axial muscles of the head, neck, and back](https://openstax.org/books/anatomy-and-physiology-2e/pages/11-3-axial-muscles-of-the-head-neck-and-back)
- [OpenStax: Muscles of the pectoral girdle and upper limbs](https://openstax.org/books/anatomy-and-physiology-2e/pages/11-5-muscles-of-the-pectoral-girdle-and-upper-limbs)
- [OpenStax: Lower-limb muscles](https://openstax.org/books/anatomy-and-physiology/pages/11-6-appendicular-muscles-of-the-pelvic-girdle-and-lower-limbs)
- [OpenStax: The peripheral nervous system](https://openstax.org/books/anatomy-and-physiology-2e/pages/13-4-the-peripheral-nervous-system)
- [OpenStax: Cranial and spinal nerves](https://openstax.org/books/introduction-behavioral-neuroscience/pages/1-5-the-peripheral-nervous-system-pns)

These references guide the inventory and review priorities. They do not validate the supplied model's geometry or its original labels.

## Naming pass (v2, September 2026)

Every mesh now has a display name in `names.json` with an identity status:

| Status | Count | Meaning |
|---|---|---|
| Source label | 285 | Name from the original model group (spelling corrected). |
| Positional | 317 | Named from its position relative to neighbouring bones (vertebrae C1–L5 and discs, ribs 1–12, carpals, metacarpals, phalanges, metatarsals, tarsals, teeth by FDI number). Verify visually. |
| Regional estimate | 334 | Named by body region only (most nerve segments, multi-part muscles). |

Notable findings: vertebral groups alternate vertebra and disc; the "Malleolus" source label is the talus; the thumb metacarpal sits in the hand-phalanges group; the model has no cervical nerve roots, occipital nerves, sympathetic chain or dorsal root ganglia.

Review workflow: open `names-review.csv`, fill `reviewer_correct_name` where wrong, and send it back to regenerate `names.json`.

## Trigger point layer (v3, October 2026)

66 myofascial referral patterns are defined in `trp.js` (generated by `tools/build_trp.py`).

How positions are set:
- Source muscle: the model's own mesh (or a boxed portion of it, such as the upper trapezius).
- Numbered areas: nearest surface vertex of that mesh to a described location, so each point sits on the muscle.
- Pain zones: whole or boxed muscle/bone meshes, or ellipsoids placed on landmarks measured from the bones and then snapped to the outermost visible surface by ray casting.
- Shading is computed per pixel in the fragment shader, so zones stay smooth on low-polygon muscles.

Limits found while building it:
- The model has no skin. Zones are drawn on the outermost muscle or bone. The groin shows deep hip flexors because nothing covers them.
- Absent meshes, so no pattern yet: medial and lateral pterygoid, supinator, sternalis, subclavius, scalenus medius, vastus intermedius, intercostals, pelvic floor, gemelli.
- Present but not yet mapped: adductor magnus, gracilis, pectineus, sartorius, longus colli, facial muscles, diaphragm.
- The mesh labelled Auricularis covers the temple like a fascia sheet, so temporalis is drawn showing through it.
- Rectus abdominis lies under the external oblique sheet and is drawn showing through it.
- Triceps heads, interossei and lumbricals are still unnamed parts.
