openGym人体肌肉地图实战指南:按肌群找动作、按器械过滤,3步搞定
【免费下载链接】openGymSelf-hosted gym & body-weight tracker — plan routines, log workouts (supersets, warm-ups, cardio), see which muscles are trained, fatigued or detrained, import from FitNotes/Strong/Hevy, passkey login. Your data, your server.项目地址: https://gitcode.com/GitHub_Trending/op/openGym
openGym 是一款自托管的健身与体重追踪应用,内置人体肌肉地图(muscle map):点一下身体上任意一块肌肉,就能立刻看到所有训练该肌群的动作;再叠加器械过滤,只显示你健身房里真正有的器材能做的动作。本文带你从零基础走通这条"按肌群找动作 → 按器械过滤"的完整路径。
一、进入肌肉探索页:动作库 → "By muscle"
肌肉地图的入口在动作库(Library)页面右上角:
- 打开 App,切换到动作库标签页,这里收录了 1,324 个带动画演示的免费动作;
- 点击右上角的"By muscle"(按肌群)按钮;
- 进入肌肉探索页,标题为 "Explore muscles",提示语是"Choose a muscle to see exercises that train it"(选一块肌肉,看训练它的动作)。
对应源码入口:
- 入口按钮:frontend/src/views/Library.jsx
- 肌肉探索页:frontend/src/views/Muscles.jsx
- 核心交互组件:frontend/src/components/MuscleExplorer.jsx
二、按肌群找动作:点一块肌肉,出一整排动作
进入页面后,你会看到一张正面 + 背面的人体轮廓图,以及一排肌群标签(Traps、Shoulders、Chest、Quads、Hamstrings……)。
两种选法,效果相同:
- 👆 直接点击人体图上的一块肌肉(SVG 区域可点、可用键盘 Tab + Enter 操作);
- 🏷️ 或点下方的肌群标签,标签后面的数字是该肌群当前的动作数量。
选中后列表区会发生变化:
| 列表元素 | 含义 |
|---|---|
| Primary target | 该动作的主目标肌群就是当前所选肌肉 |
| Also trains | 该肌肉只是辅助/次要参与的肌群 |
| 蓝色数字标签 | 你在这项动作上的最佳重量记录 |
| ★ 星标 | 收藏的动作自动浮到列表顶部 |
| Plan按钮 | 一键把动作加进某天的训练计划,无需回退 |
顶部还保留了搜索框 + 身体部位(body part)筛选条:先按肌群圈定范围,再输入"press"或点"chest"进一步缩小,搜索框右侧会实时显示剩余数量,不会翻半天找不到。
三、按器械过滤:只显示你有的器械能做的动作
选完肌群后,列表上方会出现一行器械(equipment)筛选条:
- 默认选中"Any equipment"(任意器械);
- 点一下Dumbbell、Barbell、Machine、Cable、Body weight…… 只保留该器械的动作;
- 筛选是可组合的:肌群 + 部位 + 器械 + 搜索词层层叠加,任何一步把结果筛没了,界面会自动放宽器械条件,避免"死胡同"。
更彻底的做法是设置器械档案(equipment profile):
- 打开Settings(设置),找到Filter by equipment开关;
- 点Add equipment profile,起个名字(比如"公司健身房"),勾选那里有的器械类型;
- 之后动作库和肌肉地图默认只显示该档案内的动作,顶部横幅会提示 "Showing what you have in 公司健身房",点"Show all equipment"可临时查看全部。
两条值得注意的规则(见 frontend/src/lib/equipment.js):
- 自重(body weight)动作永不因档案被过滤——家里没哑铃也永远能看到自重动作;
- 该功能是纯附加过滤,档案没建好时不会隐藏你整个动作库。
四、肌肉地图背后:数据是怎么算的
肌肉地图不是简单标签匹配。在 frontend/src/lib/muscles.js 中:
- 人体被划分为18 块可绘制肌群(trapezius 到 tibialis,从头到脚);
- 动作库里的肌肉命名五花八门(delts / shoulders / deltoids、quads / quadriceps、lats / upper-back……),代码里的ALIAS 别名表把它们归一化到同一块肌肉,画不出来的部位(手、脚踝等)直接丢弃而不是硬猜;
- 主目标肌群权重 1.0,次要肌群只计 0.4,避免"几乎不练到"的动作被当成重点动作。
同一个BodyMap组件还被复用在统计(Stats)页,提供三种模式:训练量去了哪、哪些肌肉还在恢复、哪些肌群已长期不练——按肌群找动作和回顾训练结构,用的是同一张地图。
五、快速上手清单
- ✅ 动作库 →By muscle进入肌肉地图;
- ✅ 点肌肉(或标签)→ 看Primary / Also trains列表,用Plan直接入计划;
- ✅ Settings 建一个器械档案,过滤掉"看得到、练不了"的动作;
- ✅ 进阶:Stats 里看同一张地图的三模式训练结构视图,补齐弱项肌群。
更多自托管部署与数据导入(FitNotes / Strong / Hevy)细节,见 docs/SELF_HOSTING.md 与 docs/DATA_IMPORTS.md。你的数据、你的服务器——肌肉地图练的是肌肉,也是对自己训练结构的掌控。
【免费下载链接】openGymSelf-hosted gym & body-weight tracker — plan routines, log workouts (supersets, warm-ups, cardio), see which muscles are trained, fatigued or detrained, import from FitNotes/Strong/Hevy, passkey login. Your data, your server.项目地址: https://gitcode.com/GitHub_Trending/op/openGym
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考