{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/one-model-to-rig-them-all-diverse-skeleton","title":"One Model to Rig Them All: Diverse Skeleton Rigging with UniRig","arxiv_id":"2504.12451","date":"2025-04-16","proceeding":null,"authors":["Jia-Peng Zhang","Cheng-Feng Pu","Meng-Hao Guo","Yan-Pei Cao","Shi-Min Hu"],"abstract":"The rapid evolution of 3D content creation, encompassing both AI-powered methods and traditional workflows, is driving an unprecedented demand for automated rigging solutions that can keep pace with the increasing complexity and diversity of 3D models. We introduce UniRig, a novel, unified framework for automatic skeletal rigging that leverages the power of large autoregressive models and a bone-point cross-attention mechanism to generate both high-quality skeletons and skinning weights. Unlike previous methods that struggle with complex or non-standard topologies, UniRig accurately predicts topologically valid skeleton structures thanks to a new Skeleton Tree Tokenization method that efficiently encodes hierarchical relationships within the skeleton. To train and evaluate UniRig, we present Rig-XL, a new large-scale dataset of over 14,000 rigged 3D models spanning a wide range of categories. UniRig significantly outperforms state-of-the-art academic and commercial methods, achieving a 215% improvement in rigging accuracy and a 194% improvement in motion accuracy on challenging datasets. Our method works seamlessly across diverse object categories, from detailed anime characters to complex organic and inorganic structures, demonstrating its versatility and robustness. By automating the tedious and time-consuming rigging process, UniRig has the potential to speed up animation pipelines with unprecedented ease and efficiency. Project Page: https://zjp-shadow.github.io/works/UniRig/","url_abs":"https://arxiv.org/abs/2504.12451v1","url_pdf":"https://arxiv.org/pdf/2504.12451v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"links_only","authors_date_abstract":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license), from the Kaggle arXiv metadata snapshot of 2026-09-12"},"code_links":[{"paper_slug":"one-model-to-rig-them-all-diverse-skeleton","repo_url":"https://github.com/VAST-AI-Research/UniRig","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2504.12451","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2504.12451"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/VAST-AI-Research/UniRig","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":5},"by_repo_kind":{"official":{"samples":5,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"70f815ea28f48d80","entry":"J2J","repo":"VAST-AI-Research/UniRig","repo_kind":"official","path":"src/system/metrics.py","file_url":"https://github.com/VAST-AI-Research/UniRig/blob/HEAD/src/system/metrics.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"70f815ea28f48d80"}},{"code_sha256_prefix":"43e9f59acb4d3264","entry":"axis","repo":"VAST-AI-Research/UniRig","repo_kind":"official","path":"src/inference/merge.py","file_url":"https://github.com/VAST-AI-Research/UniRig/blob/HEAD/src/inference/merge.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"43e9f59acb4d3264"}},{"code_sha256_prefix":"1b5af4aebedc37c1","entry":"download","repo":"VAST-AI-Research/UniRig","repo_kind":"official","path":"src/inference/download.py","file_url":"https://github.com/VAST-AI-Research/UniRig/blob/HEAD/src/inference/download.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1b5af4aebedc37c1"}},{"code_sha256_prefix":"4891b52b872a8fc4","entry":"points_to_segments_distance","repo":"VAST-AI-Research/UniRig","repo_kind":"official","path":"src/system/metrics.py","file_url":"https://github.com/VAST-AI-Research/UniRig/blob/HEAD/src/system/metrics.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4891b52b872a8fc4"}},{"code_sha256_prefix":"3dffdb30953e74cb","entry":"sample_bones","repo":"VAST-AI-Research/UniRig","repo_kind":"official","path":"src/system/metrics.py","file_url":"https://github.com/VAST-AI-Research/UniRig/blob/HEAD/src/system/metrics.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3dffdb30953e74cb"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}