Design proposals
In-progress design work for freemocap: features being designed in the open
before (or while) they're built, not yet-stable documentation of shipped
behavior. Nothing here is vendored into this site yet (docs_path: null in
data/repos.yml, same as the rest of the core repo's architecture docs, see
Architecture overview), so this page links to the
source directly rather than reproducing it, since a proposal that's still
actively changing is exactly the kind of content most likely to drift out of
sync if it were copied here.
The Reaction Mass Pendulum and centroidal kinematics
The one substantial proposal in the repo right now: adding a rotational counterpart to the center-of-mass tracking FreeMoCap already computes. Today the realtime pipeline computes center of mass (CoM) and extrapolated center of mass (XCoM) per frame, a point-mass model with no rotational inertia. This proposal's stated goal is the natural completion of that: model the body's mass distribution about its center of mass (the reaction-mass ellipsoid) and its centroidal angular momentum, adding real 3D rotational dynamics on top of the existing point-mass balance metrics, borrowing the Reaction Mass Pendulum representation from the humanoid-robotics literature (Lee & Goswami; Sanyal & Goswami) without any of that literature's control or actuation machinery, since FreeMoCap measures a human, it doesn't actuate one.
As of the source document's own last-updated status: point-mass inertia,
center of pressure, and the Centroidal Moment Pivot are implemented in the
realtime backend and render in the viewport (phases P0 and P1); real
per-segment anthropometric inertia data has landed but the compute using it
hasn't (phase P2); full per-segment orientation and a posthoc/offline
validation path remain planned (phases P3 and P4). At the tag this site
builds against (v2.0.0-alpha.21) the P1 half of that overstates reality:
the inertial modules (composite_inertia.py, ground_reference.py,
streaming_kinematics.py) and the viewport's BodyKinematicsRenderer all
exist and are unit-tested, but the aggregator node's per-frame
StreamingKinematics.update(...) call is commented out, so body_kinematics
stays None in every published frame and none of the ellipsoid, CoP, or CMP
output streams or renders yet (CoM and XCoM, phase P0, are unaffected).
Treat this as a live status, not a fixed one, and check the source directly
rather than this summary before relying on which parts are actually
implemented.
Full proposal, six pages plus two phase-1 implementation plans:
freemocap-docs/docs/proposals/centroidal-kinematics/
on GitHub.