AutoRig: Deep Learning-Based Automatic Joint Placement for 3D Character Rigging

Developed by Ryan Wang
With technical support from Tommy Hu and Rui
View on GitHub →

Point cloud visualization

Overview

AutoRig is a machine learning system that automates skeletal joint placement for 3D bipedal characters using PointNet architecture. The system enables a one-click rigging solution by converting FBX models to point clouds, predicting 21 joint locations, and generating rigging-ready skeletons in Maya—eliminating the need for manual joint placement that requires extensive anatomical knowledge and rigging expertise.

Problem & Motivation

Traditional auto-rigging tools like Advanced Skeleton and Rigify still require users to manually place joints—a tedious process that demands deep knowledge of anatomy and joint deformation. This creates a significant barrier for 3D artists, modelers, and animators who lack rigging specialization. AutoRig solves this by automatically predicting and placing joints, making character rigging accessible to all skill levels.

Technical Pipeline

FBX Model → Point Cloud Conversion → PointNet Prediction → Maya Joint Creation

  1. Input: T-posed bipedal character (FBX format)
  2. Conversion: FBX converted to NPZ point cloud (2048 scattered points)
  3. Normalization: Model scaled to [-1, 1] range and centered
  4. Prediction: PointNet processes point cloud and outputs 21 joint locations
  5. Denormalization: Joints transformed back to original scale
  6. Output: Maya script creates joints at predicted locations
graph LR A[FBX Model] --> B[Point Cloud
Conversion] B --> C[Normalization
-1 to 1] C --> D[PointNet
Prediction] D --> E[Denormalization] E --> F[Maya Joint
Creation] style A fill:#e8e4dc style B fill:#e8e4dc style C fill:#e8e4dc style D fill:#d4cfc7 style E fill:#e8e4dc style F fill:#e8e4dc

Implementation Details

Model: Vanilla PointNet (PyTorch)
Training Data: 48 Mixamo T-posed characters + 1 test model
Training: 50 epochs (< 10 seconds)
Point Cloud: 2048 points per model (scattered sampling)
Output: 21 core skeletal joints (spine, arms, legs, head—no fingers/toes/face)
Accuracy: < 0.05 unit error in normalized space
Libraries: PyTorch, NumPy, Matplotlib, JSON

Results

Point cloud with original joints

pointcloud visualization of converted FBX

Point cloud with predicted joints

pointcloud visualization with predicted and original joints (Red joints are predicted joints, Orange joints are original)

Maya viewport with predicted joints

joints imported to Maya and applied to example character mesh

The model achieves sub-0.05 unit accuracy with real-time inference speed, successfully predicting joint locations that can be directly imported into Maya for rigging workflows.

Current Limitations

Future Development

Impact

AutoRig demonstrates that deep learning can significantly lower the technical barrier for character rigging, transforming a multi-hour manual process into a one-click solution. This enables artists without rigging expertise to focus on creative work while maintaining production-quality skeletal setups.

Tech Stack

Python PyTorch PointNet NumPy Matplotlib Maya Python API Mixamo

Project Type: Personal Research
Status: Prototype/Ongoing Development

References