MikuMotionTools
MikuMotionTools contains various functions for converting MMD (MikuMikuDance) motions and other motion file formats into armature motion format that can be used in the Isaac Lab RL training environment.
Getting Started
Create the environment
uv sync
To run the examples, do
uv pip install -e .
Install the library
From pip (coming soon)
uv pip install mikumotion
From source
git clone https://github.com/T-K-233/MikuMotionTools.git
cd ./MikuMotionTools/
uv pip install -e .
Directory Structure
blender-projects/ stores the blender project files.
mikumotion/ stores the Python source file of the library.
data/motions/ stores the converted motions.
data/robots/ stores the robot asset file used during inverse kinematic solving.
Note: Due to licensing issue, the Blender project files and MMD motions should be retrieved from the original authors. For internal developers, the mirror of this directory is stored at Google Drive.
Motion Format
This library uses the motion file format defined in IsaacLab MotionLoader.
Each motion file is a numpy dictionary with the following fields. Here, we assume the robot has D number of joints and B number of linkages, and the motion file has F frames.
fps: an int64 number representing the frame rate of the motion data.dof_names: a list of lengthDcontaining the names of each joint.body_names: a list of lengthBcontaining the names of each link.dof_positions: a numpy array of shape(F, D)containing the rotational positions of the joints inrad.dof_velocities: a numpy array of shape(F, D)containing the rotational (angular) velocities of the joints inrad/s.body_positions: a numpy array of shape(F, B, 3)containing the locations of each body in world frame, inm.body_rotations: a numpy array of shape(F, B, 4)containing the rotations of each body in world frame, in quaternion(qw, qx, qy, qz).body_linear_velocities: a numpy array of shape(F, B, 3)containing the linear velocities of each body in world frame, inm/s.body_angular_velocities: a numpy array of shape(F, B, 3)containing the rotational (angular) velocities of each body in world frame, inrad/s.
The converted motion file is targeted for one particular robot skeleton structure.
To ensure best performance, also make sure that the frame rate matches the training environment policy update rate to avoid expensive interpolations.
Working with MMD
To import and convert MMD motions in Blender, the MMD Tools plugin needs to be installed to Blender.
Release files for mikumotion 2025.7.25
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mikumotion-2025.7.25.tar.gz | 13.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mikumotion-2025.7.25-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 26.2 kB
Release files / mikumotion-2025.7.25.tar.gz
| Download URL | mikumotion-2025.7.25.tar.gz |
|---|---|
| Size | 13.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
77edfff2b5019fe8e49d01d8ddefffd8caae541cd5756584ee38a77507c93046
|
|
BLAKE2b-256 checksum How to use checksums |
098c47519cfc9b833ebe851cdf2329d69ac98a73f7d6dde90befbda105c225e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.18
|
Release files / mikumotion-2025.7.25-py3-none-any.whl
| Download URL | mikumotion-2025.7.25-py3-none-any.whl |
|---|---|
| Size | 12.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b24a310b945a2055c6b827998b9da9b049c600f2f1b707038ca80e8514bf9f83
|
|
BLAKE2b-256 checksum How to use checksums |
6d41ed291c8b5a42bdb7eebc2ba2ff0a65cab2339ba635942cbcba7c1de8586e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.18
|