From 5227f4507b4ab1e7869dd7eec9def05a0bad5ee8 Mon Sep 17 00:00:00 2001 From: Melih Colpan Date: Thu, 8 Oct 2026 04:56:03 +0300 Subject: [PATCH 1/4] Redraw the front sub-groups from their parent muscles The front sub-groups were placeholder ovals and dots placed over the parent muscle: two ovals inside each pectoral, a small circle on the shoulder, dots on the ribs and hips, and ovals on the thighs. Each one is now cut from its parent's own artwork: - upperChest / lowerChest: the pectoral split at about 42 % of its height, with a thin seam between the two parts. - frontDeltoid: the part of the deltoid next to the chest. On the male body the single deltoid shape is split so that part holds about 45 % of its area; the female artwork already separates the heads, so its inner head is used. - upperAbs / lowerAbs: the abdominal blocks above and below the middle of the abs column, using the existing block shapes. - serratus: the small finger-like slips in the upper half of the obliques. - hipFlexors: the top fifth of the main quadriceps shape (the rectus femoris origin). - innerQuad / outerQuad: the innermost and outermost quadriceps pieces (vastus medialis and vastus lateralis). Sub-groups are only drawn with .showSubGroups(), so the default rendering is unchanged; the existing snapshots still match. - New test: every sub-group lies inside its parent's bounds on all views. - New snapshots of the front sub-groups for both bodies. - New README screenshot front_subgroups next to back_regions. --- README.md | 7 ++- Screenshots/front_subgroups.png | Bin 0 -> 91706 bytes Sources/MuscleMap/Data/FemaleFrontPaths.swift | 52 ++++++++++------- Sources/MuscleMap/Data/MaleFrontPaths.swift | 54 +++++++++++------- Tests/MuscleMapTests/SnapshotTests.swift | 17 ++++++ Tests/MuscleMapTests/SubGroupTests.swift | 24 ++++++++ .../__Snapshots__/female_front_subgroups.png | Bin 0 -> 26944 bytes .../__Snapshots__/male_front_subgroups.png | Bin 0 -> 26088 bytes .../Sources/ScreenshotGenerator/main.swift | 13 +++++ 9 files changed, 122 insertions(+), 45 deletions(-) create mode 100644 Screenshots/front_subgroups.png create mode 100644 Tests/MuscleMapTests/__Snapshots__/female_front_subgroups.png create mode 100644 Tests/MuscleMapTests/__Snapshots__/male_front_subgroups.png diff --git a/README.md b/README.md index 5c3a6ae..586e219 100644 --- a/README.md +++ b/README.md @@ -411,7 +411,12 @@ Button("Redo") { if let state = history.redo() { selectedMuscles = state } } ### Muscle Sub-Groups -Sub-groups provide finer control over muscle regions. They inherit the parent muscle's highlight when no specific highlight is set, and take priority in hit testing. +

+ Front Sub-Groups + Back Sub-Groups +

+ +Sub-groups provide finer control over muscle regions. Each one is cut from its parent muscle's artwork: the upper and lower chest, the front deltoid, the upper and lower abs, the serratus slips on the ribs, the top of the quadriceps (hip flexors) and the inner and outer quadriceps heads. They inherit the parent muscle's highlight when no specific highlight is set, and take priority in hit testing. **Always-visible sub-groups** (ankles, adductors, neck) are rendered by default but return their parent muscle on tap — so tapping the ankle area returns `.feet`, tapping the neck returns `.head`, etc. diff --git a/Screenshots/front_subgroups.png b/Screenshots/front_subgroups.png new file mode 100644 index 0000000000000000000000000000000000000000..563e455bb3abe93a7abd4392b64a48e6faad8c95 GIT binary patch literal 91706 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 G!T$s8M9(_ view: V, named name: String, file: StaticString = #filePath, line: UInt = #line) throws { diff --git a/Tests/MuscleMapTests/SubGroupTests.swift b/Tests/MuscleMapTests/SubGroupTests.swift index a23ac6b..d24c156 100644 --- a/Tests/MuscleMapTests/SubGroupTests.swift +++ b/Tests/MuscleMapTests/SubGroupTests.swift @@ -393,3 +393,27 @@ final class SubGroupTests: XCTestCase { XCTAssertEqual(Muscle.allCases.count, 36) } } + +final class SubGroupShapeTests: XCTestCase { + + /// Every sub-group shape is cut from its parent's artwork, so it must lie inside the parent. + func testSubGroupsLieInsideTheirParent() { + for gender in BodyGender.allCases { + for side in BodySide.allCases { + let parts = BodyPathProvider.paths(gender: gender, side: side) + for part in parts { + guard let muscle = part.slug.muscle, let parent = muscle.parentGroup, + !muscle.isAlwaysVisibleSubGroup else { continue } + let parentRect = parts.filter { $0.slug.muscle == parent } + .flatMap(\.allPaths) + .map { PathBuilder.buildPath(from: $0, scale: 1, offsetX: 0, offsetY: 0).boundingRect } + .reduce(CGRect.null) { $0.union($1) } + for svg in part.allPaths { + let rect = PathBuilder.buildPath(from: svg, scale: 1, offsetX: 0, offsetY: 0).boundingRect + XCTAssertTrue(parentRect.insetBy(dx: -1, dy: -1).contains(rect), "\(muscle) outside \(parent) on \(gender) \(side)") + } + } + } + } + } +} diff --git a/Tests/MuscleMapTests/__Snapshots__/female_front_subgroups.png b/Tests/MuscleMapTests/__Snapshots__/female_front_subgroups.png new file mode 100644 index 0000000000000000000000000000000000000000..16a97a25d1c1e11afccbc49e302589d3def9a77d GIT binary patch literal 26944 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 BZG->- literal 0 HcmV?d00001 diff --git a/Tests/MuscleMapTests/__Snapshots__/male_front_subgroups.png b/Tests/MuscleMapTests/__Snapshots__/male_front_subgroups.png new file mode 100644 index 0000000000000000000000000000000000000000..3480d0d6d865a7453fbb5443b7b7ec5c44a845fa GIT binary patch literal 26088 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 literal 0 HcmV?d00001 diff --git a/Tools/ScreenshotGenerator/Sources/ScreenshotGenerator/main.swift b/Tools/ScreenshotGenerator/Sources/ScreenshotGenerator/main.swift index 3416a58..89997ef 100644 --- a/Tools/ScreenshotGenerator/Sources/ScreenshotGenerator/main.swift +++ b/Tools/ScreenshotGenerator/Sources/ScreenshotGenerator/main.swift @@ -90,6 +90,19 @@ let screenshots: [Screenshot] = [ MuscleIntensity(muscle: .forearm, intensity: 0.25), ], colorScale: .workoutStepped) }, + Screenshot("front_subgroups") { + BodyView(gender: .male, side: .front) + .showSubGroups() + .highlight(.upperChest, color: .red) + .highlight(.lowerChest, color: .orange) + .highlight(.frontDeltoid, color: .purple) + .highlight(.upperAbs, color: .yellow) + .highlight(.lowerAbs, color: .green) + .highlight(.serratus, color: .pink) + .highlight(.hipFlexors, color: .teal) + .highlight(.innerQuad, color: .blue) + .highlight(.outerQuad, color: .indigo) + }, Screenshot("back_regions") { BodyView(gender: .male, side: .back) .showSubGroups() From 8673646812faaa8df2dce7c6fa2955a597557788 Mon Sep 17 00:00:00 2001 From: Melih Colpan Date: Thu, 8 Oct 2026 04:57:38 +0300 Subject: [PATCH 2/4] Publish DocC documentation and bring it up to date - Add .spi.yml so the Swift Package Index builds and hosts the DocC documentation for the MuscleMap target. - New articles: - "Sub-Groups and Regions": showing sub-groups, always-visible sub-groups, the back regions and checking a mapping with isDrawable. - "Accessibility": what VoiceOver reads, per-side elements and the 11 localizations. - "Performance": the path cache, BodyView.preloadArtwork() and Swift 6 concurrency. - Heatmap guide: a color scale's own interpolation is used unless a non-linear one is set on the view. - Getting Started: the package URL pointed at another account and an old version; it now uses github.com/melihcolpan/MuscleMap.git, and the CocoaPods line was added. - Fix an ambiguous symbol link in the UIKit article. The documentation now builds without warnings. --- .spi.yml | 4 ++ .../MuscleMap/MuscleMap.docc/Accessibility.md | 19 +++++++ .../MuscleMap.docc/GettingStarted.md | 6 +- .../MuscleMap/MuscleMap.docc/HeatmapGuide.md | 2 + Sources/MuscleMap/MuscleMap.docc/MuscleMap.md | 6 ++ .../MuscleMap/MuscleMap.docc/Performance.md | 30 ++++++++++ .../MuscleMap.docc/SubGroupsAndRegions.md | 57 +++++++++++++++++++ .../MuscleMap.docc/UIKitIntegration.md | 2 +- 8 files changed, 123 insertions(+), 3 deletions(-) create mode 100644 .spi.yml create mode 100644 Sources/MuscleMap/MuscleMap.docc/Accessibility.md create mode 100644 Sources/MuscleMap/MuscleMap.docc/Performance.md create mode 100644 Sources/MuscleMap/MuscleMap.docc/SubGroupsAndRegions.md diff --git a/.spi.yml b/.spi.yml new file mode 100644 index 0000000..1ab3e8f --- /dev/null +++ b/.spi.yml @@ -0,0 +1,4 @@ +version: 1 +builder: + configs: + - documentation_targets: [MuscleMap] diff --git a/Sources/MuscleMap/MuscleMap.docc/Accessibility.md b/Sources/MuscleMap/MuscleMap.docc/Accessibility.md new file mode 100644 index 0000000..eef843e --- /dev/null +++ b/Sources/MuscleMap/MuscleMap.docc/Accessibility.md @@ -0,0 +1,19 @@ +# Accessibility + +Make the body map usable with VoiceOver. + +## Overview + +``BodyView`` exposes each visible muscle as an accessibility element. No setup is needed. + +Each element has: + +- **Label:** the localized muscle name. A muscle drawn on both sides gets one element per side, labeled for example "Biceps, Left" and "Biceps, Right". +- **Value:** "Selected" or "Not selected". +- **Hints and actions:** double-tap selects the muscle, and a "Long press for details" action calls ``BodyView/onMuscleLongPressed(duration:action:)``. + +Elements are ordered from top to bottom, and the two sides of a muscle are read one after the other. Activating an element calls ``BodyView/onMuscleSelected(_:)`` with the same muscle and ``MuscleSide`` that a touch on that spot would report. + +## Localization + +Muscle names, sides and accessibility strings are localized in 11 languages: Arabic, Chinese (Simplified), English, French, German, Japanese, Korean, Portuguese (Brazil), Russian, Spanish and Turkish. Use ``Muscle/displayName`` and ``MuscleSide/displayName`` to show the same names in your own UI. diff --git a/Sources/MuscleMap/MuscleMap.docc/GettingStarted.md b/Sources/MuscleMap/MuscleMap.docc/GettingStarted.md index 80b0d75..ad07fa7 100644 --- a/Sources/MuscleMap/MuscleMap.docc/GettingStarted.md +++ b/Sources/MuscleMap/MuscleMap.docc/GettingStarted.md @@ -8,18 +8,20 @@ MuscleMap is a pure SwiftUI package with no external dependencies. It supports i ## Adding MuscleMap to Your Project +With CocoaPods, add `pod 'MuscleMap', '~> 1.9.0'` to your `Podfile`. With Swift Package Manager: + Add MuscleMap as a Swift Package dependency in Xcode: 1. Open your project in Xcode. 2. Go to **File → Add Package Dependencies**. -3. Enter the repository URL. +3. Enter `https://github.com/melihcolpan/MuscleMap.git`. 4. Select the latest version and add it to your target. Or add it to your `Package.swift`: ```swift dependencies: [ - .package(url: "https://github.com/AcademyOfGames/MuscleMap", from: "1.5.0") + .package(url: "https://github.com/melihcolpan/MuscleMap.git", from: "1.9.0") ] ``` diff --git a/Sources/MuscleMap/MuscleMap.docc/HeatmapGuide.md b/Sources/MuscleMap/MuscleMap.docc/HeatmapGuide.md index 37ab36d..0f37385 100644 --- a/Sources/MuscleMap/MuscleMap.docc/HeatmapGuide.md +++ b/Sources/MuscleMap/MuscleMap.docc/HeatmapGuide.md @@ -59,6 +59,8 @@ Available interpolation modes: - ``ColorInterpolation/step(count:)`` — discrete color bands - ``ColorInterpolation/custom(_:)`` — provide your own curve function +A color scale can carry its own interpolation: ``HeatmapColorScale/workoutStepped`` is the workout scale with five steps, and ``HeatmapColorScale/thermalSmooth`` eases in and out. That interpolation is used by default. An interpolation set with ``BodyView/heatmapInterpolation(_:)`` or a ``HeatmapConfiguration`` takes precedence when it is not ``ColorInterpolation/linear``. + ## Gradient Fill Enable intra-muscle gradient fills where each muscle shows a gradient from low to high intensity: diff --git a/Sources/MuscleMap/MuscleMap.docc/MuscleMap.md b/Sources/MuscleMap/MuscleMap.docc/MuscleMap.md index 850f733..b521e9d 100644 --- a/Sources/MuscleMap/MuscleMap.docc/MuscleMap.md +++ b/Sources/MuscleMap/MuscleMap.docc/MuscleMap.md @@ -35,6 +35,7 @@ BodyView(gender: .male, side: .front) - ``MuscleSide`` - ``MuscleHighlight`` - ``MuscleFill`` +- ### Heatmaps @@ -60,3 +61,8 @@ BodyView(gender: .male, side: .front) - - ``MuscleMapView`` - ``HeatmapLegendUIView`` + +### Accessibility and Performance + +- +- diff --git a/Sources/MuscleMap/MuscleMap.docc/Performance.md b/Sources/MuscleMap/MuscleMap.docc/Performance.md new file mode 100644 index 0000000..e81d9a5 --- /dev/null +++ b/Sources/MuscleMap/MuscleMap.docc/Performance.md @@ -0,0 +1,30 @@ +# Performance + +Keep body views fast to appear and to redraw. + +## Overview + +The body artwork is a set of SVG paths. MuscleMap parses each path once, caches it for the life of the app, and only scales it for each view size. Redrawing a body, for example when a highlight changes, reuses those cached paths. + +## Preloading the Artwork + +Creating a ``BodyView`` starts parsing all four bodies in the background. To have the artwork ready before the first body appears, start it at launch with ``BodyView/preloadArtwork()``: + +```swift +@main +struct WorkoutApp: App { + init() { + BodyView.preloadArtwork() + } + + var body: some Scene { + WindowGroup { ContentView() } + } +} +``` + +Calling it more than once has no extra cost. + +## Swift Concurrency + +On a Swift 6 toolchain, the package builds in the Swift 6 language mode with complete concurrency checking. Views are main-actor isolated like any SwiftUI view; the shared path cache is safe to use from any thread. diff --git a/Sources/MuscleMap/MuscleMap.docc/SubGroupsAndRegions.md b/Sources/MuscleMap/MuscleMap.docc/SubGroupsAndRegions.md new file mode 100644 index 0000000..9d696d4 --- /dev/null +++ b/Sources/MuscleMap/MuscleMap.docc/SubGroupsAndRegions.md @@ -0,0 +1,57 @@ +# Sub-Groups and Regions + +Highlight parts of a muscle, and check which muscles a view can draw. + +## Overview + +Several muscles are divided into sub-groups, such as the upper and lower chest or the inner and outer quadriceps. Each sub-group is cut from its parent muscle's artwork, so it lines up exactly with the parent's outline. + +Sub-groups are hidden by default. Call ``BodyView/showSubGroups()`` to draw them and to make taps return the sub-group instead of its parent: + +```swift +BodyView(gender: .male, side: .front) + .showSubGroups() + .highlight(.upperChest, color: .red) + .highlight(.lowerChest, color: .orange) + .highlight(.innerQuad, color: .blue) +``` + +A sub-group without a highlight of its own shows its parent's highlight, so you can highlight a parent and emphasize one part of it: + +```swift +BodyView(gender: .male, side: .front) + .showSubGroups() + .highlight(.chest, color: .red, opacity: 0.4) + .highlight(.upperChest, color: .red) +``` + +Use ``Muscle/subGroups`` and ``Muscle/parentGroup`` to navigate the hierarchy. + +## Always-Visible Sub-Groups + +``Muscle/ankles``, ``Muscle/adductors`` and ``Muscle/neck`` are drawn even when sub-groups are hidden. In that mode a tap on them returns the parent muscle. See ``Muscle/isAlwaysVisibleSubGroup``. + +## Back Regions + +The back views have a few extra regions: + +- ``Muscle/upperTrapezius`` and ``Muscle/lowerTrapezius``: the trapezius above and below the rhomboids. On the front views, the visible trapezius is its upper part. +- ``Muscle/rearDeltoid``: the deltoid as seen from behind. +- ``Muscle/rhomboids``: inside the trapezius. They are painted only while highlighted or selected, so an unhighlighted body and a ``Muscle/trapezius`` highlight look the same as without them. +- ``Muscle/rotatorCuff``: the infraspinatus area above the shoulder blade. Without a highlight of its own, it shows the ``Muscle/upperBack`` highlight. + +With sub-groups hidden, a tap on the rhomboids or the rotator cuff returns ``Muscle/trapezius`` or ``Muscle/upperBack``. + +## Checking What a View Can Draw + +Every muscle is drawn in at least one view, but many only on the front or on the back. Check a muscle mapping with ``Muscle/isDrawable(gender:side:)``, for example in a unit test: + +```swift +func testEveryMappedMuscleIsVisible() { + for muscle in myBackDayMuscles { + XCTAssertTrue(muscle.isDrawable(gender: .male, side: .back), "\(muscle)") + } +} +``` + +The female back view has no ``Muscle/head`` path, because the hair covers the head completely. diff --git a/Sources/MuscleMap/MuscleMap.docc/UIKitIntegration.md b/Sources/MuscleMap/MuscleMap.docc/UIKitIntegration.md index af2a169..31eb566 100644 --- a/Sources/MuscleMap/MuscleMap.docc/UIKitIntegration.md +++ b/Sources/MuscleMap/MuscleMap.docc/UIKitIntegration.md @@ -34,7 +34,7 @@ class ViewController: UIViewController { ## Highlighting Muscles -Use the ``MuscleMapView/highlight(_:color:opacity:)`` method with UIKit colors: +Use the ``MuscleMapView/highlight(_:color:opacity:)-(Muscle,_,_)`` method with UIKit colors: ```swift muscleMap.highlight(.chest, color: .systemRed) From 6545d962cddb8638c59439f827e26e665c2af5cc Mon Sep 17 00:00:00 2001 From: Melih Colpan Date: Thu, 8 Oct 2026 04:58:14 +0300 Subject: [PATCH 3/4] Add Dependabot and a documentation check to CI - Dependabot checks the GitHub Actions used by the workflow once a week and groups their updates into one pull request. - The iOS job now builds the DocC documentation and fails when it has warnings, such as a link to a symbol that was renamed or removed. Verified by adding a broken link: the check reports it and fails. - README: mention the documentation build, Dependabot and the hosted API documentation. --- .github/dependabot.yml | 9 +++++++++ .github/workflows/ci.yml | 8 ++++++++ README.md | 4 +++- 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..fecd44d --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,9 @@ +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + schedule: + interval: weekly + groups: + actions: + patterns: ["*"] diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c6a8357..0ee4f80 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -43,6 +43,14 @@ jobs: run: | xcodebuild -project Example/MuscleMapDemoApp.xcodeproj -scheme MuscleMapDemoApp \ -destination 'generic/platform=iOS Simulator' build + - name: Build documentation + run: | + set -o pipefail + xcodebuild docbuild -scheme MuscleMap -destination 'generic/platform=iOS Simulator' | tee docbuild.log + if grep -E '\.md:[0-9]+:[0-9]+: warning' docbuild.log; then + echo "::error::The documentation has warnings" + exit 1 + fi podspec: name: CocoaPods lint diff --git a/README.md b/README.md index 586e219..ac4afdd 100644 --- a/README.md +++ b/README.md @@ -648,7 +648,9 @@ swift run --package-path Tools/ScreenshotGenerator ScreenshotGenerator Screensho # regenerate the README screenshots ``` -Every push and pull request runs the tests, an iOS build, the demo app build and `pod lib lint` on GitHub Actions. +Every push and pull request runs the tests, an iOS build, the demo app build, the documentation build and `pod lib lint` on GitHub Actions. Dependabot keeps the workflow's actions up to date. + +The API documentation is on the [Swift Package Index](https://swiftpackageindex.com/melihcolpan/MuscleMap/documentation/musclemap). ## License From d199d5a05701ba03dc204bcbe6136b521a1f4b29 Mon Sep 17 00:00:00 2001 From: Melih Colpan Date: Thu, 8 Oct 2026 04:58:14 +0300 Subject: [PATCH 4/4] Release v1.9.0 - Bump the podspec and the SPM / CocoaPods install snippets to 1.9.0. --- MuscleMap.podspec | 2 +- README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/MuscleMap.podspec b/MuscleMap.podspec index 8317994..86bf5ce 100644 --- a/MuscleMap.podspec +++ b/MuscleMap.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "MuscleMap" - s.version = "1.8.0" + s.version = "1.9.0" s.summary = "A SwiftUI SDK for rendering interactive human body muscle maps." s.description = <<-DESC MuscleMap provides a declarative way to display a human body and visualize diff --git a/README.md b/README.md index ac4afdd..be5dfca 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Add to your `Package.swift`: ```swift dependencies: [ - .package(url: "https://github.com/melihcolpan/MuscleMap.git", from: "1.8.0") + .package(url: "https://github.com/melihcolpan/MuscleMap.git", from: "1.9.0") ] ``` @@ -56,7 +56,7 @@ Or in Xcode: **File > Add Package Dependencies** and paste the repository URL. Add to your `Podfile`: ```ruby -pod 'MuscleMap', '~> 1.8.0' +pod 'MuscleMap', '~> 1.9.0' ``` Then run `pod install`.