This repository contains materials developed by LY Corporation and has been temporarily open-sourced for our research project.
- Temporary Release: This repository is temporarily available as open-source. Therefore this repository may be turn into read-only or private anytime.
- Attribution: All code and materials in this repository are owned by LY Corporation.
Code of the paper "MotionSpaceFlow: Representation-Aware Flow Matching in Direct Motion Space". MotionSpaceFlow (MSFlow) generates full-resolution motion directly, without a learned motion encoder or decoder.
Installation, pretrained models, and data
uv syncDownload glove to the glove folder and t2m_evaluators to the checkpoints folder from the MARDM repository for robust 67-dimensional evaluation.
Download the pretrained models from Hugging Face and place them in checkpoints/t2m/.
Download the HumanML3D dataset from the HumanML3D repository. Extract it into the datasets folder.
The complete directory structure should look like this:
sample-code
│ README.md
│ pyproject.toml
| ...
|
└───glove
└───train
└───...
│
└───datasets
| └───HumanML3D
| └───new_joint_vecs
| └───...
│
└───checkpoints
└───t2m
└───text_not_match
└───text_not_match_clip
└───MMDiT_pretrained
└───MMDiT_xyz_pretrained
Demo scripts
Run the pretrained 263-dimensional model with:uv run python -m sample.demo_msflow_263 name=MMDiT_pretrainedRun the pretrained XYZ model with:
uv run python -m sample.demo_msflow_xyz name=MMDiT_xyz_pretrained Additional Hydra overrides such as input_text, prompt_csv, num_samples,
and exp can be appended to either command.
The joint-control launcher uses MMDiT_xyz_pretrained and generates the kick,
walk, cartwheel, and run_circle examples sequentially on one GPU:
bash sample/demo_joint_control.shOutputs are written to
generations/joint_control/<action>/.
Train MSFlow models
uv run python -m train.train_msflow_263 name=<exp_name>uv run python -m train.train_msflow_xyz name=<exp_name>Evaluate MSFlow models
uv run python -m eval.eval_msflow_263 name=<exp_name>Use name=MMDiT_pretrained to evaluate the pretrained model.
uv run python -m eval.eval_msflow_xyz name=<exp_name>Use name=MMDiT_xyz_pretrained to evaluate the pretrained model.
SnapMoGen models
Note: The SnapMoGen models are an early version.
Run uv sync, then place the SnapMoGen dataset under datasets/SnapMoGen/. It needs meta_data/, data_split_info/, renamed_feats/, and all_caption_clean.json. Place the SnapMoGen repository at datasets/SnapMoGen/SnapMoGen/, including its evaluator files under checkpoint_dir/snapmogen/evaluator/.
uv run python -m train.train_msflow_snap name=MMDiT_snapuv run python -m eval.eval_msflow_snap name=MMDiT_snapSome parts of our code are based on ACMDM and other third-party software listed in NOTICE.txt.
@article{yu2026msflow,
title={MotionSpaceFlow: Representation-Aware Flow Matching in Direct Motion Space},
author={Yu, Qing and Fujiwara, Kent},
journal={arXiv preprint arXiv:2609.34190},
year={2026}
}As this project is temporarily open-sourced, we are not accepting contributions. For feedback or inquiries, please open an issue in this repository.
This code is dedicated to the public domain under CC0 1.0. You may copy, modify, and distribute it without restriction, and the authors make no warranties or guarantees regarding its use.
Additionally, this repository contains third-party software. Refer to NOTICE.txt for more details, and follow the applicable terms and conditions.

