>_ rehablogger
Система работает
← Все сессии
СЕССИЯ УСТРОЙСТВА

rehabapp_2026-08-18_14-50-57

Подключение…
Rehab Logger console · история загружается порциями по 250 записей
INFO [console] [DIO] access-control-allow-origin: http://localhost:3000
INFO [console] [DIO] content-type: application/json
INFO [console] [DIO] server: openresty
INFO [console] [DIO] Response Text:
INFO [console] [DIO] {"success":true,"meta":{"timestamp":"2026-08-18T11:51:20.358375Z","request_id":"3b1496bc-4938-4236-836d-870083432ec0","version":"v1"},"data":{"unit_id":970,"workout_duration_start":10,"workout_duration_end":20,"body_side":"right","exercises":[{"id":97,"sequence_number":1,"name":"[тестовый] Подъём прямой ноги в сторону - В и.п. лёжа на боку","image":"https://rehabilitation.most.team/storage/exercise/photos/01M07H082ZHTXW5YEE3WYQ188J.png","by_body_side":"by_side","execution_order_type":"isolated","approaches_count":1,"execution_count":2,"execution_time":null,"instruction":{"exercise_name":"[тестовый] Подъём прямой ноги в сторону - В и.п. лёжа на боку","video":"https://rehabilitation.most.team/storage/exercise/videos/01M07H0833AV7J7QJSJ7MK1402.mov","inventory":null,"warning":"Верхняя нога не должна сильно сгибаться в бедре, т.е. отклоняться вперёд к животу","general_description":"Лёжа на боку отвести верхнюю ногу в сторону (поднять). Верхняя нога не должна сильно сгибаться в бедре, т.е. отклоняться вперёд к животу. Представьте, что вы лежите на боку и прижимаетесь спиной к стене, а далее скользите пяткой верхней ноги по стене вверх. Цель – тренировка мышц абдукторов/аддукторов бедра.","steps":[{"exercise_id":97,"sequence_number":1,"step_text":"Лягте на бок так, чтобы рабочая нога была сверху"},{"exercise_id":97,"sequence_number":2,"step_text":"Убедитесь, что вы лежите ровно. Голова может лежать на руке или на подушке"},{"exercise_id":97,"sequence_number":3,"step_text":"Нижнюю ногу слегка согните в колене и тазобедренном суставе для устойчивости"},{"exercise_id":97,"sequence_number":4,"step_text":"Верхнюю ногу полностью выпрямите. Она должна находиться строго над нижней ногой, образуя одну линию с туловищем"},{"exercise_id":97,"sequence_number":5,"step_text":"Положите верхнюю руку на талию или на матрас перед собой для равновесия"},{"exercise_id":97,"sequence_number":6,"step_text":"На выдохе: Медленно поднимите (отведите) прямую ногу вверх. Движение должно происходить строго в плоскости тела, как будто вы отводите ногу в сторону. Нога не должна сгибаться в тазобедренном суставе и отклоняться вперёд по направлению к животу или назад по направлению к спине"},{"exercise_id":97,"sequence_number":7,"step_text":"В верхней точке задержитесь на 1-2 секунды, сохраняя ногу прямой и чувствуя напряжение в боковой поверхности бедра и ягодице"},{"exercise_id":97,"sequence_number":8,"step_text":"На вдохе: Плавно, без рывка, опустите ногу в исходное положение. Старайтесь не класть ногу полностью на нижнюю, а остановитесь чуть выше, чтобы сохранить напряжение в мышцах"},{"exercise_id":97,"sequence_number":9,"step_text":"Повторите необходимое количество раз "}]}}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-08-18T11:51:20.358375Z, request_id: 3b1496bc-4938-4236-836d-870083432ec0, version: v1}, data: {unit_id: 970, workout_duration_start: 10, workout_duration_end: 20, body_side: right, exercises: [{id: 97, sequence_number: 1, name: [тестовый] Подъём прямой ноги в сторону - В и.п. лёжа на боку, image: https://rehabilitation.most.team/storage/exercise/photos/01M07H082ZHTXW5YEE3WYQ188J.png, by_body_side: by_side, execution_order_type: isolated, approaches_count: 1, execution_count: 2, execution_time: null, instruction: {exercise_name: [тестовый] Подъём прямой ноги в сторону - В и.п. лёжа на боку, video: https://rehabilitation.most.team/storage/exercise/videos/01M07H0833AV7J7QJSJ7MK1402.mov, inventory: null, warning: Верхняя нога не должна сильно сгибаться в бедре, т.е. отклоняться вперёд к животу, general_description: Лёжа на боку отвести верхнюю ногу в сторону (поднять). Верхняя нога не должна сильно сгибаться в бедре, т.е. отклоняться в
INFO [console] перёд к животу. Представьте, что вы лежите на боку и прижимаетесь спиной к стене, а далее скользите пяткой верхней ноги по стене вверх. Цель – тренировка мышц абдукторов/аддукторов бедра., steps: [{exercise_id: 97, sequence_number: 1, step_text: Лягте на бок так, чтобы рабочая нога была сверху}, {exercise_id: 97, sequence_number: 2, step_text: Убедитесь, что вы лежите ровно. Голова может лежать на руке или на подушке}, {exercise_id: 97, sequence_number: 3, step_text: Нижнюю ногу слегка согните в колене и тазобедренном суставе для устойчивости}, {exercise_id: 97, sequence_number: 4, step_text: Верхнюю ногу полностью выпрямите. Она должна находиться строго над нижней ногой, образуя одну линию с туловищем}, {exercise_id: 97, sequence_number: 5, step_text: Положите верхнюю руку на талию или на матрас перед собой для равновесия}, {exercise_id: 97, sequence_number: 6, step_text: На выдохе: Медленно поднимите (отведите) прямую ногу вверх. Движение должно происходить строго в плоскости тела, к
INFO [console] ак будто вы отводите ногу в сторону. Нога не должна сгибаться в тазобедренном суставе и отклоняться вперёд по направлению к животу или назад по направлению к спине}, {exercise_id: 97, sequence_number: 7, step_text: В верхней точке задержитесь на 1-2 секунды, сохраняя ногу прямой и чувствуя напряжение в боковой поверхности бедра и ягодице}, {exercise_id: 97, sequence_number: 8, step_text: На вдохе: Плавно, без рывка, опустите ногу в исходное положение. Старайтесь не класть ногу полностью на нижнюю, а остановитесь чуть выше, чтобы сохранить напряжение в мышцах}, {exercise_id: 97, sequence_number: 9, step_text: Повторите необходимое количество раз }]}}]}}
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 new FlutterSoundPlayer (package:flutter_sound/public/flutter_sound_player.dart:200:13)
INFO [console] │ #1 new AudioPlayerServiceImpl (package:testapp/features/training/data/services/audio_player_service_impl.dart:6:19)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 ctor: FlutterSoundPlayer()
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer._openPlayer (package:flutter_sound/public/flutter_sound_player.dart:727:13)
INFO [console] │ #1 FlutterSoundPlayer.openPlayer.<anonymous closure> (package:flutter_sound/public/flutter_sound_player.dart:721:11)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 FS:---> _openPlayer
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer._openPlayer (package:flutter_sound/public/flutter_sound_player.dart:740:15)
INFO [console] │ #1 FlutterSoundPlayer.openPlayer.<anonymous closure> (package:flutter_sound/public/flutter_sound_player.dart:721:11)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 Resetting flutter_sound Player Plugin
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer.openPlayerCompleted (package:flutter_sound/public/flutter_sound_player.dart:281:13)
INFO [console] │ #1 MethodChannelFlutterSoundPlayer.channelMethodCallHandler.<anonymous closure> (package:flutter_sound_platform_interface/method_channel_flutter_sound_player.dart:84:21)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 ---> openPlayerCompleted: true
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer.openPlayerCompleted (package:flutter_sound/public/flutter_sound_player.dart:296:13)
INFO [console] │ #1 MethodChannelFlutterSoundPlayer.channelMethodCallHandler.<anonymous closure> (package:flutter_sound_platform_interface/method_channel_flutter_sound_player.dart:84:21)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 <--- openPlayerCompleted: true
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer._openPlayer (package:flutter_sound/public/flutter_sound_player.dart:780:13)
INFO [console] │ #1 <asynchronous suspension>
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 FS:<--- _openPlayer
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer._setVolume (package:flutter_sound/public/flutter_sound_player.dart:2074:13)
INFO [console] │ #1 FlutterSoundPlayer.setVolume.<anonymous closure> (package:flutter_sound/public/flutter_sound_player.dart:2069:13)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 FS:---> setVolume
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer._setVolume (package:flutter_sound/public/flutter_sound_player.dart:2089:13)
INFO [console] │ #1 <asynchronous suspension>
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 FS:<--- setVolume
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/workout/detailed-exercises?unit_id=970&rehabilitation_day_id=2690&workout_id
INFO [console] [DIO] method: GET
INFO [console] [DIO] responseType: ResponseType.json
INFO [console] [DIO] followRedirects: true
INFO [console] [DIO] persistentConnection: true
INFO [console] [DIO] connectTimeout: 0:00:10.000000
INFO [console] [DIO] sendTimeout: null
INFO [console] [DIO] receiveTimeout: 0:00:10.000000
INFO [console] [DIO] transformTimeout: null
INFO [console] [DIO] receiveDataWhenStatusError: true
INFO [console] [DIO] extra: {}
INFO [console] [DIO] headers:
INFO [console] [DIO] Authorization: Bearer 650|j6S8Z97bBgqIMsjE3UHF6jBbjyJg56d9Xb46jyIv3ae90ea2
INFO [console] [DIO] data:
INFO [console] [DIO] null
INFO [console] [DIO]
INFO [console] [DIO] *** Response ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/workout/detailed-exercises?unit_id=970&rehabilitation_day_id=2690&workout_id
INFO [console] [DIO] statusCode: 200
INFO [console] [DIO] statusMessage: OK
INFO [console] [DIO] headers:
INFO [console] [DIO] x-served-by: rehabilitation.most.team
INFO [console] [DIO] access-control-allow-credentials: true
INFO [console] [DIO] connection: keep-alive
INFO [console] [DIO] cache-control: no-cache, private
INFO [console] [DIO] date: Tue, 18 Aug 2026 11:51:22 GMT
INFO [console] [DIO] transfer-encoding: chunked
INFO [console] [DIO] access-control-allow-origin: http://localhost:3000
INFO [console] [DIO] content-type: application/json
INFO [console] [DIO] server: openresty
INFO [console] [DIO] Response Text:
INFO [console] [DIO] {"success":true,"meta":{"timestamp":"2026-08-18T11:51:22.694813Z","request_id":"3a3c9f0b-a1cc-4300-8458-d800e640fdb0","version":"v1"},"data":{"unit_id":970,"workout_duration_start":10,"workout_duration_end":20,"body_side":"right","exercises":[{"id":97,"sequence_number":1,"is_monitored":true,"name":"[тестовый] Подъём прямой ноги в сторону - В и.п. лёжа на боку","image":"https://rehabilitation.most.team/storage/exercise/photos/01M07H082ZHTXW5YEE3WYQ188J.png","by_body_side":"by_side","execution_order_type":"isolated","approaches_count":1,"execution_count":2,"execution_time":null,"instruction":{"exercise_name":"[тестовый] Подъём прямой ноги в сторону - В и.п. лёжа на боку","video":"https://rehabilitation.most.team/storage/exercise/videos/01M07H0833AV7J7QJSJ7MK1402.mov","inventory":null,"warning":"Верхняя нога не должна сильно сгибаться в бедре, т.е. отклоняться вперёд к животу","general_description":"Лёжа на боку отвести верхнюю ногу в сторону (поднять). Верхняя нога не должна сильно сгибаться в бедре, т.е. отклоняться вперёд к животу. Представьте, что вы лежите на боку и прижимаетесь спиной к стене, а далее скользите пяткой верхней ноги по стене вверх. Цель – тренировка мышц абдукторов/аддукторов бедра.","steps":[{"exercise_id":97,"sequence_number":1,"step_text":"Лягте на бок так, чтобы рабочая нога была сверху"},{"exercise_id":97,"sequence_number":2,"step_text":"Убедитесь, что вы лежите ровно. Голова может лежать на руке или на подушке"},{"exercise_id":97,"sequence_number":3,"step_text":"Нижнюю ногу слегка согните в колене и тазобедренном суставе для устойчивости"},{"exercise_id":97,"sequence_number":4,"step_text":"Верхнюю ногу полностью выпрямите. Она должна находиться строго над нижней ногой, образуя одну линию с туловищем"},{"exercise_id":97,"sequence_number":5,"step_text":"Положите верхнюю руку на талию или на матрас перед собой для равновесия"},{"exercise_id":97,"sequence_number":6,"step_text":"На выдохе: Медленно поднимите (отведите) прямую ногу вверх. Движение должно происходить строго в плоскости тела, как будто вы отводите ногу в сторону. Нога не должна сгибаться в тазобедренном суставе и отклоняться вперёд по направлению к животу или назад по направлению к спине"},{"exercise_id":97,"sequence_number":7,"step_text":"В верхней точке задержитесь на 1-2 секунды, сохраняя ногу прямой и чувствуя напряжение в боковой поверхности бедра и ягодице"},{"exercise_id":97,"sequence_number":8,"step_text":"На вдохе: Плавно, без рывка, опустите ногу в исходное положение. Старайтесь не класть ногу полностью на нижнюю, а остановитесь чуть выше, чтобы сохранить напряжение в мышцах"},{"exercise_id":97,"sequence_number":9,"step_text":"Повторите необходимое количество раз "}]},"camera_orientation":"horizontal","neural_network_type":"mediapipe","base_main_command":"Поднимайте и опускайте правую ногу","left_main_command":null,"calibration_parameters":[{"id":146,"name":"Калибровка сегмента ноги","sequence_number":1,"calibration_parameter_type":"one_segment","fixation_type":"max_value","fixation_order":null,"deviation_critical":10,"deviation_uncritical":null,"check_on_next_calibrations":true,"has_division_by_side":true,"is_monitored":false,"components":[{"id":215,"component_side":"right","segment_type":null,"parts":[{"id":582,"sequence_number":1,"body_point":{"id":25,"mediapipe_index":24,"movenet_index":12},"line_type":null,"part_type":"point"},{"id":583,"sequence_number":2,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"}]}],"commands":[{"id":232,"command_side":"right","position_number":1,"position_message":"Лягте на левый бок, левую ногу согните для устойчивости. Правая нога должна лежать на другой ноге и быть продолжением корпуса","fixation_message":"Фиксируем длину ноги, оставайтесь в нужном положении","error_message":"Не заваливайте ногу в сторону"}]},{"id":147,"name":"Калибровка рабочего угла (угол между прямой таза и ногой)","sequence_number":2,"calibration_parameter_type":"angle_amplitude","fixation_type":"alternate","fixation_order":"min_at_first","deviation_critical":20,"deviation_uncritical":10,"check_on_next_calibrations":false,"has_division_by_side":true,"is_monitored":true,"components":[{"id":217,"component_side":"right","segment_type":null,"parts":[{"id":586,"sequence_number":1,"body_point":{"id":27,"mediapipe_index":26,"movenet_index":14},"line_type":null,"part_type":"point"},{"id":587,"sequence_number":2,"body_point":{"id":25,"mediapipe_index":24,"movenet_index":12},"line_type":null,"part_type":"point"},{"id":588,"sequence_number":3,"body_point":null,"line_type":"vertical","part_type":"line"}]}],"commands":[{"id":234,"command_side":"right","position_number":1,"position_message":"Оставайтесь лежать на боку, правая нога - продолжение туловища","fixation_message":"Фиксируем значение, оставайтесь в нужном положении","error_message":"Поднимайте ногу на необходимый уровень"},{"id":236,"command_side":"right","position_number":2,"position_message":"Теперь поднимите правую ногу вверх до комфортной вам рабочей высоты","fixation_message":"Фиксируем значение, не опускайте ногу","error_message":"Поднимайте ногу на необходимый уровень"}]}]}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-08-18T11:51:22.694813Z, request_id: 3a3c9f0b-a1cc-4300-8458-d800e640fdb0, version: v1}, data: {unit_id: 970, workout_duration_start: 10, workout_duration_end: 20, body_side: right, exercises: [{id: 97, sequence_number: 1, is_monitored: true, name: [тестовый] Подъём прямой ноги в сторону - В и.п. лёжа на боку, image: https://rehabilitation.most.team/storage/exercise/photos/01M07H082ZHTXW5YEE3WYQ188J.png, by_body_side: by_side, execution_order_type: isolated, approaches_count: 1, execution_count: 2, execution_time: null, instruction: {exercise_name: [тестовый] Подъём прямой ноги в сторону - В и.п. лёжа на боку, video: https://rehabilitation.most.team/storage/exercise/videos/01M07H0833AV7J7QJSJ7MK1402.mov, inventory: null, warning: Верхняя нога не должна сильно сгибаться в бедре, т.е. отклоняться вперёд к животу, general_description: Лёжа на боку отвести верхнюю ногу в сторону (поднять). Верхняя нога не должна сильно сгибаться в бедре
INFO [console] , т.е. отклоняться вперёд к животу. Представьте, что вы лежите на боку и прижимаетесь спиной к стене, а далее скользите пяткой верхней ноги по стене вверх. Цель – тренировка мышц абдукторов/аддукторов бедра., steps: [{exercise_id: 97, sequence_number: 1, step_text: Лягте на бок так, чтобы рабочая нога была сверху}, {exercise_id: 97, sequence_number: 2, step_text: Убедитесь, что вы лежите ровно. Голова может лежать на руке или на подушке}, {exercise_id: 97, sequence_number: 3, step_text: Нижнюю ногу слегка согните в колене и тазобедренном суставе для устойчивости}, {exercise_id: 97, sequence_number: 4, step_text: Верхнюю ногу полностью выпрямите. Она должна находиться строго над нижней ногой, образуя одну линию с туловищем}, {exercise_id: 97, sequence_number: 5, step_text: Положите верхнюю руку на талию или на матрас перед собой для равновесия}, {exercise_id: 97, sequence_number: 6, step_text: На выдохе: Медленно поднимите (отведите) прямую ногу вверх. Движение должно происходить строго
INFO [console] в плоскости тела, как будто вы отводите ногу в сторону. Нога не должна сгибаться в тазобедренном суставе и отклоняться вперёд по направлению к животу или назад по направлению к спине}, {exercise_id: 97, sequence_number: 7, step_text: В верхней точке задержитесь на 1-2 секунды, сохраняя ногу прямой и чувствуя напряжение в боковой поверхности бедра и ягодице}, {exercise_id: 97, sequence_number: 8, step_text: На вдохе: Плавно, без рывка, опустите ногу в исходное положение. Старайтесь не класть ногу полностью на нижнюю, а остановитесь чуть выше, чтобы сохранить напряжение в мышцах}, {exercise_id: 97, sequence_number: 9, step_text: Повторите необходимое количество раз }]}, camera_orientation: horizontal, neural_network_type: mediapipe, base_main_command: Поднимайте и опускайте правую ногу, left_main_command: null, calibration_parameters: [{id: 146, name: Калибровка сегмента ноги, sequence_number: 1, calibration_parameter_type: one_segment, fixation_type: max_value, fixation_order: null, de
INFO [console] viation_critical: 10, deviation_uncritical: null, check_on_next_calibrations: true, has_division_by_side: true, is_monitored: false, components: [{id: 215, component_side: right, segment_type: null, parts: [{id: 582, sequence_number: 1, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 583, sequence_number: 2, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}]}], commands: [{id: 232, command_side: right, position_number: 1, position_message: Лягте на левый бок, левую ногу согните для устойчивости. Правая нога должна лежать на другой ноге и быть продолжением корпуса, fixation_message: Фиксируем длину ноги, оставайтесь в нужном положении, error_message: Не заваливайте ногу в сторону}]}, {id: 147, name: Калибровка рабочего угла (угол между прямой таза и ногой), sequence_number: 2, calibration_parameter_type: angle_amplitude, fixation_type: alternate, fixation_order: min_at_first, deviation_
INFO [console] critical: 20, deviation_uncritical: 10, check_on_next_calibrations: false, has_division_by_side: true, is_monitored: true, components: [{id: 217, component_side: right, segment_type: null, parts: [{id: 586, sequence_number: 1, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 587, sequence_number: 2, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 588, sequence_number: 3, body_point: null, line_type: vertical, part_type: line}]}], commands: [{id: 234, command_side: right, position_number: 1, position_message: Оставайтесь лежать на боку, правая нога - продолжение туловища, fixation_message: Фиксируем значение, оставайтесь в нужном положении, error_message: Поднимайте ногу на необходимый уровень}, {id: 236, command_side: right, position_number: 2, position_message: Теперь поднимите правую ногу вверх до комфортной вам рабочей высоты, fixation_message: Фиксируем значение, не опускайт
INFO [console] е ногу, error_message: Поднимайте ногу на необходимый уровень}]}]}]}}
INFO [console] StateGEOMETRY: [], [], [], [], null
INFO [console] BODY_POINT_ENGINE: first geometry event — points=0 isCalibrated=null
INFO [console] POSE_ROT: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 img=720x480 -> 480x720
INFO [console] POSE_DIAG: sensorOrient=270 imgSize=720 x 480 imgFormat=35 planes=3 pixelStride=1 rowStride=720 screenSize=384x805
INFO [console] POSE_ROT: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 img=720x480 -> 480x720
INFO [console] POSE_DIAG: sensorOrient=270 imgSize=720 x 480 imgFormat=35 planes=3 pixelStride=1 rowStride=720 screenSize=384x805
INFO [console] POSE_ROT: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 img=720x480 -> 480x720
INFO [console] POSE_DIAG: sensorOrient=270 imgSize=720 x 480 imgFormat=35 planes=3 pixelStride=1 rowStride=720 screenSize=384x805
INFO [console] POSE_ROT: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 img=720x480 -> 480x720
INFO [console] POSE_DIAG: sensorOrient=270 imgSize=720 x 480 imgFormat=35 planes=3 pixelStride=1 rowStride=720 screenSize=384x805
INFO [console] POSE_ROT: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 img=720x480 -> 480x720
INFO [console] POSE_DIAG: sensorOrient=270 imgSize=720 x 480 imgFormat=35 planes=3 pixelStride=1 rowStride=720 screenSize=384x805
INFO [console] POSE_ROT: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 img=720x480 -> 480x720
INFO [console] POSE_DIAG: sensorOrient=270 imgSize=720 x 480 imgFormat=35 planes=3 pixelStride=1 rowStride=720 screenSize=384x805
INFO [console] POSE_ROT: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 img=720x480 -> 480x720
INFO [console] POSE_DIAG: sensorOrient=270 imgSize=720 x 480 imgFormat=35 planes=3 pixelStride=1 rowStride=720 screenSize=384x805
INFO [console] POSE_ROT: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 img=720x480 -> 480x720
INFO [console] POSE_DIAG: sensorOrient=270 imgSize=720 x 480 imgFormat=35 planes=3 pixelStride=1 rowStride=720 screenSize=384x805
INFO [console] POSE_ROT: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 img=720x480 -> 480x720
INFO [console] POSE_DIAG: sensorOrient=270 imgSize=720 x 480 imgFormat=35 planes=3 pixelStride=1 rowStride=720 screenSize=384x805
INFO [console] POSE_ROT: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 img=720x480 -> 480x720
INFO [console] POSE_DIAG: sensorOrient=270 imgSize=720 x 480 imgFormat=35 planes=3 pixelStride=1 rowStride=720 screenSize=384x805
INFO [console] POSE_ROT: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 img=720x480 -> 480x720
INFO [console] POSE_DIAG: sensorOrient=270 imgSize=720 x 480 imgFormat=35 planes=3 pixelStride=1 rowStride=720 screenSize=384x805
INFO [console] POSE_ROT: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 img=720x480 -> 480x720
INFO [console] POSE_DIAG: sensorOrient=270 imgSize=720 x 480 imgFormat=35 planes=3 pixelStride=1 rowStride=720 screenSize=384x805
INFO [console] POSE_ROT: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 img=720x480 -> 480x720
INFO [console] POSE_DIAG: sensorOrient=270 imgSize=720 x 480 imgFormat=35 planes=3 pixelStride=1 rowStride=720 screenSize=384x805
INFO [console] POSE_ROT: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 img=720x480 -> 480x720
INFO [console] POSE_DIAG: sensorOrient=270 imgSize=720 x 480 imgFormat=35 planes=3 pixelStride=1 rowStride=720 screenSize=384x805
INFO [console] POSE_ROT: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 img=720x480 -> 480x720
INFO [console] POSE_DIAG: sensorOrient=270 imgSize=720 x 480 imgFormat=35 planes=3 pixelStride=1 rowStride=720 screenSize=384x805
INFO [console] POSE_ROT: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 img=720x480 -> 480x720
INFO [console] POSE_DIAG: sensorOrient=270 imgSize=720 x 480 imgFormat=35 planes=3 pixelStride=1 rowStride=720 screenSize=384x805
INFO [console] POSE_ROT: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 img=720x480 -> 480x720
INFO [console] POSE_DIAG: sensorOrient=270 imgSize=720 x 480 imgFormat=35 planes=3 pixelStride=1 rowStride=720 screenSize=384x805
INFO [console] POSE_ROT: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 img=720x480 -> 480x720
INFO [console] POSE_DIAG: sensorOrient=270 imgSize=720 x 480 imgFormat=35 planes=3 pixelStride=1 rowStride=720 screenSize=384x805
INFO [console] POSE_ROT: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 img=720x480 -> 480x720
INFO [console] POSE_DIAG: sensorOrient=270 imgSize=720 x 480 imgFormat=35 planes=3 pixelStride=1 rowStride=720 screenSize=384x805
INFO [console] POSE_ROT: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 img=720x480 -> 480x720
INFO [console] POSE_DIAG: sensorOrient=270 imgSize=720 x 480 imgFormat=35 planes=3 pixelStride=1 rowStride=720 screenSize=384x805
INFO [console] POSE_ROT: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 img=720x480 -> 480x720
INFO [console] ROI_DEBUG: corners computed rawRect=(90.3,-17.8) -> (756.8,648.7) clamped=(90.3,0.0) -> (480.0,648.7) frame=480x720 screen=384x805
INFO [console] ROI_DEBUG: corners computed rawRect=(-63.2,44.5) -> (553.4,661.1) clamped=(0.0,44.5) -> (480.0,661.1) frame=480x720 screen=384x805
INFO [console] POSE_METRICS: received=3(2.2fps) processed=3(2.2fps) replaced=0(0.0fps) buildMs=140.25 estimatorMs=383.36 totalMs=388.71 actualFps=2.2
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] ROI_DEBUG: corners computed rawRect=(-65.6,38.9) -> (556.5,661.0) clamped=(0.0,38.9) -> (480.0,661.0) frame=480x720 screen=384x805
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] ROI_DEBUG: corners computed rawRect=(-64.1,41.0) -> (554.6,659.7) clamped=(0.0,41.0) -> (480.0,659.7) frame=480x720 screen=384x805
INFO [console] ROI_DEBUG: corners computed rawRect=(-67.5,34.4) -> (561.7,663.7) clamped=(0.0,34.4) -> (480.0,663.7) frame=480x720 screen=384x805
INFO [console] POSE_METRICS: received=3(2.4fps) processed=3(2.4fps) replaced=0(0.0fps) buildMs=166.56 estimatorMs=415.05 totalMs=420.85 actualFps=2.4
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] ROI_DEBUG: corners computed rawRect=(-13.9,30.6) -> (617.4,662.0) clamped=(0.0,30.6) -> (480.0,662.0) frame=480x720 screen=384x805
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] ROI_DEBUG: corners computed rawRect=(-29.9,30.5) -> (603.4,663.7) clamped=(0.0,30.5) -> (480.0,663.7) frame=480x720 screen=384x805
INFO [console] ROI_DEBUG: corners computed rawRect=(-49.1,31.1) -> (584.0,664.2) clamped=(0.0,31.1) -> (480.0,664.2) frame=480x720 screen=384x805
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] POSE_MAP: [0 norm=(0.248,0.222)] [11 norm=(0.139,0.302)] [12 norm=(0.402,0.299)] [23 norm=(0.182,0.480)] [24 norm=(0.349,0.483)]
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] ROI_DEBUG: corners computed rawRect=(-26.8,-4.2) -> (640.9,663.6) clamped=(0.0,0.0) -> (480.0,663.6) frame=480x720 screen=384x805
INFO [console] ROI_DEBUG: corners computed rawRect=(2.2,25.8) -> (634.8,658.3) clamped=(2.2,25.8) -> (480.0,658.3) frame=480x720 screen=384x805
INFO [console] POSE_METRICS: received=26(22.0fps) processed=2(1.7fps) replaced=22(18.6fps) buildMs=148.38 estimatorMs=2358.61 totalMs=2378.30 actualFps=1.7
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] POSE_DIAG: sensorOrient=270 imgSize=720 x 480 imgFormat=35 planes=3 pixelStride=1 rowStride=720 screenSize=384x805
INFO [console] POSE_ROT: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 img=720x480 -> 480x720
INFO [console] POSE_DIAG: sensorOrient=270 imgSize=720 x 480 imgFormat=35 planes=3 pixelStride=1 rowStride=720 screenSize=384x805
INFO [console] ROI_DEBUG: corners computed rawRect=(-37.7,-4.4) -> (628.7,662.0) clamped=(0.0,0.0) -> (480.0,662.0) frame=480x720 screen=384x805
INFO [console] POSE_LM: [0 frame=(327,160)] [11 frame=(364,217)] [12 frame=(274,215)] [23 frame=(349,345)] [24 frame=(292,348)] frameSize=480 x 720 screenSize=384x805
INFO [console] POSE_ROT: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 img=720x480 -> 480x720
INFO [console] POSE_DIAG: sensorOrient=270 imgSize=720 x 480 imgFormat=35 planes=3 pixelStride=1 rowStride=720 screenSize=384x805
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] ROI_DEBUG: corners computed rawRect=(13.1,26.5) -> (645.1,658.5) clamped=(13.1,26.5) -> (480.0,658.5) frame=480x720 screen=384x805
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] POSE_METRICS: received=3(3.0fps) processed=3(3.0fps) replaced=0(0.0fps) buildMs=78.94 estimatorMs=322.34 totalMs=328.18 actualFps=3.0
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] ROI_DEBUG: corners computed rawRect=(-61.0,34.0) -> (568.6,663.6) clamped=(0.0,34.0) -> (480.0,663.6) frame=480x720 screen=384x805
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] ROI_DEBUG: corners computed rawRect=(-66.1,37.6) -> (557.8,661.5) clamped=(0.0,37.6) -> (480.0,661.5) frame=480x720 screen=384x805
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] ROI_DEBUG: corners computed rawRect=(-63.9,42.3) -> (553.9,660.0) clamped=(0.0,42.3) -> (480.0,660.0) frame=480x720 screen=384x805
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] POSE_METRICS: received=5(4.4fps) processed=3(2.7fps) replaced=2(1.8fps) buildMs=73.87 estimatorMs=372.50 totalMs=376.43 actualFps=2.7
INFO [console] ROI_DEBUG: corners computed rawRect=(-63.2,42.2) -> (553.3,658.7) clamped=(0.0,42.2) -> (480.0,658.7) frame=480x720 screen=384x805
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] ROI_DEBUG: corners computed rawRect=(-63.9,42.6) -> (553.8,660.2) clamped=(0.0,42.6) -> (480.0,660.2) frame=480x720 screen=384x805
INFO [console] POSE_METRICS: received=4(2.9fps) processed=3(2.2fps) replaced=1(0.7fps) buildMs=138.16 estimatorMs=455.71 totalMs=459.93 actualFps=2.2
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] ROI_DEBUG: corners computed rawRect=(-63.6,43.9) -> (553.6,661.1) clamped=(0.0,43.9) -> (480.0,661.1) frame=480x720 screen=384x805
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] ROI_DEBUG: corners computed rawRect=(-63.8,43.2) -> (553.7,660.7) clamped=(0.0,43.2) -> (480.0,660.7) frame=480x720 screen=384x805
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] ROI_DEBUG: corners computed rawRect=(-63.7,43.5) -> (553.6,660.8) clamped=(0.0,43.5) -> (480.0,660.8) frame=480x720 screen=384x805
INFO [console] ROI_DEBUG: corners computed rawRect=(-63.6,43.7) -> (553.7,661.0) clamped=(0.0,43.7) -> (480.0,661.0) frame=480x720 screen=384x805
INFO [console] POSE_METRICS: received=3(2.3fps) processed=3(2.3fps) replaced=0(0.0fps) buildMs=126.64 estimatorMs=422.77 totalMs=427.33 actualFps=2.3
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] ROI_DEBUG: corners computed rawRect=(-63.5,44.0) -> (553.7,661.2) clamped=(0.0,44.0) -> (480.0,661.2) frame=480x720 screen=384x805
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] ROI_DEBUG: corners computed rawRect=(-63.1,44.8) -> (553.3,661.2) clamped=(0.0,44.8) -> (480.0,661.2) frame=480x720 screen=384x805
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] ROI_DEBUG: corners computed rawRect=(-64.0,43.9) -> (555.3,663.2) clamped=(0.0,43.9) -> (480.0,663.2) frame=480x720 screen=384x805
INFO [console] POSE_METRICS: received=3(2.9fps) processed=3(2.9fps) replaced=0(0.0fps) buildMs=108.00 estimatorMs=338.78 totalMs=342.11 actualFps=2.9
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] ROI_DEBUG: corners computed rawRect=(-61.6,43.4) -> (558.8,663.8) clamped=(0.0,43.4) -> (480.0,663.8) frame=480x720 screen=384x805
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] ROI_DEBUG: corners computed rawRect=(-35.9,43.5) -> (581.4,660.8) clamped=(0.0,43.5) -> (480.0,660.8) frame=480x720 screen=384x805
INFO [console] POSE_METRICS: received=4(3.2fps) processed=4(3.2fps) replaced=0(0.0fps) buildMs=78.43 estimatorMs=306.21 totalMs=309.52 actualFps=3.2
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] ROI_DEBUG: corners computed rawRect=(-62.7,45.4) -> (553.1,661.3) clamped=(0.0,45.4) -> (480.0,661.3) frame=480x720 screen=384x805
INFO [console] POSE_METRICS: received=3(3.0fps) processed=3(3.0fps) replaced=0(0.0fps) buildMs=114.39 estimatorMs=330.58 totalMs=334.02 actualFps=3.0
INFO [console] ROI_DEBUG: corners computed rawRect=(-63.2,44.9) -> (554.1,662.2) clamped=(0.0,44.9) -> (480.0,662.2) frame=480x720 screen=384x805
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] ROI_DEBUG: corners computed rawRect=(-63.0,45.0) -> (553.3,661.2) clamped=(0.0,45.0) -> (480.0,661.2) frame=480x720 screen=384x805
INFO [console] ROI_DEBUG: corners computed rawRect=(-62.7,45.5) -> (553.2,661.4) clamped=(0.0,45.5) -> (480.0,661.4) frame=480x720 screen=384x805
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] ROI_DEBUG: corners computed rawRect=(-63.4,43.5) -> (556.7,663.6) clamped=(0.0,43.5) -> (480.0,663.6) frame=480x720 screen=384x805
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] ROI_DEBUG: corners computed rawRect=(-59.0,43.3) -> (560.9,663.1) clamped=(0.0,43.3) -> (480.0,663.1) frame=480x720 screen=384x805
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] ROI_DEBUG: corners computed rawRect=(0.1,38.0) -> (626.2,664.1) clamped=(0.1,38.0) -> (480.0,664.1) frame=480x720 screen=384x805
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] ROI_DEBUG: corners computed rawRect=(29.4,27.1) -> (661.6,659.4) clamped=(29.4,27.1) -> (480.0,659.4) frame=480x720 screen=384x805
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] ROI_DEBUG: corners computed rawRect=(40.3,19.0) -> (683.4,662.2) clamped=(40.3,19.0) -> (480.0,662.2) frame=480x720 screen=384x805
INFO [console] ROI_DEBUG: corners computed rawRect=(65.0,-3.3) -> (732.2,663.9) clamped=(65.0,0.0) -> (480.0,663.9) frame=480x720 screen=384x805
INFO [console] POSE_METRICS: received=4(3.1fps) processed=4(3.1fps) replaced=0(0.0fps) buildMs=99.81 estimatorMs=321.25 totalMs=324.58 actualFps=3.1
INFO [console] POSE: landmarks=33 → emitting points
INFO [console] POSE_METRICS: received=2(1.2fps) processed=3(1.8fps) replaced=0(0.0fps) buildMs=146.82 estimatorMs=559.67 totalMs=561.67 actualFps=1.8
INFO [console] POSE_METRICS: received=3(2.6fps) processed=2(1.8fps) replaced=0(0.0fps) buildMs=186.29 estimatorMs=429.41 totalMs=429.54 actualFps=1.8
INFO [console] POSE_METRICS: received=6(4.7fps) processed=5(3.9fps) replaced=1(0.8fps) buildMs=109.70 estimatorMs=256.59 totalMs=256.65 actualFps=3.9
INFO [console] POSE_METRICS: received=6(5.0fps) processed=4(3.3fps) replaced=2(1.7fps) buildMs=125.20 estimatorMs=300.87 totalMs=300.93 actualFps=3.3
INFO [console] BODY_POINT_PHASE: timeout — no geometry data in 30s
INFO [console] POSE_METRICS: received=5(4.3fps) processed=4(3.5fps) replaced=1(0.9fps) buildMs=128.87 estimatorMs=288.11 totalMs=288.17 actualFps=3.5
INFO [console] 🎯 БОДИПОИНТ: Скрытый 30-секундный таймер-убийца успешно обезврежен!
INFO [console] POSE_METRICS: received=5(4.8fps) processed=3(2.9fps) replaced=2(1.9fps) buildMs=129.93 estimatorMs=347.62 totalMs=347.70 actualFps=2.9
INFO [console] POSE_METRICS: received=7(6.1fps) processed=4(3.5fps) replaced=3(2.6fps) buildMs=97.13 estimatorMs=287.00 totalMs=287.07 actualFps=3.5
INFO [console] POSE_METRICS: received=7(5.8fps) processed=4(3.3fps) replaced=3(2.5fps) buildMs=102.36 estimatorMs=302.87 totalMs=302.94 actualFps=3.3
INFO [console] POSE_METRICS: received=6(5.8fps) processed=4(3.9fps) replaced=2(1.9fps) buildMs=100.41 estimatorMs=256.49 totalMs=256.54 actualFps=3.9
INFO [console] POSE_METRICS: received=6(4.8fps) processed=5(4.0fps) replaced=1(0.8fps) buildMs=121.66 estimatorMs=248.64 totalMs=248.72 actualFps=4.0
INFO [console] POSE_METRICS: received=7(6.3fps) processed=4(3.6fps) replaced=3(2.7fps) buildMs=93.55 estimatorMs=278.51 totalMs=278.58 actualFps=3.6
INFO [console] POSE_METRICS: received=6(4.7fps) processed=4(3.1fps) replaced=2(1.6fps) buildMs=125.74 estimatorMs=317.86 totalMs=317.93 actualFps=3.1
INFO [console] POSE_METRICS: received=6(5.8fps) processed=4(3.9fps) replaced=2(1.9fps) buildMs=99.87 estimatorMs=257.88 totalMs=257.93 actualFps=3.9
INFO [console] POSE_METRICS: received=5(4.5fps) processed=4(3.6fps) replaced=1(0.9fps) buildMs=127.27 estimatorMs=275.44 totalMs=275.51 actualFps=3.6
INFO [console] POSE_METRICS: received=6(5.1fps) processed=4(3.4fps) replaced=2(1.7fps) buildMs=126.93 estimatorMs=291.91 totalMs=291.98 actualFps=3.4
INFO [console] POSE_METRICS: received=6(6.0fps) processed=4(4.0fps) replaced=2(2.0fps) buildMs=98.14 estimatorMs=249.35 totalMs=249.42 actualFps=4.0
INFO [console] POSE_METRICS: received=6(5.9fps) processed=3(3.0fps) replaced=3(3.0fps) buildMs=107.12 estimatorMs=337.85 totalMs=337.92 actualFps=3.0
INFO [console] POSE_METRICS: received=6(4.7fps) processed=4(3.1fps) replaced=2(1.6fps) buildMs=149.00 estimatorMs=321.30 totalMs=321.38 actualFps=3.1
$
250 строкUTF-8LIVE