Перейти к контенту
Как это работает

Как подход превращается в объём и что считает карта мышц

Как подход превращается в объём, как оценивается работа с собственным весом и что именно считает карта мышц.

Автор: Kiptly ·

На этой странице

Объём — это одно умножение

Объём тренировки — это нагрузка каждого подхода, умноженная на его повторения, и всё это сложено. Никаких весовых коэффициентов: подход приседаний и подход на бицепс с одинаковым тоннажем дают одинаковый вклад, базовое упражнение не получает надбавки, а то, насколько тяжело было, в счёт не входит вообще.

Упражнения на два снаряда считаются по обоим. Десять повторений с парой гантелей по 20 кг — это 400 кг, а не 200; множитель по умолчанию равен единице, так что штанга и тренажёры остаются как были.

Амплитуда, темп и время под нагрузкой в арифметику не входят. Четвертьприсед и полный присед с той же штангой на то же число повторений дадут одно и то же число, потому что в том, что вы ввели, между ними нет разницы. Это ограничение метода, а не недоделка: иначе приложению пришлось бы додумывать недостающую половину, а придуманное число в итоге выглядит ровно так же, как посчитанное.

Какие подходы попадают в сумму

Разминочные — нет, если вы не включили их сами. Такая настройка есть, и счётчик подходов рядом с тоннажем читает тот же флаг: две цифры на одной карточке всегда считают одно и то же множество. Это стоило починить, и об этом стоит сказать вслух.

Подход без повторений не даёт килограммов. Планка на время или гребля на дистанцию всё равно остаётся выполненным подходом и попадает в счётчик подходов — просто умножать в нём нечего.

Подход, который вы не отметили галочкой, в объём всё равно попадает, если в нём есть повторения. Так сделано намеренно, и это единственное место, где объём и личные рекорды смотрят на разные вещи. Шапка активной тренировки показывает запланированный объём предзаполненной сессии с первой секунды, а итог, который записывается при завершении, считает те же подходы — поэтому две цифры никогда не расходятся между собой. Рекорды строже: они смотрят только на подходы, которые вы действительно отметили выполненными.

Откуда берётся вес

Три ветки и отказ — в одной функции, через которую проходит любое число с килограммами во всём продукте: итог тренировки, рекорды, графики и карта мышц наследуют её одинаково, а в приложении есть своя копия для офлайн-записи, совпадение которой с серверной проверяется с точностью до миллионной доли килограмма.

Для обычного упражнения нагрузка — это ровно тот вес, который вы ввели. Для упражнения с противовесом (гравитрон, где тренажёр снимает с вас часть веса) введённое число — это помощь, поэтому нагрузка равна вашей массе минус эта помощь, но не ниже нуля. Для упражнения, которое считается от массы тела, нагрузка — это ваша масса, умноженная на её долю, плюс всё, что вы повесили на пояс.

И отказ: если посчитать абсолютную нагрузку не из чего, функция не возвращает ничего, и подход просто пропускается. Он никогда не считается нулём. Ноль — это значение, которое тянет сумму вниз и оседает в среднем; «ничего» — это правда о подходе, нагрузка которого неизвестна.

Когда нагрузка — это вы сами

Для упражнений с собственным весом доля — это та часть вашей массы, которую движение действительно поднимает. Это не оценка сложности, и именно это правило делает всю таблицу проверяемой: отжимание на одной руке несёт ту же долю, что и на двух, потому что поднимается та же масса на то же расстояние — просто на руку приходится больше.

Поэтому подтягивание, подтягивание обратным хватом и отжимание на брусьях — это весь вы, доля 1,00. Отжимание от пола — 0,64, и это результат измерений на платформе, а не чьё-то мнение. Присед с собственным весом — 0,88: весь вы минус голени и стопы, которые остаются на полу, по стандартной таблице масс сегментов тела.

Ваше собственное значение важнее. Приложение ищет долю сначала в вашей настройке, затем в каталоге, а потом не ищет нигде — и своё значение можно задать даже там, где в каталоге его нет. Для большинства упражнений с собственным весом это единственный способ вообще попасть в подсчёт.

Во сколько оценивается каждое движение

Полная таблица, которая едет в приложении: она выписана из тех же данных при сборке этого сайта. Обратите внимание не только на то, что в ней есть, но и на то, чего в ней нет: там, где часть веса забирает опора, которую невозможно оценить (перекладина под ногами, резина, скамья), или где движение — это рычаг, а не подъём, доля не назначается и не выдумывается.

Упражнений, которые считаются от доли веса тела: 28
УпражнениеОборудованиеДоля веса тела
Подтягивания обратным хватомТурник1,00
Алмазные отжимания на брусьяхСобственный вес1,00
Отжимания на брусьях (грудь)Собственный вес1,00
Отжимания на брусьях (трицепс)Собственный вес1,00
Выход силойТурник1,00
Негативные отжимания на брусьяхСобственный вес1,00
Негативные подтягиванияТурник1,00
ПодтягиванияТурник1,00
Отжимания на кольцахСобственный вес1,00
Лопаточные подтягиванияТурник1,00
Подтягивания широким хватомТурник1,00
Присед пистолетиком на ящикСобственный вес0,94
Шримп-присед с возвышенияСобственный вес0,94
Присед пистолетикомСобственный вес0,94
Шримп-приседСобственный вес0,94
Отжимания в свободной стойкеСобственный вес0,90
Отжимания в стойке у стеныСобственный вес0,90
Негативные отжимания в стойке у стеныСобственный вес0,90
Приседания без весаСобственный вес0,88
Отжимания с ногами на возвышенииСобственный вес0,70
Отжимания лучникаСобственный вес0,64
Алмазные отжиманияСобственный вес0,64
Отжимания на одной рукеСобственный вес0,64
ОтжиманияСобственный вес0,64
Отжимания широким хватомСобственный вес0,64
Отжимания от возвышенияСобственный вес0,55
Отжимания с коленСобственный вес0,49
Отжимания от стеныСобственный вес0,35

Доля задана у 28 из 84 упражнений, к которым это вообще применимо. У остальных 56 её нет — такие подходы считаются по весу, который вы ввели, ровно как и раньше.

Что именно считает карта мышц

Каждое упражнение в каталоге перечисляет мышцы, которые оно нагружает, и у каждой из них есть роль: основная или вспомогательная. Один подход засчитывается основной мышце как один, а вспомогательной — как половина. На это разделение код ссылается на работу Pelland и соавторов, и это единственное, о чём карта тела в этом приложении может честно рассказать: каталог знает, какие мышцы названы у упражнения, а ваш журнал — сколько подходов вы сделали.

Счёт идёт в подходах, а не в килограммах, и рисунок закрашивается по подходам по той же причине, по которой список рядом считает их же. «Трицепс, 5 т» после дня жима — это число, которого никто не поднимал; половина подхода — это ровно то, что сделал трицепс. Подходы округляются до половин, а не до целых: округлив 2,5 до 3, мы бы стёрли ту самую разницу, ради которой половина и существует.

Оттенок — величина относительная. Самая тёмная мышца — это ваша самая нагруженная за окно, а все остальные нарисованы как доля от неё. Поэтому карта читается и при трёх подходах, и при тридцати, и поэтому карты двух разных людей — или два ваших собственных окна — между собой не сравниваются. Окно по умолчанию четыре недели, а вспомогательные мышцы приложение запрашивает само; сервер без запроса их не добавляет, чтобы старая сборка получала ровно то же, что получала всегда.

Почему при публикации тренировки итог исчезает

Разделите объём тренировки на её повторения — получите нагрузку на одно повторение. Для тренировки из подтягиваний и брусьев с долей 1,00 эта нагрузка равна вашей массе тела с точностью до килограмма, а число повторений та же карточка публикует рядом.

Поэтому у опубликованной тренировки, где есть хоть одно упражнение, считаемое от массы тела, для всех, кроме вас, объёма нет вовсе. Не округлённого, не пересчитанного — никакого. Масса тела — это медицинские данные, а число повторений — нет, и придумывать второе определение объёма, которое видят только некоторые читатели, было бы хуже, чем не показывать ничего. У себя в журнале вы видите это число везде.

Числа и где они лежат

Все числа, на которые опирается эта страница, выписаны из API при сборке сайта. Четыре из них записаны не в одном месте: два — дважды на сервере, ещё два — между сервером и приложением. Сборка падает, если копии перестают совпадать.

Что этоЗначениеОткуда взято
Сколько один подход засчитывает вспомогательной мышце. Основной засчитывается 1.0.5apps/api/src/common/muscle-role-share.tsapps/flutter/lib/features/workout/domain/worked_muscles.dart
До такого шага округляются подходы на мышцу — половина подхода остаётся половиной.0.5apps/api/src/common/muscle-role-share.ts
Сколько недель охватывает карта мышц, пока вы не выбрали окно сами.4apps/api/src/workout/analytics/analytics.controller.ts
Ниже этого записанная масса тела считается ошибкой измерения, а не весом.20apps/api/src/workout/resolve-bodyweight.tsapps/api/src/workout/strength-score.service.ts
Выше этого — то же самое: взвешивание игнорируется, а не используется.300apps/api/src/workout/resolve-bodyweight.tsapps/api/src/workout/strength-score.service.ts
Наибольшая доля собственной массы, которую можно задать движению вручную.1apps/api/src/exercise/bodyweight-factor.service.tsapps/flutter/lib/features/workout/domain/workout_volume.dart

Источники

У каждого источника указано, насколько глубоко мы с ним работали. Список ссылок показывает, что работа существует, а не то, что её кто-то открывал, — поэтому здесь стоят пометки.

  1. Pelland и соавт., Sports Medicine, 2025 — 67 исследований

    Причина, по которой код засчитывает вспомогательной мышце половину подхода, а не целый и не ноль. Мы её не читали: ссылка стоит в исходнике рядом с константой, и эта страница сообщает лишь то, что код на неё ссылается.

    Не прочитано

  2. Ebben и соавт. (2011), «Kinetic Analysis of Several Variations of Push-Ups», J Strength Cond Res 25(10)

    Пиковая вертикальная сила реакции опоры как доля массы тела — отсюда числа для семейства отжиманий в таблице выше. Ссылка стоит в данных, которые их хранят; саму статью мы не читали.

    Не прочитано

  3. Dempster (1955), доли масс сегментов тела

    Стандартная антропометрическая таблица, из которой выведены числа для приседов и стоек на руках — вычитанием того, что остаётся на полу. Ссылка стоит в данных; здесь не читалась.

    Не прочитано

  4. Код, который всё это считает

    packages/shared/src/utils/effective-load.ts, apps/api/src/workout/workout.service.ts, apps/api/src/common/muscle-role-share.ts и apps/api/src/workout/analytics/analytics.service.ts. Все числа выше выписаны из этих файлов при сборке сайта, а таблица долей взята из данных приложения, а не набрана руками.

    Прочитано полностью

Общая информация о тренировках, не медицинская рекомендация.