A Foundation Motion Generator
for Text-Driven Humanoid Motion

Zhao WangJiangtao HuJack YuTao Yu†*

LimX Dynamics Project Lead    *Corresponding Author

A pose is a rotation, and a squared error on rotations cannot tell motion that flows from motion that shakes. FMG supervises how rotation changes over time rather than only where it lands, which is what makes a generated motion smooth enough to watch. Because a rotation retargets onto any skeleton, the same output also runs on a real humanoid, at any length asked for.

One request, twelve prompts, 36 seconds, generated as a single motion. Training windows are 8 seconds long; sampling tiles them and fuses the overlaps inside every denoising step.
0hours of motion
0.49Bparameters
0sampling steps
0evaluation axes
0physical humanoids

01Abstract

Text-to-motion still inverts a diffusion process and has not inherited the stack that now produces images: a single-stream DiT with joint attention over text and motion tokens, trained with a rectified flow. That transplant is not a drop-in, and the reason is geometric.

The target is a sequence of joint rotations, so a squared error in a rotation embedding is blind to whether error is spread smoothly or concentrated in frame-to-frame reversals, which few solver steps no longer average away; smoothness falls below the diffusion baseline it was meant to improve on. The missing supervision is the temporal derivative of rotation. FMG predicts the clean sample rather than a velocity field, which keeps every term of the loss a decodable pose, and supervises rotational velocity and acceleration; smoothness returns past the diffusion baseline at eight solver steps.

We assemble the 1,983 hours this needs, most of it our own capture, and score six axes against levels measured on that capture rather than idealised targets, so smoothness cannot reward frozen motion nor physical plausibility punish a body for contacting itself. Because the output is a rotation per joint, a sample retargets onto a robot's own skeleton: one set of outputs runs on two different physical humanoids.

02Method

FMG architecture and training objective
Architecture and objective. Text and motion tokens enter one 24-block stack as a single sequence predicting the clean sample, not a velocity field. A block shares QKV, MLP and adaLN weights rather than cross-attending. Two predictions at equal reconstruction loss whose angular-acceleration error differs hundredfold are told apart by the dynamics term alone.
01

Clean sample, not velocity

A velocity prediction is a quantity in noise space that cannot be decoded. Predicting the clean sample keeps every term of the loss a pose, convertible to rotation matrices and pushable through forward kinematics.

02

Supervise rotational dynamics

A squared error in 6D rotation space is indifferent to whether error is spread smoothly or concentrated in frame-to-frame reversals. We supervise the body-frame angular increment and its difference, which is the quantity the metric is blind to.

03

Any length, one motion

Sampling tiles 240-frame windows with 60-frame overlap and blends them inside every denoising step, so a seam introduced at one step is denoised away by the next. Cost grows linearly and no context length is ever exceeded.

04

Rotations retarget

A pose given as a rotation per joint is defined on any skeleton with those joints, so reaching a machine is a retarget rather than a regeneration. One set of outputs ran on two different humanoids.

03Six-axis evaluation

Each axis is 0–100 against fixed constants, so one run is comparable to another. Text-motion match, naturalness and diversity are scored in a contrastive text–motion embedding. Smoothness is the jerk of the body-frame angular increment, and physical plausibility is limb-capsule interpenetration after forward kinematics; both are referenced to the level real capture registers rather than to zero. Speed is per-request latency at batch size one.

Six-axis comparison radar chart
MethodInstituteParams Nat.MatchDiv. Smth.SpeedPhys.Avg
MotionMillion Shanghai AI Lab (2025)7.8B 42.330.551.749.545.572.148.6
HY-Motion Tencent Hunyuan (2025)1.0B 38.052.667.354.331.471.452.5
Kimodo NVIDIA (2026)283M 36.851.059.179.049.593.461.5
GENMO NVIDIA (2025)523M 44.228.052.379.820.668.148.8
FMGLimX Dynamics (2026)495M 86.486.889.3 90.781.485.086.6

04Against prior work

The same prompt through five models. Every row of a prompt shares one camera and one crop window, so a body that sits lower or reaches further really has.

05Motion of any length

Nothing in the recipe fixes a length.

Training sees 8-second windows. Sampling tiles any requested length with overlapping windows and blends them inside every denoising step, so a seam raised at one step is denoised away by the next.

Across several hundred seams, the jerk where two windows meet is not distinguishable from no seam at all. Cross-fading finished windows instead only moves the kink to the edge of the fade.

The overlay reports the active prompt and the tiling boundaries.

06Executed on hardware

Because the output is a rotation per joint, a sample retargets onto a robot's own skeleton. One set of outputs was executed on two different machines, both tracking the retargeted motion under the same whole-body controller.

08The training mixture

Training data distribution
(a) All 1,983 hours over our shoot taxonomy; the three rings are family, subfamily and action, and arc is hours. (b) Caption length over all corpora, weighted by hours. (c) Our own captions' vocabulary.

09BibTeX

@article{fmg2026,
  title   = {{FMG}: A Foundation Motion Generator for Text-Driven Humanoid Motion},
  author  = {Wang, Zhao and Hu, Jiangtao and Yu, Jack and Yu, Tao},
  journal = {arXiv preprint arXiv:XXXX.XXXXX},
  year    = {2026}
}