Prior-First, Condition-Second
Scalable and Controllable Hand Motion Completion

1The University of Hong Kong 2Adobe Research, London, UK
ACM SIGGRAPH / Eurographics Symposium on Computer Animation (SCA) 2026

Our method robustly completes high-fidelity hand motion conditioned on global body dynamics and optional semantic controls. Instead of training a fully end-to-end conditioned generator, we constrain the outputs to a physically plausible kinematic manifold, resulting in coherent articulation and strong robustness across diverse inputs.

We are happy to give back to the community — for example, by adding hands to existing motion datasets. Contact us to enhance your dataset.

Hand Motion Completion

Generate coherent, kinematically consistent hand motion from body motion in real time — then steer it with text or attributes using only a few hours of labels.

Given only the body motion, our prior produces stable wrists and plausible finger articulation, whereas end-to-end baselines exhibit unstable wrist attachment, implausible fingers, or collapse to a single “safe” mean pose.

Understand core idea in 5 seconds

Controllable motion generation should be framed as sampling from a learned kinematic prior, rather than learning an end-to-end mapping from sparse conditions to motion trajectories. We call this the prior-first, condition-second paradigm:

  1. Prior first. Learn how the body and hands coordinate — how parts transfer momentum and evolve over time — from abundant unlabeled motion, under minimal semantic assumptions.
  2. Condition second. Freeze that prior and attach lightweight adapters that simply steer sampling toward a user's intent (text or attributes), instead of relearning kinematics for every control interface.

But wait, why not just…?

Why not train one end-to-end conditioned generator?

Semantic supervision for motion is scarce, expensive, and dataset-specific: capture protocols, skeletons, and annotation schemes rarely transfer. Learning kinematics and semantics jointly from limited paired data overfits and under-uses the conditions. By separating them, the prior captures motion regularities that are invariant across datasets, and control becomes a cheap, dataset-specific residual on top.

How do the hands stay coupled to the body?

Biological motion is driven by energy transfer along a specific kinematic chain, not by attending to all joints indiscriminately. Our Kinematic Chain Cascading Attention (KCCA) restricts the hand query to the ordered root→spine→shoulder→arm→forearm chain and gates it with the clean root state. This keeps attention stable even at high diffusion noise levels, so hands do not “float” or slide relative to the body.

How can you control it with so few labels?

Semantic commands operate at different kinematic levels — “energetically” modulates upstream momentum, while “pinch with two fingers” targets local articulation. Our semantically-layered adapters inject conditioning through zero-initialized, layer-specific gates at the right stages of the frozen prior. The adapter only learns the minimal residual for navigation on the manifold, converging with as little as a few hours of labeled data.

Input and output space

Our prior is a streaming, clip-level autoregressive model: instead of generating a whole take at once, we split a long body motion into short overlapping segments and complete the hand motion segment by segment. At each step the model predicts a fixed future window of hand poses (L = 45 frames) conditioned on (i) the corresponding body-motion window and (ii) a short buffer of previously generated hand frames (P = 10 frames). Feeding this history buffer into the next segment is what keeps consecutive clips temporally continuous, with no visible seams at window boundaries, while still allowing arbitrarily long, real-time rollout.

To make the model invariant to where the character is in the world, every segment is processed in a canonical frame: the root of its first frame is shifted to the origin, and the hand end-effectors are reset to identity. The network therefore only ever reasons about relative body–hand dynamics, which is a large part of why the learned manifold transfers so well across datasets and in-the-wild inputs. The representation used for each segment is summarized below.

Input body-motion representation and output hand-motion representation

Body Motion (input)

  • Joint position + velocity + local rotation.
  • The root of the first frame is shifted to zero.
  • The hand end-effector is set to identity.

Hand Motion (output)

  • Wrist joints (root): predicted in global orientation.
  • Finger joints: predicted in local coordinates.

Where the prior learns from

The kinematic prior is trained on ~100 hours of diverse, unlabeled motion drawn from public datasets and in-house captures, spanning locomotion, daily activities, and dyadic interactions.

MotionPersona 50 h
BEAT 30 h
InterAct 10 h
In-house capture 10 h

Composition of the ~100-hour training pool by source.

One body, many plausible hands

Our prior models a distribution of plausible completions rather than memorizing a single clip. The same body input yields distinct yet natural hand motions under different random seeds.

Different random seeds, same body motion — diverse, plausible hand articulations.

Robust on in-the-wild motion

On out-of-distribution body motions from AMASS and HunyuanMotion text-to-motion outputs — unseen during training and without ground-truth hands — our prior still generates hands consistent with the upstream arm dynamics, and can be paired with external body-motion generators.

Robustness on in-the-wild body motions from AMASS and HunyuanMotion — use the arrows to page through.

Semantic control: attributes and text

Lightweight adapters steer the frozen prior toward user intent. Attribute control injects only into the last, fine-grained layers to preserve global body–hand consistency, while text control is enabled across the full kinematic hierarchy so it can affect both global dynamics and fine finger articulation.

Attribute-driven: varying the fist-tightness level while keeping the body motion fixed.
Text-driven: a prompt steers both global gesture dynamics and finger articulation.

Interactive Blender add-on

We provide a Blender add-on for interactive authoring that supports efficient generation (9000 frames in ~15 seconds on a MacBook CPU), fitting directly into production animation pipelines.

Left to right: our generation, identity hands, original input.

BibTeX

@article{shi2026priorfirst,
  title   = {Prior-First, Condition-Second: Scalable and Controllable Hand Motion Completion},
  author  = {Shi, Mingyi and Chen, Xuelin and Komura, Taku},
  journal = {Computer Graphics Forum},
  year    = {2026},
  doi     = {10.1111/cgf.70568},
  note    = {ACM SIGGRAPH / Eurographics Symposium on Computer Animation 2026}
}

Acknowledgements

We thank the anonymous reviewers for their constructive feedback — including those who did not manage to obtain good results by running our add-on on randomly perturbed motion. We are also grateful to the friends who kindly provided test cases. Except for the training data, the examples shown in the videos are the copyright of their respective owners and are used here for demonstration purposes only.