HairDeck.

Animation-Ready Stylized Hair Cards
from a Single Image

1Tsinghua University 2Carnegie Mellon University 3The Chinese University of Hong Kong

*Equal contribution.†Corresponding authors.

One image. A set of hair cards. Ready to move.

THE IDEA

A hairstyle is a set.
Generate it as one.

HairDeck turns a single image into stylized hair cards and the spring-bone chains that animate them.

Each card becomes one token. A set diffusion transformer generates all cards together, preserving the individual ribbons that make up a hairstyle. The resulting asset carries per-card UVs and spring bones, and can be exported as a VRM avatar.

Read the abstract

The hair of stylized characters in games and avatars is built from hair cards: artist-placed ribbons whose geometry is the visible hair, animated by spring bones. Existing image-based methods produce realistic hair or a single fused mesh, while CHARM, the only generator of stylized hair cards, decodes a hairstyle autoregressively as a long sequence of control points.

Observing that a card hairstyle is an unordered set of artist-defined primitives, we propose HairDeck, which generates it as one: each card is a single token, and a set diffusion transformer denoises all cards together. From a single image, HairDeck generates the cards and the spring-bone chains that drive them, yielding an animatable asset that exports to ready-to-use downstream formats.

On CHARM’s own test set, it lowers Chamfer distance by 44% and card-orientation error by more than half while running 33 times faster, and from single images it outperforms CHARM, image-to-3D pipelines and strand-based methods.

A wall of hexagonal rooms, each pairing an input image with a generated hairstyle. The central blue hairstyle includes orange spring-bone chains.
From the image on the wall to the hair on the head. The central result shows the generated spring-bone chains.

RESULTS

Different characters. Individual cards.

Explore generated hairstyles, drawing styles, and spring bones in motion.

Select a result to enlarge

Hair colors are sampled from the input images for display.

METHOD

From a single image to moving hair.

Hair cards, generated together and connected to spring bones.

Three-stage HairDeck pipeline: encode each hair card as a token, jointly denoise the set conditioned on an image or point cloud, then decode the cards and generate spring-bone chains.
01

One card, one token

A compact token represents each card’s geometry, root position, and orientation.

02

Generate the set together

A set diffusion transformer denoises all card tokens jointly, conditioned on an image or a point cloud.

03

Make it move

A second transformer generates spring-bone chains. Geometric skinning binds the cards to them.

See the network architecture
Detailed architecture of the card VAE, card set diffusion transformer, and chain diffusion transformer.

POINT-CLOUD GENERATION

Better geometry. Faster generation.

Compared with CHARM on its 100 test hairstyles.

44%

lower Chamfer distance

0.0117 → 0.0066
16.8°

card-orientation error

40.0° with CHARM
33×

faster card generation

33.7 s → 1.01 s

Point-cloud benchmark. Timing measures card generation before meshing.

Point-cloud inputs with CHARM, MeshAnything V2, DeepMesh, BPT, HairDeck, and artist ground truth.
HairDeck generates individual cards. CHARM and HairDeck are colored per card, as in the artist ground truth.

TRY HAIRDECK

Bring a character’s hair into 3D.

Start with an image. Export hair cards, spring bones, and a VRM avatar.

Try the demo

BibTeX

@misc{he2026hairdeck,
  title  = {HairDeck: Animation-Ready Stylized Hair Cards from a Single Image},
  author = {Yuze He and Yixiang Wei and Wang Zhao and Chuhao Chen
            and Yanning Zhou and Yong-Jin Liu},
  year   = {2026},
  eprint = {2610.40599},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/2610.40599}
}