End-to-end framework for LLM-driven animation of rigged 3D models

Andrii Yaroshevych, Pavlo Kryven, Mariya Hirna and Maksym Shamrai OpenSUN3D Workshop @ ECCV 2026 ↗

GenRA animates existing rigged 3D assets from natural-language instructions, without task-specific training. A multimodal LLM predicts sparse keyframes, which are interpolated and written into the source USD file with its geometry, skinning and rig unchanged; follow-up instructions refine the result.

Animated with GenRA Every animation you see on this page was generated by GenRA from a text prompt.

74.5% tie-aware preference over Puppeteer in 1,080 blind judgments on 40 assets
83% lower generation time median of 120 s against 690 s per animation
84% lower cost median of $0.09 against $0.55 per animation
30× token compression of exemplar motions at the default decimation tolerance

Language-driven animation of rigged assets

Skeletal animation is authored as joint transformations within a rig hierarchy, which requires considerable time and expertise. Existing generative methods address parts of this task but rarely satisfy all requirements of asset-centric authoring at once.

01

Asset replacement

Auto-rigging methods replace the artist-authored skeleton and skinning with new ones.

02

Canonical skeletons

Most text-conditioned motion models are trained for canonical human or animal skeletons.

03

Limited editability

Localized, multi-turn editing has not been demonstrated across diverse asset types.

Approach GenRA conditions a multimodal LLM on the rig hierarchy and bind pose, multiview renders, a motion instruction and optional motion exemplars. The model predicts sparse per-joint keyframes, which are reconstructed into smooth curves and written back into the source asset.

Asset preservation

Geometry, rig hierarchy and skinning remain unchanged; motion is written into the supplied USD file.

No task-specific training

Generation relies on in-context conditioning only; the LLM is not fine-tuned.

Fine-grained control

Per-joint translation, rotation and scale, explicit duration, and zero- or few-shot generation.

Iterative refinement

Follow-up instructions modify specific joints, time intervals or magnitudes while preserving the remaining motion.

Pipeline overview

The rig, the instruction and optional exemplars are encoded into a compact text and image context. The LLM generates motion as sparse keyframes, which are interpolated and written back into the source file. Stages are either LLM-assisted or algorithmic.

1

Inputs

A rigged asset, an instruction and optional exemplars.

2

Encoding

The rig and the exemplars become a compact text and image context.

Asset

Exemplars · optional

Context
3

Generation

A multimodal LLM writes the motion as sparse keyframes.

Output
4

Export

The keyframes become dense curves in the source file.

Result
Refinement returns to stage 1 with the stored keyframes
LLLM-assisted step AAlgorithmic step Optional Data handed on

Hover over a step for details; click to keep it open.Tap a step for details.

Keys are offsets from the bind pose, with rotations as Euler angles, which the LLM interprets more reliably than quaternions. Every joint may carry translation, rotation and scale, which allows non-rigid motion such as squash and stretch.

Keyframe decimation and interpolation

Dense motion consists largely of nearly constant intervals and a few salient events. Exemplar motions are therefore reduced to sparse keyframes before they enter the context, and the keyframes generated by the LLM are interpolated into per-frame curves afterwards.

Keyframe decimation

Each channel is approximated by cubic Bézier segments. The knot with the lowest removal cost is removed and its neighbors are refitted until any further removal would exceed the tolerance, which is stricter for joints near the root.

7 keys on the channel
from 101 dense frames
-0.050.000.050.100.150.0 s0.5 s1.0 s1.5 s

Interpolation and export

The LLM outputs keyframes only. Translation and scale are interpolated with auto-clamped Bézier handles, which are flat at extrema and prevent overshoot; rotations follow the shortest quaternion arc. All frames are then written to the USD file.

Body height, m

00.510153045

Vertical scale, ×

0.811.10153045
30×

median token compression

at the default decimation tolerance, 95% CI 25-36×

0.34%

translation error

median RMSE relative to the asset's bounding-box diagonal

5.36°

rotation error

median quaternion geodesic RMSE after reconstruction

Zero- and few-shot generation for Eney

For Eney, MacPaw's character, a library of animator-authored clips is available. In the few-shot setting, GenRA retrieves a few relevant exemplars per request, which convey the character's joint usage, timing and style; in the zero-shot setting, only the rest pose is supplied. The examples range from short gestures to multi-stage sequences; several reach production-usable quality.

Iterative refinement

In refinement, the current keyframes and a follow-up instruction are passed back to the LLM, which returns a complete revised animation: unaffected keys are retained, others are replaced, removed or added. The revised keys are stored in the asset, which avoids error accumulation from repeated resampling.

  1. 1Initial prompt

    The blob rolls in frame from the left side (from about 2 meters away), and suddenly bumps into the wall, ending up in the center of the frame standing upright. After the bump, the blob looks to his left and slightly down (on the wall he bumped into), pauses for a pretty long moment, and happily jumps a few times. It then tilts its body to the right and blinks its left eye happily, as if encouraging the viewer to join in.

  2. 2Alternative refinement of turn 1

    Preserve the animation as is, except, make the blob jump much higher before the blink.

  3. 3Alternative refinement of turn 1

    Preserve the animation as is, except, make the blob look to his right instead of left after the bump.

Human preference study

GenRA was compared with Puppeteer, the closest open-source method for text-conditioned, rig-based animation of diverse objects. Both methods received the same assets from Articulation-XL-2.0 and the same VLM-generated prompts, without exemplar animations. GenRA is preferred in every asset category and rig-complexity group.

74.5%

tie-aware preference rate

95% CI 68.5-80.2%; 80.0% excluding ties

36 of 40

assets above 50%

median asset-level rate of 76.9%

27 of 27

raters above 50%

leave-one-out estimates range from 73.8% to 75.5%

GenRA preferred Tie Puppeteer preferred
Group Share of ratings Tie-aware rate
Tool / mechanism4 assets 81 17 89%
Vehicle / robot6 assets 72 10 18 77%
Humanoid4 assets 67 20 13 77%
Animal7 assets 65 22 13 76%
Household item3 assets 63 17 20 72%
Character / blob13 assets 63 18 20 72%
Plant3 assets 46 28 26 60%
Overall40 assets 65 18 16 74.5%

Tie-aware rate = (GenRA preferred + ½ ties) / all judgments; 50% is indifference. Bars show the share of ratings in percent.

40 assets
Seven categories, from tools and mechanisms to plants, with semantically meaningful joint names.
360 animation pairs
Three prompts per asset and three stochastic trials per prompt for each method.
27 raters
Blind, randomized assignment; each pair was judged by three different raters.
1,080 judgments
Overall preference based on prompt adherence and motion quality, disregarding rendering differences.

Margins are largest for tools and mechanisms and for rigs of low or medium complexity, where motion is strongly constrained by the asset's structure. They are smallest for plants and rigs with 25 or more joints, which require coordinated motion of many coupled joints. Puppeteer's video prior can yield more natural motion for some organic actions, but its re-rigging and optimization stages may introduce skinning artifacts and drift.

Generation efficiency

GenRA generates motion directly on the target rig with a single LLM-based stack, whereas Puppeteer synthesizes a video prior and then optimizes the rig against it. Values are medians over 360 runs per method.

Median time per animation

83% lower
Puppeteer 690 s Video prior 60 s · Optimization 630 s
GenRA 120 s LLM generation 120 s

Median cost per animation

84% lower
Puppeteer $0.55 Video prior $0.35 · Optimization $0.20
GenRA $0.09 Input $0.01 · Output $0.08

GenRA used GPT-5.4 with medium reasoning and Flex processing; the median request comprised 6,420 input and 10,450 output tokens. Puppeteer's cost comprises a Kling v2.5 Turbo video prior and optimization on an 80 GB NVIDIA A100 SXM4 rented from Vast.ai. Measurements reflect provider pricing as of April 17, 2026.

Limitations and future work

Deep joint hierarchies

Preference margins decrease for plants and rigs with 25 or more joints, which need coordination similar to inverse kinematics. Kinematic solvers and stronger structural priors are possible directions.

No curve handles in the representation

The LLM neither receives nor generates Bézier handles. Exemplar-specific interpolation is therefore not preserved, and all outputs share one reconstruction procedure. Including handles or tangents could reduce this loss.

Evaluation scope

The benchmark covers assets with semantically meaningful joint names and a single overall judgment by internal raters. Performance on weakly annotated rigs and with professional animators has not been evaluated.

Paper, code and evaluation data

The paper describes the motion representation, the decimation and interpolation procedures and the complete human evaluation. The source code and all rated animation pairs are publicly available.