尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
openGym 如何自动调整下次训练重量:progression.js 源码走读完整指南
openGym 如何自动调整下次训练重量progression.js 源码走读完整指南【免费下载链接】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/openGymopenGym 是一款自托管self-hosted的健身与自身体重训练记录应用你可以计划训练、记录组次支持超级组、热身、有氧、查看哪些肌肉正在疲劳或退练并把数据完全留在自己的服务器上。其中最实用的一点是它会自动调整你下次训练的重量。这篇文章带你走读核心文件 progression.js看看下次加 2.5 kg 还是维持原重量这个决定究竟是怎么算出来的。 一句话原理不存数字只算历史传统做法是每次训练完把下次重量写进数据库——一旦某次记录填错后面的数字就会一路错下去。openGym 选择了另一条路源码开头几行注释就写明了这一设计这里的一切都是训练历史的纯函数。没有任何东西写回已完成的训练——日志记录的是发生了什么而下一次的处方是每次需要时从历史现场推导出来的。这意味着两个好处你改了一条填错的组次、或换了渐进策略下次目标立刻正确不存在会失同步的计数器每次给出的数字都附带一条可翻译的理由why字段——正如源码所说说不清来路的建议你迟早会不再信任它。5 种渐进策略你的数据在跑哪套规则策略清单定义在 POLICIES策略加重条件失败减载off目标保持你设置的样子不自动变化—linear线性渐进每一组都完成目标次数加一个步长连续 3 次未达标greyskull灰骷髅前两组达标、最后一组力竭末组做到 2 倍目标次数可加双倍步长1 次失败即减载 10%double双渐进同一重量上爬过次数区间每组合区间上限后加重、次数回底连续 3 次未达标time计时每组持满目标时长目标 5 秒连续 3 次未达标策略按动作自身 → 所属训练计划 → 模式默认三级回退选取policyFor次数模式默认就是 linear——也就是老用户熟悉的全做满就加一步。有氧模式只允许 off不做自动渐进。核心走读nextPrescription 的五步决策每次开始训练时buildPlannedEntry 会为计划里的每个动作调用 nextPrescription按顺序做这些判断① 诚实读取上一次训练readSessionreadSession 是这场判断里的裁判它读历史的态度相当严格勾选且次数 ≥ 目标 →达标勾选但次数不够 → 未达标你记录到多少就是多少没勾的组、缺的组 → 未达标。热身组会被排除在外计划之外额外加的组不改变处方——多练一组不能替下次训练涨重量。所以一次练崩了的训练绝无可能假装成功把负荷推进。② 统计卡壳次数stallCountstallCount 从最近一次训练往前数连续未达标的次数遇到三种情况就清零成功一次换了重量减载应针对真正失败的重量而不是之后更轻的那次或改了计划旧组次下的失败说明不了新组次的问题。双渐进策略里还有个巧妙的豁免在当前重量上突破最好成绩也算进展不会被误判为卡壳。③ 给出五种结局返回值是一个处方对象kind只有五种界面会原样展示它选择的理由kind含义典型提示first还没有历史本次训练定下基线up上次达标加重 / 加次数 / 加时间hold未达标但没到减载线维持原重量还差 X 次触发减载deload连续卡壳减载到 90% 1RM 附近重建off策略关闭无自动渐进⚖️ 两个值得细看的实现细节重量必须落在杠铃片网格上现实中杠铃片只有 1.25 / 2.5 / 5 kg 等规格所以 addStep 加完重量后会吸附到步长网格——手动点 /- 按钮走的是同一套规则界面和自动渐进永远给出同一个数字。步长本身也不是死数字defaultIncrement腿、背、臀这类大肌群默认 5 kg10 lb其余动作默认 2.5 kg5 lb动作级还能用cfg.inc覆盖。用 Epley 公式给减载定目标减载不是无脑打九折。epley1RM 先按重量 × (1 次数/30)估算当前 1RM再取它的 90%系数可在 0.5–0.95 间配置作为目标然后由 selectDeloadCandidate 在你能装得上的重量 × 你举得动的次数网格里挑出最接近目标的一对——比如 100 kg × 5 卡壳它可能给出 87.5 kg × 6而不是一刀切到 90 kg × 5。线性与双渐进策略都走这条 Epley 路径选不出来才退回简单的乘 0.9 取整。 自身体重动作不加重量加次数俯卧撑没有杠铃片可加减载到 2.5 kg的建议毫无意义。源码里这类动作自重、无独立负重器械、辅助器械走的是专门的爬升分支次数逐次爬升单侧动作每次 2保证两边都动到次数上限就加一组组数爬到 6 组封顶此时应用会明确提示——该上负重或换更难的动作了。策略到此主动让位把决策交还给人。这些计算跑在哪里全部在你的浏览器 / 手机里。开始一次训练时应用现场推导出处方并盖在当次条目上历史只增不改数据上传你的服务器只是为了多端同步整体架构如下手机、笔记本与服务器之间的同步走版本号机制冲突时由客户端自行合并时序图源文件见 sync.mmd延伸阅读想继续深挖这几个文件值得收藏frontend/src/lib/progression.js —— 渐进策略与处方推导的完整实现frontend/src/lib/progression.test.js —— 每种策略的边界用例读它比读文档更快frontend/src/lib/session-start.js —— 处方如何落进一次训练会话frontend/src/lib/rep-range.js —— 双渐进的次数区间归一化frontend/src/lib/history.js —— 组次构建与训练模式判定README.md —— 自托管部署与功能总览理解 openGym 的自动调整重量机制关键其实只有一句话每次开始训练前它都会重新、诚实地读一遍历史再当场算出下一个数字。规则透明、理由可见——这比任何黑箱智能推荐都更值得信任。【免费下载链接】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),仅供参考
RELATED

相关推荐

基于Java的个性化影片推荐系统:从算法选型到工程实现

基于Java的个性化影片推荐系统:从算法选型到工程实现

简介:这份资源是一份基于Java的个性化影片推荐系统毕业设计文档,面向计算机相关专业学生及需要完成课程设计或论文写作的开发者,帮助解决推荐系统选题从需求分析到测试总结的完整方案撰写问题。压缩包内仅含1个docx文件,约3.06MB&…

📅 2026/10/8 2:59:40
信号完整性基础:串扰的产生机理、估算方法与PCB设计治理

信号完整性基础:串扰的产生机理、估算方法与PCB设计治理

做硬件这些年,我吃过不少闷亏。前几年调一块双面DDR3板子,内层走线因为叠层有限,地址线挤在一起,时序一百遍都拉不通。后来用示波器探到DQ线上出现了幅度不小的毛刺,而且毛刺的位置总是恰好对齐旁边那根CLK的边沿——这…

📅 2026/10/8 2:59:40
压电阀控制器设计系列总章:架构、选型与避坑指南

压电阀控制器设计系列总章:架构、选型与避坑指南

压电阀控制器这个项目,我断断续续搞了一年多,从第一版只能勉强点亮的实验板,到后来能稳定跑在半导体客户现场的设备,中间踩过的坑确实不少。这个“总章”不是某一篇具体的技术教程,而是给整个系列画一张地图——先把控…

📅 2026/10/8 2:59:40
MORE NEWS

更多资讯

📰

AI生成HTML课件转PPTX:从诊断清洗到可复用skill的完整指南

1. 为什么AI生成的HTML课件总是"看着美、改不动"1.1 一个真实场景:从惊喜到崩溃只用了十分钟上个月帮一位做企业内训的朋友处理课件,他用AI生成了一套HTML格式的培训材料,浏览器里打开确实漂亮——渐变背景、卡片布局、图标排版都挺…

📰

Python列表与元组:可变性、内存与性能的底层对决

写Python写了小十年,带过的新人少说也有百来个。每次讲到入门数据结构,列表和元组这对双胞胎一定会被反复追问:这俩看起来一模一样,为啥要搞出两个?用错一次会怎样?什么时候该用哪个?说实话&…

📰

JavaWeb图书借阅管理系统实战:从数据库设计到部署避坑

简介:一套基于JavaWeb的图书借阅管理系统源码工程,采用JSP、JavaBean、MySQL与Tomcat整合技术栈,主要面向JavaWeb初学者、课程设计及期末项目人群。系统完整覆盖读者端登录注册、图书查询、借阅归还、借阅历史与个人信息管理,以及…

📰

智能体触达能力评估:Agent-Reach链路监控实践

做AI应用落地这一行,折腾久了都会撞上同一个怪圈:模型单聊怎么测都聪明,可一旦把它丢进真实业务流程里,让它自己查数据、调接口、回用户,把一长串动作串成一个目标时,总会在某个环节莫名其妙地够不到。Agen…

📰

Agent-Reach实战:从对话到落地的智能体触达层设计指南

做AI应用这段时间,我越来越觉得“Agent”这个词有点被高估。市面上大多数号称智能体的产品,本质上只是一个能聊天的对话框。真正让人头疼的问题从来不是“能不能聊”,而是“聊完之后能不能办事”。Agent-Reach这个项目就是冲着这个痛点来的&a…

📰

大脑的预知时刻:海马体如何在看见之前提前编码视觉信息

第一次在颅内电极记录里看到海马体在视觉刺激出现之前就已经出现选择性放电时,我揉了揉眼睛。海马体不是记忆系统的主角吗?它怎么会在“看见”之前就提前动作?这篇发表于Science Advances的工作,核心就是这件事——研究者通过记录…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬