Skip to main content

No project description provided

Project description

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 length D containing the names of each joint.
  • body_names: a list of length B containing the names of each link.
  • dof_positions: a numpy array of shape (F, D) containing the rotational positions of the joints in rad.
  • dof_velocities: a numpy array of shape (F, D) containing the rotational (angular) velocities of the joints in rad/s.
  • body_positions: a numpy array of shape (F, B, 3) containing the locations of each body in world frame, in m.
  • 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, in m/s.
  • body_angular_velocities: a numpy array of shape (F, B, 3) containing the rotational (angular) velocities of each body in world frame, in rad/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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mikumotion-2025.7.25.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mikumotion-2025.7.25-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file mikumotion-2025.7.25.tar.gz.

File metadata

  • Download URL: mikumotion-2025.7.25.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for mikumotion-2025.7.25.tar.gz
Algorithm Hash digest
SHA256 77edfff2b5019fe8e49d01d8ddefffd8caae541cd5756584ee38a77507c93046
MD5 78482484e41262b330c6a348e269cce6
BLAKE2b-256 098c47519cfc9b833ebe851cdf2329d69ac98a73f7d6dde90befbda105c225e1

See more details on using hashes here.

File details

Details for the file mikumotion-2025.7.25-py3-none-any.whl.

File metadata

  • Download URL: mikumotion-2025.7.25-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for mikumotion-2025.7.25-py3-none-any.whl
Algorithm Hash digest
SHA256 b24a310b945a2055c6b827998b9da9b049c600f2f1b707038ca80e8514bf9f83
MD5 2ba5b2e2bd3785f01526011490082dfe
BLAKE2b-256 6d41ed291c8b5a42bdb7eebc2ba2ff0a65cab2339ba635942cbcba7c1de8586e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page