Research map / 3D vision / Face and shape
Perm: A Parametric Representation for Multi-Style 3D Hair Modeling
Read the paperCheck your idea against 108,967 papers
AI-extracted summary. Written by AI from the paper's full text. Numbers and claims can be wrong or missing context, so check the paper before you cite or build on it.
Perm is a lightweight learned parametric 3D hair representation that disentangles global guide strands from local curl patterns using a frequency-domain PCA strand code and separate generative models for guide and residual textures.
Problem
Existing 3D hair generative and reconstruction models jointly entangle global hair structure and local curl patterns, are heavy and task-specific, and lack a generic, editable hair prior.
Approach
Decompose hair into guide textures (low-frequency PCA coefficients, synthesized by StyleGAN2 from theta) and residual textures (high-frequency curl coefficients, synthesized by a VAE from beta), with a learned U-Net upsampler mapping guide strands to full hair, all built on a frequency-domain PCA strand representation.
Key results
- Freq. PCA strand representation achieves position error 0.020 with 19.50K params versus 0.158 to 1.211 for VAE variants with 0.76M to 15.67M params on 17 test hairstyles.
- Perm reaches position error 1.658 and curvature error 0.769 on test hairstyles, versus GroomGen's 2.570 and 6.199.
- StyleGAN2 guide texture synthesis reduces position error to 0.611 versus 1.163 for PCA-based guide textures.
Measured effects reported in the paper
| What was changed | Where | Measured | Effect |
|---|---|---|---|
| Use frequency-domain PCA instead of PCA without DFT | strand representation · Strand reconstruction (17 public hairstyles) | curvature error: 2.361 -> 2.150 | Helped |
| Use frequency-domain PCA instead of PCA without DFT | strand representation · Strand reconstruction (17 public hairstyles) | position error: 0.019 -> 0.020 | Mixed |
| Use frequency-domain PCA instead of neural strand VAE representations | strand representation · Strand reconstruction (17 public hairstyles) | position error: 0.158 -> 0.020 | Helped |
| Use frequency-domain PCA instead of PCA without DFT | strand representation trained on manually groomed hairstyles · Strand reconstruction (17 public hairstyles) | curvature error: 2.490 -> 2.364 | Helped |
| Use frequency-domain PCA instead of PCA without DFT | strand representation trained on manually groomed hairstyles · Strand reconstruction (17 public hairstyles) | position error: $0.026$ vs. $0.026$ | No clear effect |
| Use StyleGAN2 instead of PCA for guide-texture synthesis (ablation) | Perm · Guide texture reconstruction | position error: 1.163 -> 0.611 | Helped |
| Use StyleGAN2 instead of PCA for guide-texture synthesis (ablation) | Perm · Guide texture reconstruction | curvature error: 2.939 -> 1.582 | Helped |
| Predict blending weights and residuals instead of predicting strand PCA coefficients directly (ablation) | Perm guide-texture upsampler · Guide texture upsampling | reconstruction fidelity | Helped |
| Use U-Net upsampling instead of nearest-neighbor or bilinear interpolation (ablation) | Perm guide-texture upsampler · Guide texture upsampling | hair-shape fidelity | Helped |
| Omit residual textures (ablation) | Perm · Full hair synthesis | curl-pattern detail | Hurt |
| Use StyleGAN2 instead of VAE for residual-texture synthesis (ablation) | Perm · Residual texture reconstruction | reconstruction fidelity | Hurt |
| Use Perm instead of GroomGen | 3D hair parameterization · 17 testing hairstyles | position error: 2.570 -> 1.658 | Helped |
Surprising findings
- GroomGen's official checkpoints and the authors' reimplementation were found unstable; the GAN-based neural upsampler frequently collapsed during training.
- Plain PCA performs better than several deep VAE strand representations for strand reconstruction, contrary to common belief.
Limitations
- GroomGen could not be fully reproduced, and only a reimplementation was used for comparison.
- Training data is limited to 3D hair models (USC-HairSalon, 343 base models), with no direct training from in-the-wild 2D images.
- 100 points per strand is insufficient for long kinky hairstyles.
Experimental setup
Datasets: USC-HairSalon HairNet augmentation CT2Hair models StructureAwareHair models Cem Yuksel hair models private 80-hairstyle curly dataset
Benchmarks: 17 publicly available hair models (strand reconstruction) USC-HairSalon test/augmented data
Metrics: position error curvature error parameter count explained variance
Baselines: GroomGen HairStep HAAR Freq. VAE CNN VAE Transformer VAE MLP VAE PCA
Builds on: GroomGen StyleGAN2 SMPL-X HairNet data augmentation HairStep
Closest papers by meaning
- Doubly Hierarchical Geometric Representations for Strand-based Human Hairstyle Generation (NeurIPS 2024 · similarity 0.91)
- DiffLocks: Generating 3D Hair from a Single Image using Diffusion Models (CVPR 2025 · similarity 0.90)
- Text-Conditioned Generative Model of 3D Strand-based Human Hairstyles (CVPR 2024 · similarity 0.90)
- MonoHair: High-Fidelity Hair Modeling from a Monocular Video (CVPR 2024 · similarity 0.89)
- DGH: Dynamic Gaussian Hair (NeurIPS 2025 · similarity 0.89)
- Dr.Hair: Reconstructing Scalp-Connected Hair Strands without Pre-Training via Differentiable Rendering of Line Segments (CVPR 2024 · similarity 0.88)
Writing a paper in this area? scime draft is a free LaTeX editor with AI included, real-time co-authors and a check of your references and venue rules before you submit. It also imports OpenAI Prism projects.
