{"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/morag-multi-fusion-retrieval-augmented","title":"MoRAG -- Multi-Fusion Retrieval Augmented Generation for Human Motion","arxiv_id":"2409.12140","date":"2024-09-18","proceeding":null,"authors":["Sai Shashank Kalakonda","Shubh Maheshwari","Ravi Kiran Sarvadevabhatla"],"abstract":"We introduce MoRAG, a novel multi-part fusion based retrieval-augmented generation strategy for text-based human motion generation. The method enhances motion diffusion models by leveraging additional knowledge obtained through an improved motion retrieval process. By effectively prompting large language models (LLMs), we address spelling errors and rephrasing issues in motion retrieval. Our approach utilizes a multi-part retrieval strategy to improve the generalizability of motion retrieval across the language space. We create diverse samples through the spatial composition of the retrieved motions. Furthermore, by utilizing low-level, part-specific motion information, we can construct motion samples for unseen text descriptions. Our experiments demonstrate that our framework can serve as a plug-and-play module, improving the performance of motion diffusion models. Code, pretrained models and sample videos are available at: https://motion-rag.github.io/","url_abs":"https://arxiv.org/abs/2409.12140v2","url_pdf":"https://arxiv.org/pdf/2409.12140v2.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":"abstracts"},"code_links":[{"paper_slug":"morag-multi-fusion-retrieval-augmented","repo_url":"https://github.com/Motion-RAG/MoRAG","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"GPL-3.0"}}],"tasks":[{"task_slug":"motion-generation","task_name":"Motion Generation"},{"task_slug":"retrieval","task_name":"Retrieval"},{"task_slug":"retrieval-augmented-generation","task_name":"Retrieval-augmented Generation"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2409.12140","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2409.12140"}},"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/Motion-RAG/MoRAG","reach":{"status":"ok","spdx":"GPL-3.0"}}],"summary":{"ran":9,"unverified":3},"by_repo_kind":{"official":{"samples":12,"ran":9,"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":12,"samples":[{"code_sha256_prefix":"99e4532516c34f63","entry":"amass_name_getter","repo":"Motion-RAG/MoRAG","repo_kind":"official","path":"MoRAG/morag_retrieval.py","file_url":"https://github.com/Motion-RAG/MoRAG/blob/HEAD/MoRAG/morag_retrieval.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"99e4532516c34f63"}},{"code_sha256_prefix":"16cc261fe9b0c405","entry":"axis_angle_rotation","repo":"Motion-RAG/MoRAG","repo_kind":"official","path":"MoRAG/MoRAG_Hands/src/geometry.py","file_url":"https://github.com/Motion-RAG/MoRAG/blob/HEAD/MoRAG/MoRAG_Hands/src/geometry.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"16cc261fe9b0c405"}},{"code_sha256_prefix":"8fb2bf58023b40a1","entry":"load_annotations","repo":"Motion-RAG/MoRAG","repo_kind":"official","path":"MoRAG/morag_retrieval.py","file_url":"https://github.com/Motion-RAG/MoRAG/blob/HEAD/MoRAG/morag_retrieval.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"8fb2bf58023b40a1"}},{"code_sha256_prefix":"029098c0420861da","entry":"matrix_to_quaternion","repo":"Motion-RAG/MoRAG","repo_kind":"official","path":"MoRAG/MoRAG_Hands/src/geometry.py","file_url":"https://github.com/Motion-RAG/MoRAG/blob/HEAD/MoRAG/MoRAG_Hands/src/geometry.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"029098c0420861da"}},{"code_sha256_prefix":"000b3a2e5186a974","entry":"quaternion_to_matrix","repo":"Motion-RAG/MoRAG","repo_kind":"official","path":"MoRAG/MoRAG_Hands/src/geometry.py","file_url":"https://github.com/Motion-RAG/MoRAG/blob/HEAD/MoRAG/MoRAG_Hands/src/geometry.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"000b3a2e5186a974"}},{"code_sha256_prefix":"c64a4e785daf9a27","entry":"read_config","repo":"Motion-RAG/MoRAG","repo_kind":"official","path":"MoRAG/demo/model.py","file_url":"https://github.com/Motion-RAG/MoRAG/blob/HEAD/MoRAG/demo/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"c64a4e785daf9a27"}},{"code_sha256_prefix":"8e0292a5562ba3ad","entry":"read_split","repo":"Motion-RAG/MoRAG","repo_kind":"official","path":"MoRAG/morag_retrieval.py","file_url":"https://github.com/Motion-RAG/MoRAG/blob/HEAD/MoRAG/morag_retrieval.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"8e0292a5562ba3ad"}},{"code_sha256_prefix":"eb8f3718bdd086a2","entry":"save_config","repo":"Motion-RAG/MoRAG","repo_kind":"official","path":"MoRAG/MoRAG_Hands/src/config.py","file_url":"https://github.com/Motion-RAG/MoRAG/blob/HEAD/MoRAG/MoRAG_Hands/src/config.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"eb8f3718bdd086a2"}},{"code_sha256_prefix":"b1f2817406d00870","entry":"x_dict_to_device","repo":"Motion-RAG/MoRAG","repo_kind":"official","path":"MoRAG/MoRAG_Hands/encode_dataset.py","file_url":"https://github.com/Motion-RAG/MoRAG/blob/HEAD/MoRAG/MoRAG_Hands/encode_dataset.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"b1f2817406d00870"}},{"code_sha256_prefix":"12cee6902a8b38e6","entry":"compute_sim_matrix","repo":"Motion-RAG/MoRAG","repo_kind":"official","path":"MoRAG/MoRAG_Hands/retrieval.py","file_url":"https://github.com/Motion-RAG/MoRAG/blob/HEAD/MoRAG/MoRAG_Hands/retrieval.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"12cee6902a8b38e6"}},{"code_sha256_prefix":"4c04b44e257e12ec","entry":"load_model_from_cfg","repo":"Motion-RAG/MoRAG","repo_kind":"official","path":"MoRAG/MoRAG_Hands/src/load.py","file_url":"https://github.com/Motion-RAG/MoRAG/blob/HEAD/MoRAG/MoRAG_Hands/src/load.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"4c04b44e257e12ec"}},{"code_sha256_prefix":"110ce6b662549d8b","entry":"read_config","repo":"Motion-RAG/MoRAG","repo_kind":"official","path":"MoRAG/MoRAG_Hands/src/config.py","file_url":"https://github.com/Motion-RAG/MoRAG/blob/HEAD/MoRAG/MoRAG_Hands/src/config.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"110ce6b662549d8b"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}