#Artwork
#Provenance
The body geometry derives from react-native-body-highlighter (MIT, © 2022 ELABBASSI Hicham).
Its slug list matched Gravn's 23 Supported muscle codes one for one - including the quirky ones
(hair, hands, feet, knees, tibialis) and the head/ankles female-front-only behaviour.
That is not a coincidence: Gravn's backend constants were originally derived from that library, so
adopting the artwork closed a loop that had been open for months.
Only the path data is upstream. The renderer, colour engine, catalogue, resolver and conversion pipeline here are original, and no upstream code runs at runtime - the upstream component was a two-colour intensity toy with no interpolation, which is precisely the part that needed replacing.
The licence obligation is to keep the copyright notice. It lives in
NOTICE at the
package root. Nothing is required in your app's UI.
The proportions and flat style are upstream's, not Gravn's. bodyFill, baseColor and
outlineColor restyle it a long way, but a body that looks designed by you is still a
commission.
#The conversion pipeline
Upstream ships four TypeScript modules exporting BodyPart[]. The converter re-keys their
lowercase slugs onto Gravn muscle codes and folds in the silhouette outline, which upstream keeps
inside its React wrapper components rather than alongside the data.
bun run convert-assetsReads vendor/react-native-body-highlighter/* → writes src/data/<sex>.<view>.json.
src/data/*.json is generated. Never hand-edit it. The converter validates that all 23 drawn
regions survive the round trip and fails loudly if any is dropped, so a silently missing muscle
cannot reach the package.
#Giving a muscle its own path
Adding a muscle is not adding a path. It is subdividing an existing one.
UPB today is a single region covering traps, rhomboids, teres and lats. Giving the lats their own
path means redrawing UPB and LAT as two adjacent, non-overlapping shapes. That is vector
work in Illustrator or Figma, roughly one to three hours per region, times two bodies.
The workflow:
- Open the relevant file under
vendor/and edit the shapes, keeping each region'sslug. - Re-export, keeping the same coordinate space - the
viewBoxis carried through from the data. - Run
bun run convert-assets. - In
src/muscles/metadata.ts, flip the code'sresolutionto"drawn"and delete itsaliasOfandaliasNote. - Add its slug to
SLUG_TO_MUSCLE_CODEin the converter.
No consumer changes. Anyone already passing LAT starts getting a dedicated shape.
#The backlog
Of the 26 Extended codes, only about eight are worth drawing. In priority order:
- Three-way deltoid split -
ANTDEL/LATDEL/POSTDEL. Highest value by a wide margin: delt-specific programming is common, the heads are visually distinct, and the front and back views can each show two of the three. - Lats out of the upper back -
LATfirst, thenTERandINFfrom the same subdivision. - Calf split -
GAST/SOL. Clean, easy, clearly readable on the back view. - Erector spinae -
ERECT, extending above the drawn lower-back region.
Everything else aliases indefinitely without anyone noticing. RAD and PRN are superficial but
the forearm region is a few dozen units wide - a split there buys nothing on screen.
#What can never be drawn
Five codes have no surface projection. They lie beneath other muscles, and no anatomical diagram renders them, because there is nothing at the surface to render:
| Code | Muscle | Why |
|---|---|---|
SUP |
Supinator | Beneath the forearm extensors. |
SUB |
Subscapularis | On the anterior face of the scapula, behind the shoulder blade. |
SUPR |
Supraspinatus | In the supraspinous fossa, beneath the trapezius. |
TVA |
Transverse Abdominis | The deepest abdominal layer. |
PSO |
Psoas Major | Deep through the pelvis from the lumbar spine. |
They are marked resolution: "deep" and stay aliased permanently. They still work - logging core
activation shades the abdominals - they simply never get geometry of their own.
#What needs a view that does not exist
Three codes are lateral muscles, and there is no side diagram:
ITB- Iliotibial Band, down the outer thigh.PER- Peroneals, down the outer lower leg.LATDEL- Lateral Deltoid. This one is the exception: it reads well enough on both front and back views to be included in the three-way deltoid split without needing a side view at all.
A genuine side view would be from-scratch artwork - upstream has none.