FIND YOUR NEXT MOVE
Browse documentation
ENGINEERING DOCUMENTATION

Mathematics & signal processing

Coordinates, normalization, temporal change and adaptive evidence floors from actual source.

IMPLEMENTEDSOURCE REVIEW / 2026.09.09

Keep the coordinate paths separate

Legacy calibration-relative calculations in PoseNormalizer differ from V3 aspect-correct geometry. Do not mix variables with different length units in one equation. This article covers only formulas located in the implementation.

Image aspect-ratio correction

ImagePlaneGeometry.Project converts normalized image coordinates into an isotropic plane measured in image-height units.

x=xWH,y=yx'=x\frac{W}{H},\qquad y'=y
NotationSource variableUnits and meaning
x,yx,yCanonicalNormalizedPoint.X/YCoordinates normalized to each image extent
W,HW,HPoseImageDimensions.Width/HeightPixel dimensions
x,yx',y'AspectCorrectImagePoint.X/YImage-height units, not meters
return new AspectCorrectImagePoint(
    point.X * dimensions.AspectRatio, point.Y);

The transform corrects unequal image extents. It does not reconstruct depth or world distance. Invalid dimensions cause an exception or TryProject failure. This path’s default joint-confidence gate is 0.50, distinct from the legacy calibration value of 0.45.

Legacy body-relative displacement

PoseNormalizer.TryNormalize divides filtered hip displacement by calibrated shoulder width.

dx=hx,thx,0S0d_x=\frac{h_{x,t}-h_{x,0}}{S_0}

h_{x,t} is filteredHip.X, h_{x,0} is profile.HipCenter.X, and S_0 is profile.ShoulderWidth. The result is a shoulder-width ratio. It does not independently commit a lateral action; shoulder co-motion, torso lean and time gates also apply.

Time-based smoothing

α=1eΔt/max(0.0001,τ),p^t=p^t1+α(ptp^t1)\alpha=1-e^{-\Delta t/\max(0.0001,\tau)},\qquad \hat p_t=\hat p_{t-1}+\alpha(p_t-\hat p_{t-1})

dt is the monotonic capture-time difference in seconds. tau is SmoothingTimeConstantSeconds, with a legacy default of 0.045 s. filteredShoulder and filteredHip, among others, use this update. The weight adapts to the actual sample interval.

The first sample or a timestamp gap above the default 0.35 s uses alpha = 1, breaking continuity with the old filter state. Nonpositive time differences and duplicate or out-of-order sequences are rejected. These settings are not a latency guarantee.

Legacy torso upward velocity

vy=cy,tcy,t1T0Δtv_y=\frac{c_{y,t}-c_{y,t-1}}{T_0\,\Delta t}

torsoCenter.Y and previousTorsoCenter.Y are midpoints of the filtered shoulder and hip centers; T_0 is profile.TorsoLength. Units are torso lengths per second. First samples, gap resets and unavailable derivatives initialize velocity to zero. That initialization is not observed proof of physical stillness.

V3 adaptive jump evidence floors

JumpV3Parameters incorporates local-rest noise while preserving an absolute floor.

θd=max(f,41.4826MAD)\theta_d=\max(f,4\cdot1.4826\cdot\mathrm{MAD}) θv=max(f,m+41.4826MAD)\theta_v=\max(f,|m|+4\cdot1.4826\cdot\mathrm{MAD})

f is the signal’s absolute floor, m is restMedian, and MAD is rawRestMad. RobustStatistics.GaussianConsistencyFactor is 1.4826. Median absolute deviation is computed as median(ximedian(x))\operatorname{median}(|x_i-\operatorname{median}(x)|). Displacement and velocity floors retain the units of their respective signals.

Negative or nonfinite floors and MAD values, or a nonfinite median, return NaN. The formula does not imply physically validated thresholds. Some V3 absolute floors derive from synthetic evidence.

Numerical edge cases

The aspect-correct AngleDegrees returns NaN when its denominator is at most 1e-12. Legacy MotionMath.Angle returns zero if either segment length is at most 1e-6. Both clamp the cosine to [-1,1] before inverse cosine, but their degenerate outputs differ. Do not treat them as equivalent when changing paths.