Pacific Graphics 2026 · arXiv preprint

Inverse Rig Optimization from Line Drawings

Recover editable production-rig parameters directly from contour strokes redrawn over the camera view.

Zihao Zhu · Yuki Koyama

The University of Tokyo, Japan

Three examples showing an initial rigged pose, artist-drawn contour strokes, and the pose recovered by the method

Project overview

Given a rigged mesh, our method recovers the rig parameters that produce the artist's strokes. We show three applications. Each example consists of three panels: the initial pose with the rig controls overlaid (left), the artist's stroke input (middle), and the optimized pose produced by our method (right). Character models in (a) and (b) © Blender Studio; character model in (c) © miHoYo.

Abstract

Stylized 3D character animation is largely hand-authored, with animators authoring rig parameters one keyframe at a time to find the best pose. Because stylized work reads chiefly through contour lines, drawing contours in the camera view is the most direct and precise way to express artistic intent. This mismatch between the rig controls and the artist's goal forces a laborious trial-and-error workflow, with animators repeatedly manipulating rig controls against the rendered view to match the desired contour. To address this, we propose a method that recovers rig parameters from screen-space contour strokes, enabling effective keyframing from sketches. Given strokes that redraw the current contour, our method optimizes the high-level rig parameters defined in the DCC tool. The key is to use a pre-trained MLP rig surrogate that provides a differentiable map from rig parameters to mesh vertices, replacing the original black-box rig within the optimization process. We match user-drawn lines to mesh contour lines and backpropagate the resulting screen-space error through the surrogate to update the rig parameters. Our results demonstrate that the method works for diverse characters and practical scenarios.

Method

Preparation One-time setup

Train a NeuralRig for each rigged mesh

The production rig is a black box that does not expose gradients to an external optimizer. A differentiable surrogate learns the mapping from rig parameters to mesh vertices. The NeuralRig is used only as a differentiable path during optimization; recovered parameters are written back to the original DCC rig.

Per-edit workflow

1

Draw

The artist redraws detected contours over the rendered view.

2

Match

A two-stage matching process pairs stroke points with projected contour vertices.

3

Optimize

Screen-space losses backpropagate through the NeuralRig to the controls.

Pipeline diagram from DCC inputs through NeuralRig, contour rendering, hierarchical matching, and optimization
Pipeline overview. The DCC tool supplies an initial rig parameter vector x0 , the model and camera matrices (M, V, P ), and a set of fixed contour edge paths along the visible contour of the current pose; the animator redraws those contours as strokes 𝒮 . The NeuralRig fneural , a differentiable surrogate for the production rig, then maps the current rig parameters x to mesh vertices; Contour Rendering filters by and projects through (M, V, P ) to obtain 2D contour polylines 𝒞 , which a two-stage matching pairs with 𝒮 to produce vertex–point pairs 𝒫 . Backpropagating the screen-space loss over 𝒫 updates x at each Adam step, and the recovered x is written back to the DCC as the new rig-parameter vector. Character model © Blender Studio.

Results

We evaluate contour-driven rig inversion on stylized 3D characters across four applications: facial expression keyframing, contour-defined object posing, view-specific shape stylization, and stylized perspective. Each pose is recovered in a few to a dozen seconds. The output is a rig-parameter vector rather than a baked mesh, allowing further refinement through the character's standard rig interface.

Play or drag the timeline to explore both views in sync.

Citation

If you find this work useful, please cite the preprint:

@misc{zhu2026inverse,
  title         = {Inverse Rig Optimization from Line Drawings},
  author        = {Zihao Zhu and Yuki Koyama},
  year          = {2026},
  eprint        = {2609.00732},
  archivePrefix = {arXiv},
  primaryClass  = {cs.GR},
  url           = {https://arxiv.org/abs/2609.00732}
}