Half-Physics: Bridging kinematic and physical human modelsWhile current general-purpose 3D human models (e.g., SMPL-X) efficiently represent accurate human shape and pose, they lack the ability to physically interact with the environment due to their kinematic nature. This results in kinematic-based interaction models often suffering from issues such as interpenetration and unrealistic object dynamics.
We propose Half-Physics, a mechanism that embeds SMPL-X into a tangible entity capable of dynamic physical interactions with its surroundings. Instead of applying torques (as in RL-based methods), we explicitly enforce velocities computed from kinematic targets, maintaining kinematic control over inherent SMPL-X poses while ensuring physically plausible interactions. Unlike reinforcement learning-based methods, Half-Physics is learning-free, generalizes to any body shape and motion, and operates in real time (952 fps).

The half-physics approach transforms discrete kinematic poses into continuous velocity representations:

Unlike PHC+ which can fail or accumulate tracking errors, Half-Physics maintains perfect fidelity to the kinematic reference in collision-free scenarios, with graceful degradation only where physics constraints require it.
| Metric | PHC+ | Half-Physics |
|---|---|---|
| Success Rate | 92.5% | 100% |
| Global Error | 49.19 mm | 0.003 mm |
| Local Error | 34.47 mm | 0.003 mm |

On the Trumans dataset, Half-Physics eliminates all penetration artifacts:

Half-Physics enables diverse physically plausible interactions including single-handed grasping, two-handed manipulation, object dropping with realistic gravity, and kicking with motion-magnitude-aware responses. It also enables data augmentation by varying physical properties (mass, friction) to generate diverse interaction outcomes.
@article{siyao2025halfphysics,
title = {Half-Physics: Enabling Kinematic {3D} Human Model with Physical Interactions},
author = {Siyao, Li and Feng, Yao and Taheri, Omid and Loy, Chen Change and Black, Michael J.},
journal = {arXiv preprint arXiv:2507.23778},
year = {2025},
}