<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.0 20040830//EN" "journalpublishing.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="2.0" xml:lang="en" article-type="research-article"><front><journal-meta><journal-id journal-id-type="nlm-ta">JMIR Rehabil Assist Technol</journal-id><journal-id journal-id-type="publisher-id">rehab</journal-id><journal-id journal-id-type="index">17</journal-id><journal-title>JMIR Rehabilitation and Assistive Technologies</journal-title><abbrev-journal-title>JMIR Rehabil Assist Technol</abbrev-journal-title><issn pub-type="epub">2369-2529</issn><publisher><publisher-name>JMIR Publications</publisher-name><publisher-loc>Toronto, Canada</publisher-loc></publisher></journal-meta><article-meta><article-id pub-id-type="publisher-id">v13i1e102399</article-id><article-id pub-id-type="doi">10.2196/102399</article-id><article-categories><subj-group subj-group-type="heading"><subject>Original Paper</subject></subj-group></article-categories><title-group><article-title>Validation of Single-Camera MediaPipe BlazePose for Knee Joint Angle Measurement Across Multiple Functional Tasks: Concurrent Validity, Interrater Reliability, and Exploratory Test&#x2013;Retest Reliability Study</article-title></title-group><contrib-group><contrib contrib-type="author"><name name-style="western"><surname>Yue</surname><given-names>Xiaotian</given-names></name><degrees>DPT</degrees><xref ref-type="aff" rid="aff1">1</xref></contrib><contrib contrib-type="author"><name name-style="western"><surname>Gu</surname><given-names>YiXuan</given-names></name><xref ref-type="aff" rid="aff1">1</xref></contrib><contrib contrib-type="author" corresp="yes"><name name-style="western"><surname>Yu</surname><given-names>Bo</given-names></name><degrees>MD, PhD</degrees><xref ref-type="aff" rid="aff1">1</xref><xref ref-type="aff" rid="aff2">2</xref></contrib></contrib-group><aff id="aff1"><institution>Department of Rehabilitation, School of International Medical Technology, Shanghai Sanda University</institution><addr-line>2727 Jinhai Road, Pudong New District</addr-line><addr-line>Shanghai</addr-line><country>China</country></aff><aff id="aff2"><institution>Orthopaedic Rehabilitation Unit, Department of Rehabilitation Medicine, Shanghai General Hospital, Shanghai Jiao Tong University School of Medicine</institution><addr-line>No. 100, Haining Road</addr-line><addr-line>Shanghai</addr-line><country>China</country></aff><contrib-group><contrib contrib-type="editor"><name name-style="western"><surname>Mastropietro</surname><given-names>Alfonso</given-names></name></contrib></contrib-group><contrib-group><contrib contrib-type="reviewer"><name name-style="western"><surname>McMordie</surname><given-names>Janet</given-names></name></contrib><contrib contrib-type="reviewer"><name name-style="western"><surname>Chakit</surname><given-names>Miloud</given-names></name></contrib></contrib-group><author-notes><corresp>Correspondence to Bo Yu, MD, PhD, Orthopaedic Rehabilitation Unit, Department of Rehabilitation Medicine, Shanghai General Hospital, Shanghai Jiao Tong University School of Medicine, No. 100, Haining RoadShanghai, 200080, China, 86 18917946530; <email>boyujtu@163.com</email></corresp></author-notes><pub-date pub-type="collection"><year>2026</year></pub-date><pub-date pub-type="epub"><day>3</day><month>11</month><year>2026</year></pub-date><volume>13</volume><elocation-id>e102399</elocation-id><history><date date-type="received"><day>26</day><month>05</month><year>2026</year></date><date date-type="rev-recd"><day>24</day><month>09</month><year>2026</year></date><date date-type="accepted"><day>01</day><month>10</month><year>2026</year></date></history><copyright-statement>&#x00A9; Xiaotian Yue, YiXuan Gu, Bo Yu. Originally published in JMIR Rehabilitation and Assistive Technologies (<ext-link ext-link-type="uri" xlink:href="https://rehab.jmir.org">https://rehab.jmir.org</ext-link>), 3.11.2026. </copyright-statement><copyright-year>2026</copyright-year><license license-type="open-access" xlink:href="https://creativecommons.org/licenses/by/4.0/"><p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (<ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">https://creativecommons.org/licenses/by/4.0/</ext-link>), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work, first published in JMIR Rehabilitation and Assistive Technologies, is properly cited. The complete bibliographic information, a link to the original publication on <ext-link ext-link-type="uri" xlink:href="https://rehab.jmir.org/">https://rehab.jmir.org/</ext-link>, as well as this copyright and license information must be included.</p></license><self-uri xlink:type="simple" xlink:href="https://rehab.jmir.org/2026/1/e102399"/><abstract><sec><title>Background</title><p>Single-camera markerless pose estimation may support accessible knee movement assessment, but performance can depend on task, joint angle, and detection quality, and evidence across complementary measurement properties remains limited.</p></sec><sec><title>Objective</title><p>This study aimed to evaluate agreement of MediaPipe BlazePose Heavy knee-flexion estimates with goniometer-set static target positions and with Kinovea 2D video annotation for dynamic tasks, to assess interrater agreement of the Kinovea annotations, and to explore repeated-session performance in a small retest subsample.</p></sec><sec sec-type="methods"><title>Methods</title><p>Squat, sit-to-stand, and bilateral single-leg stance tasks were performed by 15 healthy adults during standardized lateral-view smartphone recording. Static knee flexion was assessed at 4 goniometer-set targets (30&#x00B0;, 60&#x00B0;, 90&#x00B0;, and 120&#x00B0;). Native hip-knee-ankle included angles were converted to clinical knee flexion (0&#x00B0; at full extension). Agreement was assessed using the intraclass correlation coefficient (ICC), specifically ICC<sub>2,1</sub>, signed bias and 95% limits of agreement, mean absolute error (MAE), and root mean square error (RMSE). Primary intervals used participant-cluster bootstrapping, and limits of agreement accounted for repeated measurements. Dynamic primary estimates were conditional on BlazePose target-frame confidence &#x2265;0.3; low-confidence observations were also reported as detection failures and included in an all-output stress test. Four participants returned after 21 days to 29 days (median 25 d) for exploratory repeated-session analyses.</p></sec><sec sec-type="results"><title>Results</title><p>Dynamic measurement was available in 177 of 210 observations (84.3%); 33 of 210 observations (15.7%) failed the confidence criterion. Conditional task-specific ICCs were 0.773 (95% CI 0.564 to 0.875; n=71, 15 participants) for squat, 0.632 (95% CI 0.455 to 0.726; n=58, 12 participants) for sit-to-stand, and 0.136 (95% CI &#x2212;0.078 to 0.482; n=48, 15 participants) for combined single-leg stance. Task-specific availability was present for 71 of 75 observations (95%), 58 of 75 observations (77%), and 48 of 60 observations (80%), respectively. Without the quality gate, squat ICC was 0.428, and RMSE was 25.43&#x00B0;. Static agreement with set targets resulted in an ICC of 0.874 (95% CI 0.770 to 0.953), with RMSE of 15.49&#x00B0; and angle-dependent signed error. Kinovea interrater ICC was 0.999 (95% CI 0.998 to 0.999) overall, which did not establish 3D accuracy. Repeated-session estimates with the 4 participants remained exploratory.</p></sec><sec sec-type="conclusions"><title>Conclusions</title><p>With dynamic measurement available in 177 of 210 observations (84.3%), agreement among retained outputs depended on task, flexion angle, and detection quality. The findings support further feasibility and screening-level evaluation under controlled acquisition with per-recording quality checks; they do not support replacement of clinical goniometry, precise longitudinal decision-making, absolute 3D kinematic accuracy, or generalization to clinical populations or other smartphones.</p></sec></abstract><kwd-group><kwd>markerless motion capture</kwd><kwd>pose estimation</kwd><kwd>MediaPipe BlazePose</kwd><kwd>knee kinematics</kwd><kwd>concurrent validity</kwd><kwd>interrater reliability</kwd><kwd>test&#x2013;retest reliability</kwd><kwd>telerehabilitation</kwd><kwd>Kinovea</kwd><kwd>goniometry</kwd></kwd-group></article-meta></front><body><sec id="s1" sec-type="intro"><title>Introduction</title><sec id="s1-1"><title>Background</title><p>Accurate measurement of knee joint kinematics is fundamental to the assessment and management of musculoskeletal conditions, including anterior cruciate ligament reconstruction recovery and knee osteoarthritis rehabilitation. Clinicians routinely monitor knee flexion and extension range of motion (ROM) to guide treatment progression, set discharge criteria, and evaluate surgical outcomes. In conventional clinical practice, the universal goniometer is used for static ROM measurement and offers acceptable intrarater reliability when used by trained clinicians [<xref ref-type="bibr" rid="ref1">1</xref>]. However, the goniometer requires in-person contact, is limited to static or quasistatic postures, and cannot capture the dynamic joint behavior that characterizes functional tasks such as squatting, sit-to-stand transfers, and single-leg balance&#x2014;tasks that more closely reflect the demands of daily living and return-to-activity benchmarks.</p><p>Laboratory-based, marker-based, motion-capture systems (eg, Vicon and Qualisys) are commonly used reference methods for 3D joint-kinematic analysis. However, they require dedicated space, specialized hardware, marker placement by trained personnel, and substantial postprocessing expertise [<xref ref-type="bibr" rid="ref2">2</xref>,<xref ref-type="bibr" rid="ref3">3</xref>]. These requirements limit their availability for routine or remote assessment, where neither an in-person goniometer nor laboratory motion capture is readily deployable.</p><p>The rapid development of markerless pose estimation technologies has created new possibilities for accessible, low-cost movement analysis. Deep learning&#x2013;based frameworks can estimate joint positions from standard video without physical markers. Stenum et al [<xref ref-type="bibr" rid="ref4">4</xref>] demonstrated the feasibility of automated gait analysis from single-camera 2D pose estimation. Among single-camera 2D approaches, Gupta et al [<xref ref-type="bibr" rid="ref5">5</xref>] compared MediaPipe Pose with Kinovea 2D video annotation for knee flexion during gait, reporting a Pearson correlation of 0.941 and a mean absolute error (MAE) of 5.88&#x00B0;. Langley et al [<xref ref-type="bibr" rid="ref6">6</xref>] compared both smartphone-based Deep Vision and Kinovea with 3D motion capture in patients with knee osteoarthritis. For Deep Vision, limits of agreement for peak flexion and ROM were within or equal to the study&#x2019;s clinical thresholds. Koul et al [<xref ref-type="bibr" rid="ref7">7</xref>] reported high intrarater reliability for knee flexion measurements using DETROM (intraclass correlation coefficient [ICC]=0.98) in healthy adults. Agreement with a universal goniometer was evaluated separately using Bland-Altman analysis. Akturk et al [<xref ref-type="bibr" rid="ref8">8</xref>] applied MediaPipe to joint-angle and joint-moment estimation during sit-to-stand transfers, extending single-camera pose estimation to a functional task.</p><p>Multicamera and 3D markerless systems have also been evaluated during functional tasks. Lima et al [<xref ref-type="bibr" rid="ref9">9</xref>] evaluated OpenCap, a multicamera system for 3D kinematic reconstruction, across functional tasks. For single-leg squatting, root mean square error (RMSE) ranged from 2.9&#x00B0; to 13.6&#x00B0; across joint angles. Peak-angle intersession ICCs across joints were 0.60 to 0.92 for single-leg squatting and 0.62 to 0.93 for the jump phase of a countermovement jump. Yoma et al [<xref ref-type="bibr" rid="ref10">10</xref>] reported mean between-day root mean square differences &#x003C;5&#x00B0; and mean ICCs of 0.77 to 0.83 across kinematic variables for Theia3D during single-leg squat and landing tasks, although hip flexion errors exceeded 5&#x00B0;. These findings provide context for single-camera studies, but differences in tasks, populations, and analysis methods limit direct performance comparisons.</p><p>Single-camera markerless measurements can be affected by self-occlusion and out-of-plane motion [<xref ref-type="bibr" rid="ref3">3</xref>]. This study therefore focused on task-dependent agreement, the consistency of the 2D reference annotations, and repeated-session uncertainty. These measurement properties require evaluation before longitudinal or remote uses can be considered.</p><p>To our knowledge, few studies have evaluated an open-source single-camera pose-estimation system across multiple knee-related functional tasks in one cohort while examining complementary measurement properties, including agreement with a clinical instrument and a 2D video reference, interrater agreement of that 2D reference, and exploratory repeated-session performance. The selection and reporting of measurement properties were informed by COSMIN (Consensus-Based Standards for the Selection of Health Measurement Instruments) terminology [<xref ref-type="bibr" rid="ref11">11</xref>].</p></sec><sec id="s1-2"><title>Objectives</title><p>The purpose of this study was to evaluate the MediaPipe BlazePose Heavy model for knee-flexion measurement in healthy young adults. We examined (1) interrater agreement of Kinovea 2D video annotation; (2) static agreement of BlazePose with goniometer-set target flexion across 4 angles; (3) dynamic agreement of BlazePose with Kinovea during squat, sit-to-stand, and bilateral single-leg stance; and (4) exploratory repeated-session agreement of BlazePose, Kinovea, and their between-method differences. We expected performance to vary by task, joint angle, and detection quality. This study did not evaluate absolute 3D kinematic accuracy, clinical populations, or cross-device equivalence.</p></sec></sec><sec id="s2" sec-type="methods"><title>Methods</title><sec id="s2-1"><title>Study Design</title><p>This cross-sectional validation study evaluated agreement of smartphone-based MediaPipe BlazePose knee-flexion estimates with goniometer-set targets for static positions and with Kinovea 2D video annotations by 2 trained raters for dynamic functional tasks. Secondary analyses assessed interrater agreement of the Kinovea annotations and exploratory repeated-session performance in a 4-participant subsample. Kinovea was treated as a 2D reference, not as an absolute biomechanical standard.</p></sec><sec id="s2-2"><title>Participants</title><p>We recruited 15 healthy adults (8 men, 7 women; mean age 20.8, SD 0.6, range 20&#x2010;22 years; mean height 171.1, SD 9.4 cm; mean weight 70.7, SD 15.7 kg; mean BMI 23.9, SD 3.4, range 18.8&#x2010;31.3 kg/m&#x00B2;) via convenience sampling from a university community. Inclusion criteria were age 18 years to 45 years, no current lower-extremity pain, and ability to perform a full-depth squat independently. Exclusion criteria included a history of lower-extremity surgery, current lower-extremity injury, or any musculoskeletal condition limiting knee range of motion. The study was approved by the Academic Ethics and Integrity Review Committee of Shanghai Sanda University (approval number 2026006). All participants provided informed consent prior to data collection. The sample size of 15 was determined by feasibility considerations (participant availability and resource constraints within a single-semester data collection window) rather than an a priori power calculation; this is acknowledged as a limitation, and the achieved precision of ICC estimates is reported via 95% CIs throughout.</p><p>A subset of 4 participants (S01&#x2013;S04) returned for an exploratory second session 21 days to 29 days after their initial session (median 25 d). The second session used the same static and dynamic task protocol. The dataset comprised 15 initial-session datasets plus 4 repeated-session datasets, yielding 342 videos processed through the BlazePose pipeline (228 static and 114 dynamic). The primary cross-sectional static analysis used the 180 Session 1 trials from S01-S15; the 48 Session 2 static trials were reserved for the exploratory repeated-session analysis.</p></sec><sec id="s2-3"><title>Equipment and Setup</title><p>All videos were recorded with the same iPhone 17 Pro rear camera mounted on a tripod in a lateral view at knee height and 2.0 m from the participant. The device was selected because it was available and readily accessible to the research team; using one device throughout kept acquisition hardware constant. Recordings used 1920&#x00D7;1080 H.264 video. Participants S03-S15 and all repeated-session recordings were captured at 60 frames per second (approximately 23 Mbps), whereas S01-S02 were captured at 120 frames per second (approximately 43 Mbps) during the pilot phase. Codec profile, pixel format (yuv420p), and color space (BT.709) were verified with FFprobe. Floor markings standardized participant and camera position. The study did not compare smartphones, lenses, device-specific image processing, or frame rates.</p><p>We placed 3 small reflective markers on each participant&#x2019;s test limb to support manual Kinovea annotation: the greater trochanter (hip), the lateral femoral epicondyle (knee), and the lateral malleolus (ankle). The BlazePose pipeline used MediaPipe&#x2019;s native keypoint detection and did not rely on these external markers. An anterior superior iliac spine marker was placed during some pilot trials but was not used in the final analysis pipeline. Participants wore dark-colored tight-fitting trousers or compression pants and a short-cropped top and were barefoot. The background was a plain pale wall with even lighting and no harsh shadows.</p></sec><sec id="s2-4"><title>Data Collection Protocol</title><sec id="s2-4-1"><title>Static Validation</title><p>For static validation, participants were seated at 4 target knee-flexion angles (30&#x00B0;, 60&#x00B0;, 90&#x00B0;, and 120&#x00B0;). Target positions were set with a digital limb goniometer (GemRed model 82311&#x2010;00; transparent polycarbonate arms; manufacturer-stated resolution 0.1&#x00B0;, accuracy &#x00B1;1&#x00B0;, and range 0&#x00B0;-180&#x00B0;). The fulcrum was placed at the lateral femoral epicondyle, the stationary arm was aligned with the greater trochanter, and the moving arm was aligned with the lateral malleolus. For each of the 3 trials at each target, the goniometer was reapplied, and the angle was reread. The limb was adjusted so that the displayed value, rounded to the nearest degree, equaled the target; floor tape served only as a positional guide. Thus, all recorded integer values equaled their targets after rounding, corresponding to displayed readings within approximately &#x00B1;0.5&#x00B0; of the target at positioning, not exact independent measurements of the recorded posture. Positioning was performed by a physiotherapist (DPT) or a trained student assessor, and a research assistant (Rater B) verified the setup. This check was not an independent criterion measurement. The goniometer was removed before recording, and participants held the position for approximately 5 seconds. The angle was not remeasured after recording. There were 180 Session 1 trials (15 participants &#x00D7; 4 targets &#x00D7; 3 trials) and 48 additional trials from 4 retest participants. The comparison therefore assessed agreement with goniometer-set target positions, not simultaneous criterion validity.</p></sec><sec id="s2-4-2"><title>Dynamic Validation</title><p>We selected 3 functional tasks to represent a range of clinically relevant knee movements and to align with prior markerless motion capture validation literature [<xref ref-type="bibr" rid="ref4">4</xref>,<xref ref-type="bibr" rid="ref12">12</xref>]: squat, sit-to-stand, and single-leg stance.</p><sec id="s2-4-2-1"><title>Squat</title><p>The participants performed 5 consecutive repetitions at a self-selected pace, with feet shoulder-width apart and arms extended forward for balance. This task produced the greatest clinical knee flexion and a clearly identifiable target frame.</p></sec><sec id="s2-4-2-2"><title>Sit-to-Stand</title><p>The participants performed 5 consecutive sit-to-stand transitions from a standard-height chair (approximately 45-cm seat height) at a self-selected pace, with arms extended forward for balance.</p></sec><sec id="s2-4-2-3"><title>Single-Leg Stance</title><p>The participants stood on 1 leg for 15 seconds per trial; 2 trials were performed per leg (left and right), yielding 4 single-leg stance trials per participant. The supporting (standing) leg was the annotated limb for both BlazePose and Kinovea measurements. Beginning with S03, participants were instructed to position the nonstance leg so that it did not occlude the supporting leg in the camera view.</p></sec><sec id="s2-4-2-4"><title>Assessment</title><p>Each participant completed 6 dynamic videos: 1 squat video containing 5 repetitions, 1 sit-to-stand video containing 5 repetitions, and 4 single-leg stance videos. For squat and sit-to-stand, raters identified the frame of maximum clinical knee flexion, equivalent to the minimum native hip-knee-ankle included angle. For single-leg stance, raters selected a steady midstance frame and measured the supporting leg, which remained near full extension (approximately 0&#x00B0;-20&#x00B0; of clinical flexion). This produced 14 target-frame observations per participant (5 squat, 5 sit-to-stand, 2 left single-leg stance, and 2 right single-leg stance) and 210 observations across 15 participants. The right knee was the default measurement side for bilateral squat and sit-to-stand; the supporting limb was measured for each single-leg stance trial.</p></sec></sec></sec><sec id="s2-5"><title>Automated Pose Estimation: MediaPipe BlazePose</title><sec id="s2-5-1"><title>Overview</title><p>All videos were processed using MediaPipe BlazePose [<xref ref-type="bibr" rid="ref13">13</xref>] via the PoseLandmarker Task API (mediapipe 0.10.33, Python 3.9.6) with the Heavy model (pose_landmarker_heavy.task). The model outputs 33 body landmarks per frame. Processing was configured in VIDEO running mode (frame-by-frame with temporal tracking) with a single-pose constraint (num_poses=1) and a default minimum pose-detection confidence of 0.5. All processing was performed on a local workstation (Apple M2 Max).</p><p>For each detected frame, the pipeline first computed the native 2D hip-knee-ankle included angle at the knee from pixel-coordinate vectors. Native-included angles approach 180&#x00B0; at full extension and decrease with flexion. For reporting and all analyses, this value was converted to clinical knee flexion as 180&#x00B0; &#x2212; included angle, so that 0&#x00B0; represents full extension and larger values represent greater flexion. Right-knee landmarks 24, 26, and 28 and left-knee landmarks 23, 25, and 27 were used. Per-frame confidence was defined as the minimum visibility score of the hip, knee, and ankle landmarks. Unless otherwise specified, positive signed error denotes greater clinical flexion from BlazePose than from the comparator.</p></sec><sec id="s2-5-2"><title>Detection Threshold Protocol Deviation</title><p>The default minimum pose detection confidence was 0.5. We reprocessed 5 static videos with insufficient detections at 0.3: S09_static_120deg_2, S10_static_120deg_2, S10_static_30deg_3, S04_retest_static_120deg_2, and S04_retest_static_120deg_3. This threshold reduction was a protocol deviation and was not applied to the remaining videos. The first 3 videos contributed to the Session 1 static analysis, and the latter 2 contributed to paired Session-2 static analyses.</p><p>The primary analyses retained the threshold-rescued videos. Sensitivity analyses repeated the Session 1 static analysis after excluding the 3 affected Session 1 videos and repeated the exploratory static repeated-session analysis after excluding the 2 affected pairs.</p></sec><sec id="s2-5-3"><title>Automated Video-Minimum Extraction (Exploratory Use Only)</title><p>The pipeline also generated one automated video-minimum native-included angle per dynamic recording after excluding values below the implemented 10&#x00B0; anatomical-plausibility bound. This corresponds to the maximum reported clinical flexion after conversion. Raw-peak confidence was the minimum hip, knee, and ankle landmark visibility score at that automated video-minimum frame. These video-level automated minima were not used for the primary time-matched concurrent agreement analysis. They were used only in the exploratory n=24 all-output repeated-session stress test described in the following sections, without a raw-peak confidence gate.</p></sec><sec id="s2-5-4"><title>Confidence-Based Frame Filtering</title><p>For static videos, frames with confidence &#x2265;0.8 contributed to the filtered trial mean. For the primary dynamic BlazePose-versus-Kinovea comparison, the BlazePose clinical flexion value at the Kinovea-selected target time was classified as a detection failure when target frame confidence was &#x003C;0.3. This criterion yielded 33 failures among 210 available observations; the conditional primary agreement analysis used the remaining 177. An all-output sensitivity stress test retained all 210 numeric outputs to characterize performance in the absence of this quality gate; it was not treated as a replacement for the conditional analysis. The target frame cutoff was established during analysis, not prespecified before data analysis. The April 16 interim analysis of S01-S06 included all 84 observations; the April 27 full-sample script introduced the 0.3 cutoff as an operational flag for low-confidence pose estimation failure. No calibration nor documented rationale for the numerical cutoff was available. It was distinct from the 0.3 pose detection parameter used to reprocess 5 static videos. A stricter target frame cutoff of &#x2265;0.5 was also examined as a sensitivity analysis.</p></sec></sec><sec id="s2-6"><title>Kinovea 2D Video Reference</title><p>Two trained raters independently annotated task-specific target frame knee angles using Kinovea 2025.2. Each rater selected maximum clinical knee flexion for squat and sit-to-stand and a steady midstance frame for single-leg stance then digitized the greater trochanter, lateral femoral epicondyle, and lateral malleolus using the reflective markers as guides. The native 2D-included angle was converted to clinical knee flexion as 180&#x00B0; &#x2212; included angle. Kinovea served as a 2D video-analysis reference; it was not assumed to provide absolute 3D joint kinematics.</p><p>Raters were blinded to each other&#x2019;s annotations and to BlazePose output. Their mean clinical flexion angle was used as the Kinovea 2D reference for dynamic agreement, and their mean target frame time stamp was used for BlazePose time matching. High interrater agreement reduces uncertainty from rater inconsistency but does not remove systematic 2D reference error.</p></sec><sec id="s2-7"><title>BlazePose&#x2013;Kinovea Time Matching</title><p>For the primary dynamic comparison, BlazePose was evaluated at the Kinovea-selected target time rather than at BlazePose&#x2019;s automated video minimum. For each of the 210 observations, the mean of the 2 rater time stamps was calculated, and the closest time stamp in the BlazePose per-frame output was selected. The native-included angle at that frame was converted to clinical flexion before analysis. This separates target-time selection by the 2D reference from BlazePose angle estimation at that time.</p></sec><sec id="s2-8"><title>Descriptive Data Quality Grading</title><p>Each of the 342 videos received a descriptive A-D quality assurance grade based on the proportion of frames with confidence &#x2265;0.8: Grade A (&#x2265;80%), Grade B (50%&#x2010;79%), Grade C (20%&#x2010;49%), or Grade D (&#x003C;20%). These trial-level labels did not determine inclusion, weighting, or statistical inference and are not equivalent to target frame detection success. For a post hoc descriptive acquisition sequence summary, participants were grouped as S01-S06, S07-S10, and S11-S15; these groups were used only to describe target frame confidence and failure rates, without inferential testing. Detailed grade and detection quality distributions are reported in Tables S1-S5 in <xref ref-type="supplementary-material" rid="app1">Multimedia Appendix 1</xref> .</p></sec><sec id="s2-9"><title>Statistical Analysis</title><p>The original analyses used Python 3.9.6, pingouin for ICCs, and scipy.stats. The revision-stage participant cluster analyses used Python 3.12.14, NumPy 2.3.5, pandas 2.2.3, and SciPy 1.16.2. ICC<sub>2,1</sub> was recomputed from the same ANOVA formula and verified against the frozen results. Figures were generated using matplotlib.</p><sec id="s2-9-1"><title>Concurrent Validity</title><p>Agreement was summarized using the 2-way random effects, single-measure, absolute agreement ICC, ICC<sub>2,1</sub>. Signed bias and limits of agreement (LoA) used the Bland-Altman framework [<xref ref-type="bibr" rid="ref14">14</xref>]; MAE and RMSE quantified error magnitude. Static bias was BlazePose minus goniometer target clinical flexion, dynamic bias was BlazePose minus Kinovea clinical flexion, and interrater bias was Rater A minus Rater B. Pearson <italic>r</italic> described association not absolute agreement. ICC interpretation followed Koo and Li [<xref ref-type="bibr" rid="ref15">15</xref>].</p><p>Primary cross-sectional inference retained the observation-level ICC and error estimands. We calculated percentile 95% CIs by resampling eligible participants with replacement, retaining all paired observations from each sampled participant (10,000 resamples; master seed 20260923; stable analysis-specific seeds). No trials were sampled independently. Dynamic agreement remained conditional on target frame confidence &#x2265;0.3: Squat and combined single-leg stance each had 15 contributing participants, whereas sit-to-stand had 12. Participants with no retained observations remained in availability denominators. Repeated-measures LoA were calculated as bias &#x00B1;1.96 times the square root of the sum of within- and between-participant variance components, allowing unequal repeats [<xref ref-type="bibr" rid="ref16">16</xref>]. Negative estimated between-participant variance components were set to zero. Bootstrap CIs were also computed separately for bias and each LoA endpoint (Tables S16-S19 in <xref ref-type="supplementary-material" rid="app1">Multimedia Appendix 1</xref>). Task-specific dynamic and angle-specific static results guided interpretation; pooled results are descriptive mixtures. Participant-mean analyses are supplementary and estimate agreement after averaging, not single-observation agreement. Participant-by-task or participant-by-angle cells from the same individual were not treated as independent for primary inference. Four-participant repeated-session results retained unadjusted descriptive intervals and were not used for primary inference.</p><p>For static analysis, the filtered-mean native BlazePose angle was converted to clinical flexion and compared with the goniometer target. Angle-specific results were reported to characterize error across 30&#x00B0;, 60&#x00B0;, 90&#x00B0;, and 120&#x00B0; of target flexion. For dynamic analysis, time-matched BlazePose clinical flexion was compared with the mean Kinovea clinical flexion value. Squat, sit-to-stand, and combined single-leg stance estimates were the main task-level results; side-specific single-leg stance and pooled cross-task estimates were secondary descriptive results.</p></sec><sec id="s2-9-2"><title>Interrater Reliability</title><p>Interrater agreement of the Kinovea 2D annotations was assessed across 210 paired clinical flexion measurements using ICC<sub>2,1</sub>, bias and 95% LoA, MAE, RMSE, and Pearson <italic>r</italic>. Estimates were reported overall and by task. The a priori descriptive benchmark for acceptable interrater ICC was 0.90. Between-task significance tests were not performed because trial-level implementations would not account for repeated observations within participants.</p></sec><sec id="s2-9-3"><title>Exploratory Repeated-Session Analyses</title><p>Four participants (S01-S04) completed a second session after observed intervals of 21 days to 29 days (median 25 d). All repeated-session analyses were exploratory and addressed distinct measurement questions rather than constituting a single reliability claim.</p><p>First, BlazePose repeated-session agreement was evaluated for 48 paired static trial means and, as an all-output stress test, for 24 paired automated video-minimum dynamic values (4 participants &#x00D7; 6 videos). The dynamic estimand used 1 automated video minimum per recording rather than a Kinovea-selected time-matched frame and applied no raw-peak confidence gate; 10 of the 24 pairs had at least one raw-peak confidence value &#x003C;0.3.</p><p>Second, repeated-session agreement of the Kinovea 2D reference was explored using 56 paired task/trial clinical flexion observations (4 participants &#x00D7; 14 observations).</p><p>Third, conditional BlazePose-versus-Kinovea agreement was described for Session 2. The same target-frame confidence criterion used in Session 1 retained 35 of 56 available observations. This 4-participant analysis was not treated as a replication study.</p><p>Fourth, the between-method clinical flexion difference was calculated in each session for 34 observations valid at both sessions. The ICC of these paired differences was used as an exploratory indication of whether the observed between-method offset might be consistent across sessions. Given the 4-participant sample and repeated observations, the estimate was not interpreted as proof of either stability or instability.</p><p>Repeated-session analyses used ICC<sub>2,1</sub>, signed bias and 95% LoA, MAE, and RMSE. The analysis unit for these descriptive calculations was the repeated task/trial observation nested within 4 participants; the F-distribution ICC intervals did not adjust for participant-level clustering. Estimates were therefore presented with their denominators and uncertainty and were not used as headline clinical evidence.</p></sec><sec id="s2-9-4"><title>Interpretation Thresholds</title><p>ICC values were described using the categories from Koo and Li [<xref ref-type="bibr" rid="ref15">15</xref>]: &#x003C;0.50, poor; 0.50&#x2010;0.75, moderate; 0.75&#x2010;0.90, good; and &#x003E;0.90, excellent. Following Langley et al [<xref ref-type="bibr" rid="ref6">6</xref>], &#x00B1;5&#x00B0; for signed mean difference and &#x00B1;10&#x00B0; for LoA were used only as descriptive contextual anchors for those same metrics, not as universal clinical acceptability thresholds. MAE and RMSE were reported as error-magnitude measures without assigning them a universal cutoff. Statistical association and agreement were interpreted separately, and no multiplicity-adjusted confirmatory inference was claimed for exploratory strata.</p></sec></sec><sec id="s2-10"><title>Ethics Approval</title><p>This study was approved by the Academic Ethics and Integrity Review Committee of Shanghai Sanda University (approval number 2026006, April 14, 2026). The study was conducted in accordance with the Declaration of Helsinki. All participants provided informed consent prior to enrollment.</p></sec></sec><sec id="s3" sec-type="results"><title>Results</title><sec id="s3-1"><title>Participants</title><p>The cross-sectional analysis included 15 healthy adults (8 men, 7 women; mean age 20.8, SD 0.6, range 20&#x2010;22 years; mean height 171.1, SD 9.4 cm; mean weight 70.7, SD 15.7 kg; mean BMI 23.9, SD 3.4, range 18.8&#x2010;31.3 kg/m&#x00B2;). All 15 participants completed the full data collection protocol without reported adverse events. Four participants (S01-S04; 2 men, 2 women) returned for the exploratory repeated-session assessment after 21 days to 29 days (median 25 d).</p><p>For the primary cross-sectional analyses, 180 static trials (15 participants &#x00D7; 12 conditions) and 210 dynamic Kinovea-annotated target-frame observations were available.</p><p><xref ref-type="fig" rid="figure1">Figure 1</xref> summarizes the task-specific interrater agreement, angle-specific static signed error, and task-specific conditional dynamic agreement with detection failure rates. Detailed results are presented in <xref ref-type="table" rid="table1">Tables 1&#x2013;5</xref> and <xref ref-type="supplementary-material" rid="app1">Multimedia Appendix 1</xref>.</p><fig position="float" id="figure1"><label>Figure 1.</label><caption><p>Task- and angle-specific measurement results: (A) task-level interrater reliability between Kinovea Raters A and B, with points showing the intraclass correlation coefficient (ICC)<sub>2,1</sub>, horizontal bars showing participant-cluster bootstrap 95% CI, K indicating the number of eligible participants, and n indicating the number of observations; (B) static BlazePose bias relative to goniometer target flexion, with points showing mean bias and error bars showing &#x00B1;1 SD of paired differences not CIs and positive values indicating greater flexion estimated using BlazePose; (C) task-level dynamic agreement with the Kinovea 2D reference, conditional on target-frame BlazePose confidence &#x2265;0.3, with the adjacent column reporting low-confidence outputs using all attempts as denominators. Single-leg stance combines left and right sides. All angles are clinical knee flexion, with 0&#x00B0; at full extension.</p></caption><graphic alt-version="no" mimetype="image" position="float" xlink:type="simple" xlink:href="rehab_v13i1e102399_fig01.png"/></fig><table-wrap id="t1" position="float"><label>Table 1.</label><caption><p>Analysis domains, available and analyzed observations, and independent participants.</p></caption><table id="table1" frame="hsides" rules="groups"><thead><tr><td align="left" valign="bottom">Analysis<sup><xref ref-type="table-fn" rid="table1fn1">a</xref></sup></td><td align="left" valign="bottom">Comparison/estimand</td><td align="left" valign="bottom">Available observations, n</td><td align="left" valign="bottom">Analyzed observations, n</td><td align="left" valign="bottom">Independent participants, n</td><td align="left" valign="bottom">Role</td></tr></thead><tbody><tr><td align="left" valign="top">Static agreement</td><td align="left" valign="top">BlazePose versus goniometer target</td><td align="left" valign="top">180</td><td align="left" valign="top">180</td><td align="left" valign="top">15</td><td align="left" valign="top">Main cross-sectional</td></tr><tr><td align="left" valign="top">Dynamic conditional agreement<sup><xref ref-type="table-fn" rid="table1fn2">b</xref></sup></td><td align="left" valign="top">BlazePose versus Kinovea 2D reference; target-frame confidence &#x2265;0.3</td><td align="left" valign="top">210</td><td align="left" valign="top">177</td><td align="left" valign="top">15 overall; 12&#x2010;15 by task<sup><xref ref-type="table-fn" rid="table1fn3">c</xref></sup></td><td align="left" valign="top">Main cross-sectional; task-specific results lead</td></tr><tr><td align="left" valign="top">Interrater agreement</td><td align="left" valign="top">Kinovea Rater A versus Rater B</td><td align="left" valign="top">210</td><td align="left" valign="top">210</td><td align="left" valign="top">15</td><td align="left" valign="top">Main cross-sectional</td></tr><tr><td align="left" valign="top">BlazePose static repeated-session agreement</td><td align="left" valign="top">Session 1 versus Session 2</td><td align="left" valign="top">48</td><td align="left" valign="top">48</td><td align="left" valign="top">4</td><td align="left" valign="top">Exploratory</td></tr><tr><td align="left" valign="top">BlazePose dynamic video-minimum stress test<sup><xref ref-type="table-fn" rid="table1fn4">d</xref></sup></td><td align="left" valign="top">Session 1 versus Session 2; automated video minimum, no confidence gate</td><td align="left" valign="top">24</td><td align="left" valign="top">24</td><td align="left" valign="top">4</td><td align="left" valign="top">Exploratory stress test</td></tr><tr><td align="left" valign="top">Kinovea repeated-session agreement</td><td align="left" valign="top">Session 1 versus Session 2</td><td align="left" valign="top">56</td><td align="left" valign="top">56</td><td align="left" valign="top">4</td><td align="left" valign="top">Exploratory</td></tr><tr><td align="left" valign="top">Session 2 conditional agreement<sup><xref ref-type="table-fn" rid="table1fn5">e</xref></sup></td><td align="left" valign="top">BlazePose versus Kinovea 2D reference</td><td align="left" valign="top">56</td><td align="left" valign="top">35</td><td align="left" valign="top">4</td><td align="left" valign="top">Exploratory</td></tr><tr><td align="left" valign="top">Between-method difference across sessions</td><td align="left" valign="top">Session 1 versus Session 2 between-method differences</td><td align="left" valign="top">56</td><td align="left" valign="top">34 valid in both sessions</td><td align="left" valign="top">4</td><td align="left" valign="top">Exploratory</td></tr></tbody></table><table-wrap-foot><fn id="table1fn1"><p><sup>a</sup>Confidence interval and repeated measures LoA methods for cross-sectional analyses are described in the Statistical Analysis section and Tables S16-S19 in <xref ref-type="supplementary-material" rid="app1">Multimedia Appendix 1</xref>.</p></fn><fn id="table1fn2"><p><sup>b</sup>Excluded 33 of the 210 target-frame observations with BlazePose confidence &#x003C;0.3 and reported them separately as detection failures. </p></fn><fn id="table1fn3"><p><sup>c</sup>Primary dynamic cluster counts are 15 for squat, 12 for sit-to-stand, and 15 for combined single-leg stance.</p></fn><fn id="table1fn4"><p><sup>d</sup>All-output automated video-minimum stress test; 10 of 24 pairs had at least one raw-peak confidence value &#x003C;0.3. </p></fn><fn id="table1fn5"><p><sup>e</sup>Retained 35 of the 56 observations. </p></fn></table-wrap-foot></table-wrap><table-wrap id="t2" position="float"><label>Table 2.</label><caption><p>Interrater agreement of Kinovea 2D clinical knee-flexion annotations (n=210), with all angles representing clinical knee flexion (0&#x00B0; at full extension).</p></caption><table id="table2" frame="hsides" rules="groups"><thead><tr><td align="left" valign="bottom">Task</td><td align="left" valign="bottom">Observations, n</td><td align="left" valign="bottom">Bias<sup><xref ref-type="table-fn" rid="table2fn1">a</xref></sup></td><td align="left" valign="bottom">95% LoA<sup><xref ref-type="table-fn" rid="table2fn2">b</xref></sup><sup>,</sup><sup><xref ref-type="table-fn" rid="table2fn3">c</xref></sup></td><td align="left" valign="bottom">MAE<sup><xref ref-type="table-fn" rid="table2fn4">d</xref></sup></td><td align="left" valign="bottom">RMSE<sup><xref ref-type="table-fn" rid="table2fn5">e</xref></sup></td><td align="left" valign="bottom">Pearson <italic>r</italic><sup><xref ref-type="table-fn" rid="table2fn6">f</xref></sup></td><td align="left" valign="bottom">ICC<sup><xref ref-type="table-fn" rid="table2fn7">g</xref></sup><sup>,</sup><sup><xref ref-type="table-fn" rid="table2fn8">h</xref></sup><sub>2,1</sub> (95% CI<sup><xref ref-type="table-fn" rid="table2fn9">i</xref></sup>)</td></tr></thead><tbody><tr><td align="left" valign="top">Overall<sup><xref ref-type="table-fn" rid="table2fn10">j</xref></sup></td><td align="left" valign="top">210</td><td align="left" valign="top">+1.15&#x00B0;</td><td align="left" valign="top">&#x2212;3.51&#x00B0; to +5.81&#x00B0;</td><td align="left" valign="top">1.56&#x00B0;</td><td align="left" valign="top">2.62&#x00B0;</td><td align="left" valign="top">0.999</td><td align="left" valign="top">0.999 (0.998 to 0.999)</td></tr><tr><td align="left" valign="top">Squat</td><td align="left" valign="top">75</td><td align="left" valign="top">+0.09&#x00B0;</td><td align="left" valign="top">&#x2212;1.25&#x00B0; to +1.43&#x00B0;</td><td align="left" valign="top">0.39&#x00B0;</td><td align="left" valign="top">0.68&#x00B0;</td><td align="left" valign="top">0.999</td><td align="left" valign="top">0.999 (0.997 to 0.999)</td></tr><tr><td align="left" valign="top">Sit-to-stand</td><td align="left" valign="top">75</td><td align="left" valign="top">+2.65&#x00B0;</td><td align="left" valign="top">&#x2212;3.78&#x00B0; to +9.08&#x00B0;</td><td align="left" valign="top">3.13&#x00B0;</td><td align="left" valign="top">4.16&#x00B0;</td><td align="left" valign="top">0.936</td><td align="left" valign="top">0.885 (0.804 to 0.918)</td></tr><tr><td align="left" valign="top">Single-leg stance</td><td align="left" valign="top">60</td><td align="left" valign="top">+0.58&#x00B0;</td><td align="left" valign="top">&#x2212;1.88&#x00B0; to +3.05&#x00B0;</td><td align="left" valign="top">1.05&#x00B0;</td><td align="left" valign="top">1.37&#x00B0;</td><td align="left" valign="top">0.977</td><td align="left" valign="top">0.973 (0.946 to 0.984)</td></tr></tbody></table><table-wrap-foot><fn id="table2fn1"><p><sup>a</sup>Bias: Kinovea Rater A clinical flexion&#x2212;Rater B clinical flexion. </p></fn><fn id="table2fn2"><p><sup>b</sup>LoA: limits of agreement.</p></fn><fn id="table2fn3"><p><sup>c</sup>LoA use repeated-measures variance components; endpoint CIs are in Table S17 in <xref ref-type="supplementary-material" rid="app1">Multimedia Appendix 1</xref>.</p></fn><fn id="table2fn4"><p><sup>d</sup>MAE: mean absolute error.</p></fn><fn id="table2fn5"><p><sup>e</sup>RMSE: root mean square error.</p></fn><fn id="table2fn6"><p><sup>f</sup>Describes the association, not absolute agreement.</p></fn><fn id="table2fn7"><p><sup>g</sup>ICC: intraclass correlation coefficient.</p></fn><fn id="table2fn8"><p><sup>h</sup>2-way random-effects, single-measure, absolute-agreement ICC. </p></fn><fn id="table2fn9"><p><sup>i</sup>ICC CIs use participant-cluster bootstrapping (15 participants per row).  </p></fn><fn id="table2fn10"><p><sup>j</sup>Secondary descriptive cross-task summary.</p></fn></table-wrap-foot></table-wrap><table-wrap id="t3" position="float"><label>Table 3.</label><caption><p>Static agreement of BlazePose clinical knee flexion with goniometer target flexion (n=180; S01-S15).</p></caption><table id="table3" frame="hsides" rules="groups"><thead><tr><td align="left" valign="bottom">Target flexion</td><td align="left" valign="bottom">Observations, n</td><td align="left" valign="bottom">Bias<sup><xref ref-type="table-fn" rid="table3fn1">a</xref></sup></td><td align="left" valign="bottom">95% LoA<sup><xref ref-type="table-fn" rid="table3fn2">b</xref></sup><sup>,</sup><sup><xref ref-type="table-fn" rid="table3fn3">c</xref></sup><sup>,</sup><sup><xref ref-type="table-fn" rid="table3fn4">d</xref></sup></td><td align="left" valign="bottom">MAE<sup><xref ref-type="table-fn" rid="table3fn5">e</xref></sup></td><td align="left" valign="bottom">RMSE<sup><xref ref-type="table-fn" rid="table3fn6">f</xref></sup></td><td align="left" valign="bottom">SD(diff)<sup><xref ref-type="table-fn" rid="table3fn7">g</xref></sup></td><td align="left" valign="bottom">SEM<sup><xref ref-type="table-fn" rid="table3fn8">h</xref></sup><sup>,</sup><sup><xref ref-type="table-fn" rid="table3fn9">i</xref></sup><sup>,</sup><sup><xref ref-type="table-fn" rid="table3fn7">g</xref></sup></td></tr></thead><tbody><tr><td align="left" valign="top">Overall<sup><xref ref-type="table-fn" rid="table3fn10">j</xref></sup><sup>,</sup><sup><xref ref-type="table-fn" rid="table3fn11">k</xref></sup></td><td align="left" valign="top">180</td><td align="left" valign="top">+1.51&#x00B0;<sup><xref ref-type="table-fn" rid="table3fn12">l</xref></sup></td><td align="left" valign="top">&#x2212;28.85&#x00B0; to +31.87&#x00B0;</td><td align="left" valign="top">10.01&#x00B0;</td><td align="left" valign="top">15.49&#x00B0;</td><td align="left" valign="top">15.46&#x00B0;</td><td align="left" valign="top">10.93&#x00B0;</td></tr><tr><td align="left" valign="top">30&#x00B0;</td><td align="left" valign="top">45</td><td align="left" valign="top">+11.11&#x00B0;</td><td align="left" valign="top">&#x2212;1.73&#x00B0; to +23.94&#x00B0;</td><td align="left" valign="top">11.15&#x00B0;</td><td align="left" valign="top">12.79&#x00B0;</td><td align="left" valign="top">6.41&#x00B0;</td><td align="left" valign="top">4.53&#x00B0;</td></tr><tr><td align="left" valign="top">60&#x00B0;</td><td align="left" valign="top">45</td><td align="left" valign="top">+10.18&#x00B0;</td><td align="left" valign="top">&#x2212;2.66&#x00B0; to +23.03&#x00B0;</td><td align="left" valign="top">10.82&#x00B0;</td><td align="left" valign="top">11.99&#x00B0;</td><td align="left" valign="top">6.40&#x00B0;</td><td align="left" valign="top">4.53&#x00B0;</td></tr><tr><td align="left" valign="top">90&#x00B0;</td><td align="left" valign="top">45</td><td align="left" valign="top">&#x2212;4.64&#x00B0;</td><td align="left" valign="top">&#x2212;39.36&#x00B0; to +30.07&#x00B0;</td><td align="left" valign="top">7.45&#x00B0;</td><td align="left" valign="top">18.02&#x00B0;</td><td align="left" valign="top">17.60&#x00B0;</td><td align="left" valign="top">12.45&#x00B0;</td></tr><tr><td align="left" valign="top">120&#x00B0;</td><td align="left" valign="top">45</td><td align="left" valign="top">&#x2212;10.60&#x00B0;</td><td align="left" valign="top">&#x2212;39.71&#x00B0; to +18.50&#x00B0;</td><td align="left" valign="top">10.60&#x00B0;</td><td align="left" valign="top">18.10&#x00B0;</td><td align="left" valign="top">14.84&#x00B0;</td><td align="left" valign="top">10.49&#x00B0;</td></tr></tbody></table><table-wrap-foot><fn id="table3fn1"><p><sup>a</sup>Bias: BlazePose clinical flexion&#x2212;goniometer target flexion. </p></fn><fn id="table3fn2"><p><sup>b</sup>LoA: limits of agreement.</p></fn><fn id="table3fn3"><p><sup>c</sup>LoA endpoint CIs are in Table S17 in <xref ref-type="supplementary-material" rid="app1">Multimedia Appendix 1</xref>.</p></fn><fn id="table3fn4"><p><sup>d</sup>LoA use repeated-measures variance components (15 participants per row). </p></fn><fn id="table3fn5"><p><sup>e</sup>MAE: mean absolute error.</p></fn><fn id="table3fn6"><p><sup>f</sup>RMSE: root mean square error.</p></fn><fn id="table3fn7"><p><sup>g</sup>SD(diff) and SEM remain descriptive trial-level summaries.</p></fn><fn id="table3fn8"><p><sup>h</sup>SEM: standard error of measurement.</p></fn><fn id="table3fn9"><p><sup>i</sup>SEM =SD(diff)/&#x221A;2.</p></fn><fn id="table3fn10"><p><sup>j</sup>Overall ICC<sub>2,1</sub>=0.874 (95% CI 0.770 to 0.953). </p></fn><fn id="table3fn11"><p><sup>k</sup>The ICC CI uses participant-cluster bootstrapping.</p></fn><fn id="table3fn12"><p><sup>l</sup>Overall pooled bias is descriptive because angle-specific errors reverse direction.</p></fn></table-wrap-foot></table-wrap><table-wrap id="t4" position="float"><label>Table 4.</label><caption><p>Conditional agreement of BlazePose with the Kinovea 2D clinical flexion reference at target frames with BlazePose confidence &#x2265;0.3, with all values reflecting clinical knee flexion.</p></caption><table id="table4" frame="hsides" rules="groups"><thead><tr><td align="left" valign="bottom">Task</td><td align="left" valign="bottom">Retained observations, n</td><td align="left" valign="bottom">Available observations, n</td><td align="left" valign="bottom">Failures from the available observations, n (%)</td><td align="left" valign="bottom">Bias<sup><xref ref-type="table-fn" rid="table4fn1">a</xref></sup> (95% LoA<sup><xref ref-type="table-fn" rid="table4fn2">b</xref></sup><sup>,</sup><sup><xref ref-type="table-fn" rid="table4fn3">c</xref></sup>)<sup><xref ref-type="table-fn" rid="table4fn4">d</xref></sup></td><td align="left" valign="bottom">MAE<sup><xref ref-type="table-fn" rid="table4fn5">e</xref></sup></td><td align="left" valign="bottom">RMSE<sup><xref ref-type="table-fn" rid="table4fn6">f</xref></sup></td><td align="left" valign="bottom">Pearson <italic>r</italic><sup><xref ref-type="table-fn" rid="table4fn7">g</xref></sup></td><td align="left" valign="bottom">ICC<sup><xref ref-type="table-fn" rid="table4fn8">h</xref></sup><sub>2,1</sub> (95% CI<sup><xref ref-type="table-fn" rid="table4fn9">i</xref></sup>)</td></tr></thead><tbody><tr><td align="left" valign="top">Squat (n=15 participants)</td><td align="left" valign="top">71</td><td align="char" char="." valign="top">75</td><td align="left" valign="top">4 (5)</td><td align="left" valign="top">+6.17&#x00B0; (&#x2212;6.45&#x00B0; to +18.78&#x00B0;)</td><td align="left" valign="top">7.10&#x00B0;</td><td align="left" valign="top">8.78&#x00B0;</td><td align="left" valign="top">0.885</td><td align="left" valign="top">0.773 (0.564 to 0.875)</td></tr><tr><td align="left" valign="top">Sit-to-stand (n=12 participants)</td><td align="left" valign="top">58</td><td align="char" char="." valign="top">75</td><td align="left" valign="top">17 (23)</td><td align="left" valign="top">+6.43&#x00B0; (&#x2212;1.82&#x00B0; to +14.67&#x00B0;)</td><td align="left" valign="top">6.68&#x00B0;</td><td align="left" valign="top">7.59&#x00B0;</td><td align="left" valign="top">0.896</td><td align="left" valign="top">0.632 (0.455 to 0.726)</td></tr><tr><td align="left" valign="top">Single-leg stance, both legs combined (n=15 participants)</td><td align="left" valign="top">48</td><td align="char" char="." valign="top">60</td><td align="left" valign="top">12 (20)</td><td align="left" valign="top">+2.01&#x00B0; (&#x2212;23.42&#x00B0; to +27.44&#x00B0;)</td><td align="left" valign="top">7.51&#x00B0;</td><td align="left" valign="top">12.88&#x00B0;</td><td align="left" valign="top">0.173</td><td align="left" valign="top">0.136 (&#x2212;0.078 to 0.482)</td></tr><tr><td align="left" valign="top">Overall, secondary descriptive (n=15 participants)</td><td align="left" valign="top">177</td><td align="char" char="." valign="top">210</td><td align="left" valign="top">33 (15.7)</td><td align="left" valign="top">+5.12&#x00B0;<sup><xref ref-type="table-fn" rid="table4fn10">j</xref></sup> (&#x2212;11.30&#x00B0; to +21.55&#x00B0;)</td><td align="left" valign="top">7.07&#x00B0;</td><td align="left" valign="top">9.73&#x00B0;</td><td align="left" valign="top">0.987</td><td align="left" valign="top">0.982 (0.967 to 0.992)</td></tr></tbody></table><table-wrap-foot><fn id="table4fn1"><p><sup>a</sup>Bias: BlazePose&#x2212;Kinovea 2D reference; positive values indicate greater flexion from BlazePose. </p></fn><fn id="table4fn2"><p><sup>b</sup>LoA: limits of agreement.</p></fn><fn id="table4fn3"><p><sup>c</sup>LoA use repeated-measures variance components.</p></fn><fn id="table4fn4"><p><sup>d</sup>Bias and LoA endpoint CIs are in Tables S16-S19 in <xref ref-type="supplementary-material" rid="app1">Multimedia Appendix 1</xref>.</p></fn><fn id="table4fn5"><p><sup>e</sup>MAE: mean absolute error.</p></fn><fn id="table4fn6"><p><sup>f</sup>RMSE: root mean square error.</p></fn><fn id="table4fn7"><p><sup>g</sup>Describes an association, not absolute agreement. </p></fn><fn id="table4fn8"><p><sup>h</sup>ICC: intraclass correlation coefficient.</p></fn><fn id="table4fn9"><p><sup>i</sup>ICC CIs use participant-cluster bootstrapping.</p></fn><fn id="table4fn10"><p><sup>j</sup>The overall pooled ICC is range-sensitive and is not a headline result. </p></fn></table-wrap-foot></table-wrap><table-wrap id="t5" position="float"><label>Table 5.</label><caption><p>Exploratory repeated-session analyses with 4 participants (S01-S04; observed interval 21&#x2010;29 d, median 25 d); pooled estimates may be influenced by between-task or between-angle range and are not headline clinical evidence.</p></caption><table id="table5" frame="hsides" rules="groups"><thead><tr><td align="left" valign="bottom">Exploratory analysis</td><td align="left" valign="bottom">Observations, n</td><td align="left" valign="bottom">Bias definition</td><td align="left" valign="bottom">Bias (95% LoA<sup><xref ref-type="table-fn" rid="table5fn1">a</xref></sup>)</td><td align="left" valign="bottom">MAE<sup><xref ref-type="table-fn" rid="table5fn2">b</xref></sup></td><td align="left" valign="bottom">RMSE<sup><xref ref-type="table-fn" rid="table5fn3">c</xref></sup></td><td align="left" valign="bottom">ICC<sup><xref ref-type="table-fn" rid="table5fn4">d</xref></sup><sub>2,1</sub> (95% CI)<sup><xref ref-type="table-fn" rid="table5fn5">e</xref></sup></td></tr></thead><tbody><tr><td align="left" valign="top">BlazePose static, Session 1 versus Session 2</td><td align="left" valign="top">48</td><td align="left" valign="top">Session 2&#x2212;Session 1</td><td align="left" valign="top">&#x2212;7.30&#x00B0; (&#x2212;42.65&#x00B0; to +28.04&#x00B0;)</td><td align="left" valign="top">10.32&#x00B0;</td><td align="left" valign="top">19.28&#x00B0;</td><td align="left" valign="top">0.782<sup><xref ref-type="table-fn" rid="table5fn6">f</xref></sup> (0.617 to 0.877)</td></tr><tr><td align="left" valign="top">BlazePose dynamic automated video-minimum stress test<sup><xref ref-type="table-fn" rid="table5fn7">g</xref></sup></td><td align="left" valign="top">24</td><td align="left" valign="top">Session 2&#x2212;Session 1</td><td align="left" valign="top">+18.92&#x00B0; (&#x2212;82.04&#x00B0; to +119.89&#x00B0;)</td><td align="left" valign="top">34.71&#x00B0;</td><td align="left" valign="top">53.86&#x00B0;</td><td align="left" valign="top">0.522 (0.174 to 0.757)</td></tr><tr><td align="left" valign="top">Kinovea 2D reference, Session 1 versus Session 2</td><td align="left" valign="top">56</td><td align="left" valign="top">Session 2&#x2212;Session 1</td><td align="left" valign="top">+1.19&#x00B0; (&#x2212;12.05&#x00B0; to +14.42&#x00B0;)</td><td align="left" valign="top">5.63&#x00B0;</td><td align="left" valign="top">6.80&#x00B0;</td><td align="left" valign="top">0.991 (0.985 to 0.995)</td></tr><tr><td align="left" valign="top">BlazePose versus Kinovea, Session 2 conditional</td><td align="left" valign="top">35</td><td align="left" valign="top">BlazePose&#x2212;Kinovea</td><td align="left" valign="top">+8.10&#x00B0; (&#x2212;14.69&#x00B0; to +30.89&#x00B0;)</td><td align="left" valign="top">8.95&#x00B0;</td><td align="left" valign="top">14.03&#x00B0;</td><td align="left" valign="top">0.969 (0.889 to 0.988)</td></tr><tr><td align="left" valign="top">Between-method difference, Session 1 versus Session 2</td><td align="left" valign="top">34</td><td align="left" valign="top">Session 2 difference&#x2212;Session 1 difference</td><td align="left" valign="top">+2.45&#x00B0; (&#x2212;14.01&#x00B0; to +18.91&#x00B0;)</td><td align="left" valign="top">5.19&#x00B0;</td><td align="left" valign="top">8.63&#x00B0;</td><td align="left" valign="top">0.094 (&#x2212;0.225 to 0.405)</td></tr></tbody></table><table-wrap-foot><fn id="table5fn1"><p><sup>a</sup>LoA: limits of agreement.</p></fn><fn id="table5fn2"><p><sup>b</sup>MAE: mean absolute error.</p></fn><fn id="table5fn3"><p><sup>c</sup>RMSE: root mean square error.</p></fn><fn id="table5fn4"><p><sup>d</sup>ICC: intraclass correlation coefficient.</p></fn><fn id="table5fn5"><p><sup>e</sup>Do not adjust for participant-level clustering. </p></fn><fn id="table5fn6"><p><sup>f</sup>Excluding the 2 retest threshold-rescued static pairs changed the static repeated-session ICC from 0.782 to 0.766.</p></fn><fn id="table5fn7"><p><sup>g</sup>Uses 1 automated video minimum per recording, applies no raw-peak confidence gate, and includes 10 of 24 pairs with at least one raw-peak confidence value &#x003C;0.3.  </p></fn></table-wrap-foot></table-wrap></sec><sec id="s3-2"><title>Interrater Agreement of Kinovea 2D Annotations</title><p>Overall interrater agreement for the Kinovea 2D clinical flexion annotations was high (ICC<sub>2,1</sub>=0.999, cluster-bootstrap 95% CI 0.998 to 0.999; MAE=1.56&#x00B0;; n=210 observations from 15 participants; <xref ref-type="table" rid="table2">Table 2</xref>; <xref ref-type="fig" rid="figure2">Figure 2C</xref>). This indicates consistent annotation between these 2 raters but does not establish absolute accuracy against 3D kinematics.</p><fig position="float" id="figure2"><label>Figure 2.</label><caption><p>Bland-Altman plots using clinical knee flexion angles and showing the mean of paired angles on the x axis and the first-named measurement minus the second on the y axis, with positive differences indicating greater flexion from the first measurement: (A) BlazePose versus goniometer-set targets (n=180, 15 participants; bias +1.51&#x00B0;; 95% limits of agreement [LoA] &#x2013;28.85&#x00B0; to +31.87&#x00B0;), with 4 observations &#x003C;&#x2212;45&#x00B0; shown across a broken y axis and included in all calculations; (B) BlazePose versus Kinovea 2D reference among outputs with target-frame confidence &#x2265;0.3 (n=177, 15 participants overall; bias +5.12&#x00B0;; 95% LoA &#x2013;11.30&#x00B0; to +21.55&#x00B0;); (C) Kinovea Rater A versus Rater B (n=210, 15 participants; bias +1.15&#x00B0;; 95% LoA &#x2013;3.51&#x00B0; to +5.81&#x00B0;). The solid dark line is the mean bias, the dashed lines are repeated-measures 95% LoA from within- and between-participant variance components, and the dotted line is zero. These limits are not CIs; CIs for their endpoints are in Table S17 in <xref ref-type="supplementary-material" rid="app1">Multimedia Appendix 1</xref>. Points are repeated observations. Pooled lines summarize mixtures of angles or tasks; they do not imply constant bias or uniform coverage across those conditions. Angle- and task-specific limits guide interpretation (<xref ref-type="table" rid="table2">Tables 2&#x2013;4</xref>).</p></caption><graphic alt-version="no" mimetype="image" position="float" xlink:type="simple" xlink:href="rehab_v13i1e102399_fig02.png"/></fig><p>Task-specific ICCs were 0.999 for squat, 0.885 for sit-to-stand, and 0.973 for single-leg stance. The sit-to-stand point estimate of 0.885 was less than the a priori descriptive benchmark of 0.90, and its cluster-bootstrap 95% CI was 0.804 to 0.918. Sit-to-stand had the largest interrater MAE (3.13&#x00B0;) and a clinical-flexion bias of +2.65&#x00B0; for Rater A minus Rater B. The lower sit-to-stand ICC may reflect the more gradual transition around peak flexion, which makes the selection of a single target frame less distinct than in squat; this is a plausible explanation rather than a demonstrated mechanism.</p></sec><sec id="s3-3"><title>Static Agreement With Goniometer-Set Targets</title><p>Across 180 static observations from 15 participants, ICC<sub>2,1</sub> was 0.874 (cluster-bootstrap 95% CI 0.770 to 0.953), MAE was 10.01&#x00B0;, and RMSE was 15.49&#x00B0; (<xref ref-type="table" rid="table3">Table 3</xref>; <xref ref-type="fig" rid="figure2">Figure 2A</xref>). These differences include uncertainty in target positioning and holding as well as BlazePose estimation and are reported without a universal clinical acceptability cutoff.</p><p>Signed error varied by target angle. BlazePose overestimated clinical flexion at 30&#x00B0; (+11.11&#x00B0;) and 60&#x00B0; (+10.18&#x00B0;) and underestimated it at 90&#x00B0; (&#x2212;4.64&#x00B0;) and 120&#x00B0; (&#x2212;10.60&#x00B0;). Dispersion was substantially wider at 90&#x00B0; and 120&#x00B0; than at 30&#x00B0; and 60&#x00B0;. This range compression did not support a single fixed correction across the tested angles and did not identify one causal mechanism.</p><p>Excluding the 3 static Session 1 videos reprocessed at the lower pose detection threshold changed static ICC from 0.874 to 0.870 and RMSE from 15.49&#x00B0; to 15.58&#x00B0;. This sensitivity analysis quantifies the effect of the protocol deviation; full results are reported in <xref ref-type="supplementary-material" rid="app1">Multimedia Appendix 1</xref> (Table S14).</p></sec><sec id="s3-4"><title>Dynamic Conditional Agreement With the Kinovea 2D Reference</title><p>Dynamic measurement was available for 177 of 210 (84.3%) observations. The remaining 33 of 210 (15.7%) observations had target-frame confidence &#x003C;0.3. Availability reached 71 of 75 (95%) observations for squat, 58 of 75 (77%) observations for sit-to-stand, and 48 of 60 (80%) observations for combined single-leg stance. Failures occurred for 5 of 30 (17%) observations on the left and 7 of 30 (23%) observations on the right. Participant counts and distributions are reported in Tables S1 and S5 in <xref ref-type="supplementary-material" rid="app1">Multimedia Appendix 1</xref>.</p><p>Failures were concentrated in S10 (11/14, 79%), S13 (6/14, 43%), and S12 (5/14, 36%). Kinovea flexion medians for failed versus retained observations were 113.2&#x00B0; versus 131.0&#x00B0; for squat, 89.0&#x00B0; versus 81.0&#x00B0; for sit-to-stand, and 10.2&#x00B0; versus 8.8&#x00B0; for combined single-leg stance. These are descriptive contrasts not evidence of why detection failed; only 4 squat observations failed. Quartiles, ranges, and participant counts are in Table S5 in <xref ref-type="supplementary-material" rid="app1">Multimedia Appendix 1</xref>.</p><p>Detection performance also varied by acquisition group. Target-frame median confidence and failures were 0.939 and 2 of 84 (2%) observations, respectively, for S01-S06; 0.643 and 14 of 56 (25%) observations, respectively, for S07-S10; and 0.694 and 17 of 70 (24%) observations, respectively, for S11-S15. No recorded device nor encoding variable changed uniquely at S07 or aligned with the persistent later-group decrease; the known 120-to-60 frames-per-second change occurred earlier, between S02 and S03. Because lighting, exact camera geometry, exposure and focus, attire, and background were incompletely recorded, the cause remains unresolved.</p><p>Task-specific ICCs were 0.773 (95% CI 0.564 to 0.875; n=71, 15 participants) for squat, 0.632 (95% CI 0.455 to 0.726; n=58, 12 participants) for sit-to-stand, and 0.136 (95% CI &#x2212;0.078 to 0.482; n=48, 15 participants) for combined single-leg stance (<xref ref-type="table" rid="table4">Table 4</xref>). Squat and sit-to-stand had high Pearson correlations (<italic>r</italic>=0.885 and <italic>r</italic>=0.896), but their absolute-agreement ICC point estimates were good and moderate, respectively. BlazePose overestimated clinical flexion by +6.17&#x00B0; and +6.43&#x00B0;, respectively. The restricted near-extension range in single-leg stance reduced between-participant variance and made the ICC sensitive to modest error; occlusion, out-of-plane rotation, perspective shortening, side selection, and landmark localization are additional plausible contributors.</p><p>Across 177 retained observations, the pooled cross-task ICC was 0.982 (cluster-bootstrap 95% CI 0.967 to 0.992), with bias +5.12&#x00B0; and repeated-measures LoA &#x2212;11.30&#x00B0; to +21.55&#x00B0; (<xref ref-type="fig" rid="figure2">Figure 2B</xref>). This is a secondary descriptive mixture because between-task angle range inflates between-observation variance; it does not imply uniform agreement across tasks.</p><p>Participant mean results are provided in Table S18 in <xref ref-type="supplementary-material" rid="app1">Multimedia Appendix 1</xref>. These compare the average retained measurements per person and task, not individual observations. The numbers averaged varied because of detection failures. Earlier exploratory participant-by-task summaries in Tables S10-S11 in <xref ref-type="supplementary-material" rid="app1">Multimedia Appendix 1</xref> are retained with their distinct units and unadjusted intervals explicitly identified.</p><p>In the all-output stress test, retaining all 210 numeric outputs produced the largest deterioration for squat, for which the ICC decreased from 0.773 to 0.428 and RMSE increased from 8.78&#x00B0; to 25.43&#x00B0;. The sit-to-stand ICC decreased from 0.632 to 0.596, and the combined single-leg stance ICC decreased from 0.136 to 0.119. The pooled ICC decreased from 0.982 to 0.942. These estimates characterize performance without the quality gate and do not replace the conditional primary analysis.</p><p>At the stricter target-frame threshold of &#x2265;0.5, availability was 158 of 210 (75.2%) observations; task-specific ICCs were 0.770 (n=70) for squat, 0.670 (n=50) for sit-to-stand, and 0.204 (n=38) for combined single-leg stance (Table S15 in <xref ref-type="supplementary-material" rid="app1">Multimedia Appendix 1</xref>). This sensitivity analysis describes the availability-agreement tradeoff and does not establish an optimal threshold.</p></sec><sec id="s3-5"><title>Exploratory Repeated-Session Findings</title><sec id="s3-5-1"><title>Kinovea 2D Reference Across Sessions</title><p>Across the 56 repeated task/trial observations collected 21 days to 29 days apart, the pooled Kinovea repeated-session ICC was 0.991 (95% CI 0.985 to 0.995), with an MAE of 5.63&#x00B0; (<xref ref-type="table" rid="table5">Table 5</xref>). This pooled value reflects the wide range across tasks and repeated observations of only 4 participants. These 4-participant repeated-session data were insufficient to determine whether Kinovea agreement differed by task.</p></sec><sec id="s3-5-2"><title>BlazePose Across Sessions</title><p>Static repeated-session agreement was an ICC of 0.782 (95% CI 0.617 to 0.877; n=48), with Session 2-minus-Session 1 clinical-flexion bias of &#x2212;7.30&#x00B0; and a wide LoA (&#x2212;42.65&#x00B0; to +28.04&#x00B0;). The dynamic all-output automated video-minimum stress test yielded an ICC of 0.522 (95% CI 0.174 to 0.757; n=24), an MAE of 34.71&#x00B0;, and an LoA of &#x2212;82.04&#x00B0; to +119.89&#x00B0;. At least one raw-peak confidence value &#x003C;0.3 was present for 10 of the 24 dynamic pairs. These values describe an ungated stress test of repeated automated video minima for 4 participants, not time-matched repeated-session validity.</p></sec><sec id="s3-5-3"><title>Session 2 Conditional Agreement</title><p>In Session 2, 21 of the 56 target-frame observations failed the confidence criterion, leaving 35 for conditional agreement analysis. The pooled cross-task ICC among retained observations was 0.969 (95% CI 0.889 to 0.988), with a bias of +8.10&#x00B0; and an MAE of 8.95&#x00B0;. Because this estimate pools tasks and derives from 4 participants after substantial selection, it is presented as an exploratory descriptive result rather than evidence that Session 1 performance was replicated.</p></sec><sec id="s3-5-4"><title>Between-Method Difference Across Sessions</title><p>Among 34 observations valid in both sessions, the ICC for the paired BlazePose-minus-Kinovea clinical-flexion differences was 0.094 (95% CI &#x2212;0.225 to 0.405). This wide interval from 4 participants is insufficient to support a stable fixed-offset assumption; it is also insufficient to establish that bias instability is a general property of the method. Larger repeated-session samples are required before calibration or longitudinal change interpretations can be evaluated.</p></sec></sec><sec id="s3-6"><title>Data Quality and Detection Reproducibility</title><p>Across all 342 videos, the descriptive quality-grade distribution was Grade A, 164/342 (48%); Grade B, 21/342 (6.1%); Grade C, 31/342 (9.1%); and Grade D, 126/342 (36.8%; Table S4 in <xref ref-type="supplementary-material" rid="app1">Multimedia Appendix 1</xref>). These video-level quality assurance labels did not determine target-frame inclusion, weighting, or statistical inference and are not measures of target-frame detection success.</p><p>Detailed detection quality, retest, subject mean, and sensitivity results are provided in <xref ref-type="supplementary-material" rid="app1">Multimedia Appendix 1</xref>.</p></sec></sec><sec id="s4" sec-type="discussion"><title>Discussion</title><sec id="s4-1"><title>Principal Findings</title><p>Agreement of single-camera BlazePose knee-flexion estimates with the study references depended on task, flexion angle, and detection quality. With measurement availability of 177 of 210 observations (84.3%), task-specific conditional ICC point estimates ranged from good for squat to poor for single-leg stance. The primary cross-sectional CIs now account for repeated observations through participant-cluster resampling, and LoA incorporated within- and between-participant variance. These changes did not remove the uncertainty from only 12 to 15 contributing participants per dynamic task. Static differences changed direction across target angles and included target-setting and holding uncertainty. Kinovea interrater agreement did not establish 3D accuracy, and 4-participant repeated-session findings remained exploratory.</p></sec><sec id="s4-2"><title>Kinovea as a 2D Reference</title><p>High Kinovea interrater agreement indicates that 2 raters produced similar 2D annotations and reduced 1 source of uncertainty in the BlazePose comparison. It did not establish Kinovea&#x2019;s accuracy against 3D kinematics or show that every between-method difference originates from BlazePose. Both methods used a single sagittal view and may have shared projection, landmark, and out-of-plane error.</p></sec><sec id="s4-3"><title>Task- and Quality-Dependent Dynamic Agreement</title><p>Task-specific estimates are more informative than the pooled cross-task ICC because pooling squat, sit-to-stand, and near-extension single-leg stance greatly expanded the angle range. Squat and sit-to-stand showed strong relative association but only good-to-moderate absolute agreement, illustrating why correlation cannot substitute for agreement metrics. In the clinical-flexion space, BlazePose overestimated flexion by approximately 6&#x00B0; for these tasks, and every task-specific LoA interval extended beyond at least one of the descriptive &#x00B1;10&#x00B0; anchors. If reproduced clinically, this error direction could make recovery appear greater than it is; the healthy sample cannot quantify that clinical consequence.</p><p>The conditional analysis also described performance only when target-frame confidence was adequate. Retaining all numeric outputs produced marked deterioration for squat, and failure rates varied by task, participant, and acquisition group. The unresolved confidence decrease after S01-S06 shows that a constant camera model and file format did not guarantee consistent detection. Any future deployment would therefore require explicit measurement availability reporting and a per-recording quality gate rather than relying only on accuracy among successful detections.</p></sec><sec id="s4-4"><title>Angle-Dependent Static Error</title><p>Static signed error changed from flexion overestimation at 30&#x00B0; and 60&#x00B0; to underestimation at 90&#x00B0; and 120&#x00B0;. The angle-specific signed bias exceeded the descriptive &#x00B1;5&#x00B0; anchor at 30&#x00B0;, 60&#x00B0;, and 120&#x00B0;, and every angle-specific LoA interval extended beyond at least one of the descriptive &#x00B1;10&#x00B0; anchors. Together with the overall RMSE, this direction reversal and dispersion did not support a single calibration offset across the tested range. The result was agreement with goniometer-set targets in healthy participants not evidence that BlazePose can replace clinical goniometry. The goniometer was reapplied and reread before every trial but removed for recording and not reapplied afterward. Consequently, target-setting error, rounding, drift during the hold, and goniometer error cannot be separated from BlazePose error; the manufacturer-stated accuracy is not an in-study calibration estimate.</p><p>Plausible contributors included mismatch between image-based and palpated anatomical landmarks, perspective shortening, out-of-plane limb rotation, occlusion or crossing limbs, side-selection errors, and amplification of small landmark displacements when segments approach collinearity. These mechanisms are consistent with the observed angle and task dependence but were not isolated experimentally and should not be stated as proven causes.</p></sec><sec id="s4-5"><title>Single-Leg Stance: Restricted Range and Plausible Failure Mechanisms</title><p>Single-leg stance had poor concurrent agreement. Because the supporting knee occupied a narrow range near full extension, between-participant variance was small, and ICC was especially sensitive to modest measurement error. Occlusion by the nonstance limb, out-of-plane rotation, perspective, and landmark localization may add error in a single lateral view. Exploratory repeated-session findings from 4 participants did not resolve whether this uncertainty was task-related, method-related, or sample-related and did not establish that instability is intrinsic to the task.</p></sec><sec id="s4-6"><title>Exploratory Repeated-Session Findings</title><p>The repeated-session analyses were based on 4 participants assessed 21 days to 29 days apart and cannot support definitive reliability or bias stability claims. The n=24 dynamic analysis was an ungated, automated, video-minimum stress test not a time-matched measure, and 10 of the 24 pairs included at least one low-confidence raw peak. The ICC for the between-method difference was imprecise and is best interpreted as insufficient evidence for a stable fixed offset not proof of universal bias drift. The 21&#x2010;to-29-day interval also permits real within-person change to contribute to disagreement, so measurement error and biological variation cannot be separated here.</p></sec><sec id="s4-7"><title>Limitations</title><p>The cross-sectional sample was small (n=15) and recruited by convenience from healthy young adults at one university, and no a priori power calculation was performed. The repeated-session subsample contained 4 participants, producing imprecise estimates from repeated observations nested within individuals. Findings cannot be generalized to older adults, knee osteoarthritis, anterior cruciate ligament reconstruction, total knee arthroplasty, or other clinical populations. One readily available iPhone 17 Pro was used throughout to hold hardware constant; equivalence across phones, lenses, frame rates, and device-specific image processing was not tested.</p><p>The static comparator was a rounded goniometer-set target rather than an independent measurement of the recorded posture, and the dynamic comparator was Kinovea 2D annotation rather than marker-based 3D kinematics, so absolute biomechanical accuracy remains unknown. We reprocessed 5 static videos at a lower pose-detection threshold, which was a protocol deviation; sensitivity analyses excluding them changed the estimates only slightly. The 33 failures from the 210 dynamic detection observations were unevenly distributed, making the retained-observation agreement estimates conditional on adequate detection. Target-frame confidence decreased after S01-S06 and did not recover in S11-S15; because acquisition conditions were incompletely recorded, the cause could not be identified. Participant-cluster CIs and repeated-measures LoA addressed clustering in the primary cross-sectional analyses, but with only 12 to 15 contributing participants per dynamic task, all interval procedures remained approximate; bootstrap intervals may have had inadequate coverage. The LoA variance model assumes approximately normal differences, common within-participant variance within a stratum, and conditionally independent residual differences. Consecutive repetitions may violate the last assumption. Resampling whole participants preserves the observed dependence but does not validate those distributional assumptions or guarantee future coverage. Across-angle and cross-task pooled LoA are descriptive only. The target-frame cutoff was established during analysis without a documented calibration basis, and sensitivity analyses did not make it a validated deployment threshold. Four-participant repeated-session intervals remained unadjusted and descriptive. Detailed angle-, side-, participant-, and sensitivity-level estimates are exploratory and were not adjusted as multiple confirmatory tests. The study assessed 1 BlazePose model, sagittal-plane angles, and selected task frames only; frontal/transverse motion and temporal variables were not evaluated.</p></sec><sec id="s4-8"><title>Clinical Implications and Future Directions</title><p>This evidence supports only feasibility or screening-level research use under controlled acquisition with explicit quality checks. It does not support replacing a clinical goniometer, making precise longitudinal treatment decisions, assuming that a fixed calibration is stable, or using the method as an unconditional remote clinical measurement. Because BlazePose overestimated clinical flexion in squat and sit-to-stand, an unverified reading could overstate apparent recovery or mask a residual deficit; measurements that would affect care should be confirmed with an established clinical assessment.</p><p>Priorities for future work are larger, prospectively sized, and multisite cohorts; validation against 3D motion capture; testing in relevant clinical populations; direct cross-device evaluation; and controlled experiments that vary camera geometry, lighting, attire, occlusion, and out-of-plane motion. Repeated-session studies should prespecify the estimand, retain participant-level sampling in the analysis, and report both measurement availability and agreement conditional on successful detection.</p></sec><sec id="s4-9"><title>Conclusions</title><p>Single-camera MediaPipe BlazePose had dynamic measurement availability of 177 of 210 (84.3%) observations: This included 71 of 75 (95%) observations for squat, 58 of 75 (77%) observations for sit-to-stand, and 48 of 60 (80%) observations for single-leg stance. Among the retained observations, the corresponding ICCs for squat, sit-to-stand, and single-leg stance were 0.773, 0.632, and 0.136, respectively with participant-cluster intervals showing substantial uncertainty. Static agreement with goniometer-set targets varied by angle and included uncertainty in the reference positioning. Four-participant repeated-session findings did not establish stable calibration or reliable longitudinal change measurement. These data support further controlled feasibility and screening-level evaluation with per-recording quality checks not replacement of clinical measurement or routine remote clinical decision-making.</p></sec></sec></body><back><ack><p>The authors thank all 15 participants, including the 4 participants who returned for the second session, and the research assistants who contributed to Kinovea video annotation and data collection logistics.</p><p>OpenAI Codex and Anthropic Claude Code were used to assist with coding, statistical analyses, preparation of tables and figures, manuscript drafting and revision, and responses to reviewers. XY and BY reviewed the methods and code, checked the tabulated results against the study data, and reviewed the interpretations. The authors take responsibility for the accuracy and integrity of the final manuscript.</p></ack><notes><sec><title>Funding</title><p>This research received no external funding.</p></sec><sec><title>Data Availability</title><p>The anonymized summary datasets generated and analyzed during this study are available from the corresponding author upon reasonable request. The BlazePose analysis pipeline used the open-source MediaPipe PoseLandmarker (Heavy model, mediapipe v0.10.33), available from Google&#x2019;s MediaPipe documentation. Kinovea is freely available from the official Kinovea project website. Raw video data cannot be shared due to participant identifiability (faces visible in lateral-view recordings).</p></sec></notes><fn-group><fn fn-type="con"><p>Conceptualization: XY</p><p>Data curation: XY</p><p>Formal analysis: XY</p><p>Investigation: XY, YG</p><p>Methodology: XY</p><p>Project administration: XY</p><p>Resources: BY</p><p>Software: XY</p><p>Supervision: BY</p><p>Validation: XY</p><p>Visualization: XY</p><p>Writing &#x2013; original draft: XY</p><p>Writing &#x2013; review &#x0026; editing: XY</p></fn><fn fn-type="conflict"><p>None declared.</p></fn></fn-group><glossary><title>Abbreviations</title><def-list><def-item><term id="abb1">COSMIN</term><def><p>Consensus-Based Standards for the Selection of Health Measurement Instruments</p></def></def-item><def-item><term id="abb2">ICC</term><def><p>intraclass correlation coefficient</p></def></def-item><def-item><term id="abb3">LoA</term><def><p>limits of agreement</p></def></def-item><def-item><term id="abb4">MAE</term><def><p>mean absolute error</p></def></def-item><def-item><term id="abb5">RMSE</term><def><p>root mean square error</p></def></def-item><def-item><term id="abb6">ROM</term><def><p>range of motion</p></def></def-item><def-item><term id="abb7">SEM</term><def><p>standard error of measurement</p></def></def-item></def-list></glossary><ref-list><title>References</title><ref id="ref1"><label>1</label><nlm-citation citation-type="journal"><person-group person-group-type="author"><name name-style="western"><surname>Brosseau</surname><given-names>L</given-names> </name><name name-style="western"><surname>Balmer</surname><given-names>S</given-names> </name><name name-style="western"><surname>Tousignant</surname><given-names>M</given-names> </name><etal/></person-group><article-title>Intra- and intertester reliability and criterion validity of the parallelogram and universal goniometers for measuring maximum active knee flexion and extension of patients with knee restrictions</article-title><source>Arch Phys Med Rehabil</source><year>2001</year><month>03</month><volume>82</volume><issue>3</issue><fpage>396</fpage><lpage>402</lpage><pub-id pub-id-type="doi">10.1053/apmr.2001.19250</pub-id><pub-id pub-id-type="medline">11245764</pub-id></nlm-citation></ref><ref id="ref2"><label>2</label><nlm-citation citation-type="journal"><person-group person-group-type="author"><name name-style="western"><surname>Colyer</surname><given-names>SL</given-names> </name><name name-style="western"><surname>Evans</surname><given-names>M</given-names> </name><name name-style="western"><surname>Cosker</surname><given-names>DP</given-names> </name><name name-style="western"><surname>Salo</surname><given-names>AIT</given-names> </name></person-group><article-title>A review of the evolution of vision-based motion analysis and the integration of advanced computer vision methods towards developing a markerless system</article-title><source>Sports Med Open</source><year>2018</year><month>06</month><day>5</day><volume>4</volume><issue>1</issue><fpage>24</fpage><pub-id pub-id-type="doi">10.1186/s40798-018-0139-y</pub-id><pub-id pub-id-type="medline">29869300</pub-id></nlm-citation></ref><ref id="ref3"><label>3</label><nlm-citation citation-type="journal"><person-group person-group-type="author"><name name-style="western"><surname>Wade</surname><given-names>L</given-names> </name><name name-style="western"><surname>Needham</surname><given-names>L</given-names> </name><name name-style="western"><surname>McGuigan</surname><given-names>P</given-names> </name><name name-style="western"><surname>Bilzon</surname><given-names>J</given-names> </name></person-group><article-title>Applications and limitations of current markerless motion capture methods for clinical gait biomechanics</article-title><source>PeerJ</source><year>2022</year><volume>10</volume><fpage>e12995</fpage><pub-id pub-id-type="doi">10.7717/peerj.12995</pub-id><pub-id pub-id-type="medline">35237469</pub-id></nlm-citation></ref><ref id="ref4"><label>4</label><nlm-citation citation-type="journal"><person-group person-group-type="author"><name name-style="western"><surname>Stenum</surname><given-names>J</given-names> </name><name name-style="western"><surname>Rossi</surname><given-names>C</given-names> </name><name name-style="western"><surname>Roemmich</surname><given-names>RT</given-names> </name></person-group><article-title>Two-dimensional video-based analysis of human gait using pose estimation</article-title><source>PLoS Comput Biol</source><year>2021</year><month>04</month><volume>17</volume><issue>4</issue><fpage>e1008935</fpage><pub-id pub-id-type="doi">10.1371/journal.pcbi.1008935</pub-id><pub-id pub-id-type="medline">33891585</pub-id></nlm-citation></ref><ref id="ref5"><label>5</label><nlm-citation citation-type="journal"><person-group person-group-type="author"><name name-style="western"><surname>Gupta</surname><given-names>A</given-names> </name><name name-style="western"><surname>Shrestha</surname><given-names>PL</given-names> </name><name name-style="western"><surname>Thapa</surname><given-names>B</given-names> </name><name name-style="western"><surname>Silwal</surname><given-names>R</given-names> </name><name name-style="western"><surname>Shrestha</surname><given-names>R</given-names> </name></person-group><article-title>Knee flexion/extension angle measurement for gait analysis using machine learning solution &#x201C;MediaPipe Pose&#x201D; and its comparison with Kinovea <sup>&#x00AE;</sup></article-title><source>IOP Conf Ser: Mater Sci Eng</source><year>2023</year><month>03</month><day>1</day><volume>1279</volume><issue>1</issue><fpage>012004</fpage><pub-id pub-id-type="doi">10.1088/1757-899X/1279/1/012004</pub-id></nlm-citation></ref><ref id="ref6"><label>6</label><nlm-citation citation-type="journal"><person-group person-group-type="author"><name name-style="western"><surname>Langley</surname><given-names>B</given-names> </name><name name-style="western"><surname>Greig</surname><given-names>M</given-names> </name><name name-style="western"><surname>Board</surname><given-names>TN</given-names> </name></person-group><article-title>Exploring the validity of smartphone based single camera markerless motion capture technology to quantify knee range of motion in patients with knee osteoarthritis</article-title><source>Physiotherapy</source><year>2026</year><month>03</month><volume>130</volume><fpage>101850</fpage><pub-id pub-id-type="doi">10.1016/j.physio.2025.101850</pub-id><pub-id pub-id-type="medline">41275724</pub-id></nlm-citation></ref><ref id="ref7"><label>7</label><nlm-citation citation-type="journal"><person-group person-group-type="author"><name name-style="western"><surname>Koul</surname><given-names>M</given-names> </name><name name-style="western"><surname>Thanki</surname><given-names>R</given-names> </name><name name-style="western"><surname>Koul</surname><given-names>R</given-names> </name><name name-style="western"><surname>Fujarski</surname><given-names>S</given-names> </name><name name-style="western"><surname>Radhakrishnan</surname><given-names>S</given-names> </name><name name-style="western"><surname>Jodbhavi</surname><given-names>S</given-names> </name></person-group><article-title>An AI-driven video based goniometer for knee joint range of motion (ROM) assessment: reliability and validity compared to traditional goniometry</article-title><source>Comput Biol Med</source><year>2025</year><month>09</month><volume>196</volume><issue>Pt B</issue><fpage>110848</fpage><pub-id pub-id-type="doi">10.1016/j.compbiomed.2025.110848</pub-id><pub-id pub-id-type="medline">40768930</pub-id></nlm-citation></ref><ref id="ref8"><label>8</label><nlm-citation citation-type="journal"><person-group person-group-type="author"><name name-style="western"><surname>Akturk</surname><given-names>S</given-names> </name><name name-style="western"><surname>Derdiyok</surname><given-names>FB</given-names> </name><name name-style="western"><surname>Serbest</surname><given-names>K</given-names> </name></person-group><article-title>Markerless joint angle estimation using MediaPipe with a rapid setup for joint moment calculation</article-title><source>Multimed Tools Appl</source><year>2026</year><volume>85</volume><issue>1</issue><fpage>38</fpage><pub-id pub-id-type="doi">10.1007/s11042-026-21256-z</pub-id></nlm-citation></ref><ref id="ref9"><label>9</label><nlm-citation citation-type="journal"><person-group person-group-type="author"><name name-style="western"><surname>Lima</surname><given-names>YL</given-names> </name><name name-style="western"><surname>Collings</surname><given-names>T</given-names> </name><name name-style="western"><surname>Hall</surname><given-names>M</given-names> </name><name name-style="western"><surname>Bourne</surname><given-names>MN</given-names> </name><name name-style="western"><surname>Diamond</surname><given-names>LE</given-names> </name></person-group><article-title>Validity and reliability of trunk and lower-limb kinematics during squatting, hopping, jumping and side-stepping using OpenCap markerless motion capture application</article-title><source>J Sports Sci</source><year>2024</year><month>10</month><volume>42</volume><issue>19</issue><fpage>1847</fpage><lpage>1858</lpage><pub-id pub-id-type="doi">10.1080/02640414.2024.2415233</pub-id><pub-id pub-id-type="medline">39444219</pub-id></nlm-citation></ref><ref id="ref10"><label>10</label><nlm-citation citation-type="journal"><person-group person-group-type="author"><name name-style="western"><surname>Yoma</surname><given-names>M</given-names> </name><name name-style="western"><surname>Herrington</surname><given-names>L</given-names> </name><name name-style="western"><surname>Starbuck</surname><given-names>C</given-names> </name><name name-style="western"><surname>Llurda</surname><given-names>L</given-names> </name><name name-style="western"><surname>Jones</surname><given-names>R</given-names> </name></person-group><article-title>Between-day reliability of kinematic variables using markerless motion capture for single-leg squat and single-leg landing tasks</article-title><source>Int J Sports Phys Ther</source><year>2025</year><volume>20</volume><issue>8</issue><fpage>1160</fpage><lpage>1175</lpage><pub-id pub-id-type="doi">10.26603/001c.141870</pub-id><pub-id pub-id-type="medline">40756794</pub-id></nlm-citation></ref><ref id="ref11"><label>11</label><nlm-citation citation-type="journal"><person-group person-group-type="author"><name name-style="western"><surname>Mokkink</surname><given-names>LB</given-names> </name><name name-style="western"><surname>Terwee</surname><given-names>CB</given-names> </name><name name-style="western"><surname>Patrick</surname><given-names>DL</given-names> </name><etal/></person-group><article-title>The COSMIN checklist for assessing the methodological quality of studies on measurement properties of health status measurement instruments: an international Delphi study</article-title><source>Qual Life Res</source><year>2010</year><month>05</month><volume>19</volume><issue>4</issue><fpage>539</fpage><lpage>549</lpage><pub-id pub-id-type="doi">10.1007/s11136-010-9606-8</pub-id><pub-id pub-id-type="medline">20169472</pub-id></nlm-citation></ref><ref id="ref12"><label>12</label><nlm-citation citation-type="journal"><person-group person-group-type="author"><name name-style="western"><surname>Bae</surname><given-names>K</given-names> </name><name name-style="western"><surname>Lee</surname><given-names>S</given-names> </name><name name-style="western"><surname>Bak</surname><given-names>SY</given-names> </name><name name-style="western"><surname>Kim</surname><given-names>HS</given-names> </name><name name-style="western"><surname>Ha</surname><given-names>Y</given-names> </name><name name-style="western"><surname>You</surname><given-names>JH</given-names> </name></person-group><article-title>Concurrent validity and test reliability of the deep learning markerless motion capture system during the overhead squat</article-title><source>Sci Rep</source><year>2024</year><month>11</month><day>27</day><volume>14</volume><issue>1</issue><fpage>29462</fpage><pub-id pub-id-type="doi">10.1038/s41598-024-79707-2</pub-id><pub-id pub-id-type="medline">39604407</pub-id></nlm-citation></ref><ref id="ref13"><label>13</label><nlm-citation citation-type="other"><person-group person-group-type="author"><name name-style="western"><surname>Bazarevsky</surname><given-names>V</given-names> </name><name name-style="western"><surname>Grishchenko</surname><given-names>I</given-names> </name><name name-style="western"><surname>Raveendran</surname><given-names>K</given-names> </name><name name-style="western"><surname>Zhu</surname><given-names>T</given-names> </name><name name-style="western"><surname>Zhang</surname><given-names>F</given-names> </name><name name-style="western"><surname>Grundmann</surname><given-names>M</given-names> </name></person-group><article-title>BlazePose: on-device real-time body pose tracking</article-title><source>arXiv preprint arXiv</source><comment>Preprint posted online on 2020</comment><pub-id pub-id-type="doi">10.48550/arXiv.2006.10204</pub-id></nlm-citation></ref><ref id="ref14"><label>14</label><nlm-citation citation-type="journal"><person-group person-group-type="author"><name name-style="western"><surname>Bland</surname><given-names>JM</given-names> </name><name name-style="western"><surname>Altman</surname><given-names>DG</given-names> </name></person-group><article-title>Statistical methods for assessing agreement between two methods of clinical measurement</article-title><source>Lancet</source><year>1986</year><month>02</month><day>8</day><volume>1</volume><issue>8476</issue><fpage>307</fpage><lpage>310</lpage><pub-id pub-id-type="medline">2868172</pub-id></nlm-citation></ref><ref id="ref15"><label>15</label><nlm-citation citation-type="journal"><person-group person-group-type="author"><name name-style="western"><surname>Koo</surname><given-names>TK</given-names> </name><name name-style="western"><surname>Li</surname><given-names>MY</given-names> </name></person-group><article-title>A guideline of selecting and reporting intraclass correlation coefficients for reliability research</article-title><source>J Chiropr Med</source><year>2016</year><month>06</month><volume>15</volume><issue>2</issue><fpage>155</fpage><lpage>163</lpage><pub-id pub-id-type="doi">10.1016/j.jcm.2016.02.012</pub-id><pub-id pub-id-type="medline">27330520</pub-id></nlm-citation></ref><ref id="ref16"><label>16</label><nlm-citation citation-type="journal"><person-group person-group-type="author"><name name-style="western"><surname>Bland</surname><given-names>JM</given-names> </name><name name-style="western"><surname>Altman</surname><given-names>DG</given-names> </name></person-group><article-title>Agreement between methods of measurement with multiple observations per individual</article-title><source>J Biopharm Stat</source><year>2007</year><volume>17</volume><issue>4</issue><fpage>571</fpage><lpage>582</lpage><pub-id pub-id-type="doi">10.1080/10543400701329422</pub-id><pub-id pub-id-type="medline">17613642</pub-id></nlm-citation></ref></ref-list><app-group><supplementary-material id="app1"><label>Multimedia Appendix 1</label><p>Supplementary detection quality, exploratory repeated-session, participant-mean, sensitivity, and participant-cluster inference analyses.</p><media xlink:href="rehab_v13i1e102399_app1.docx" xlink:title="DOCX File, 45 KB"/></supplementary-material></app-group></back></article>