chore: release v0.0.2

This commit is contained in:
motphys-developers
2025-11-21 08:51:49 +00:00
parent 5133830b5a
commit 13cfbce9a7
7 changed files with 370 additions and 48 deletions

View File

@@ -1,34 +1,36 @@
**Language**: [English](README.md) | [简体中文](README.zh-CN.md)
# MotrixLab # MotrixLab
![GitHub License](https://img.shields.io/github/license/Motphys/MotrixLab) ![GitHub License](https://img.shields.io/github/license/Motphys/MotrixLab)
![Python Version](https://img.shields.io/badge/python-3.10-blue) ![Python Version](https://img.shields.io/badge/python-3.10-blue)
`MotrixLab` 是一个基于 [MotrixSim](https://github.com/Motphys/motrixsim-docs) 仿真引擎的强化学习框架,专为机器人仿真和训练设计。该项目提供了一个完整的强化学习开发平台,集成了多种仿真环境和训练框架。 `MotrixLab` is a reinforcement learning framework based on the [MotrixSim](https://github.com/Motphys/motrixsim-docs) simulation engine, designed specifically for robot simulation and training. This project provides a complete reinforcement learning development platform that integrates multiple simulation environments and training frameworks.
## 项目概述 ## Project Overview
该项目分为两个核心部分: The project is divided into two core components:
- **motrix_envs**: 基于 MotrixSim 构建的各种 RL 仿真环境,定义了 observationaction、reward。与具体的 RL 框架无关,目前支持 MotrixSim CPU 后端 - **motrix_envs**: Various RL simulation environments built on MotrixSim, defining observation, action, and reward. Framework-agnostic and currently supports MotrixSim's CPU backend
- **motrix_rl**: 集成 RL 框架,并使用 motrix_envs 里的各种环境参数进行训练。目前支持 SKRL 框架的 PPO 算法 - **motrix_rl**: Integrates RL frameworks and uses various environment parameters from motrix_envs for training. Currently supports SKRL framework's PPO algorithm
> 文档地址:https://motrixlab.readthedocs.io > Documentation: https://motrixlab.readthedocs.io
## 主要特性 ## Key Features
- **统一接口**: 提供简洁统一的强化学习训练和评估接口 - **Unified Interface**: Provides a concise and unified reinforcement learning training and evaluation interface
- **多后端支持**: 支持 JAX PyTorch 训练后端,可根据硬件环境灵活选择 - **Multi-backend Support**: Supports JAX and PyTorch training backends, with flexible selection based on hardware environment
- **丰富环境**: 包含基础控制、运动、操作等多种机器人仿真环境 - **Rich Environments**: Includes various robot simulation environments such as basic control, locomotion, and manipulation tasks
- **高性能仿真**: 基于 MotrixSim 的高性能物理仿真引擎 - **High-performance Simulation**: Built on MotrixSim's high-performance physics simulation engine
- **可视化训练**: 支持实时渲染和训练过程可视化 - **Visual Training**: Supports real-time rendering and training process visualization
## 🚀 快速开始 ## 🚀 Quick Start
> 以下示例使用了 Python 项目管理工具:[UV](https://docs.astral.sh/uv/) > The following examples use the Python project management tool: [UV](https://docs.astral.sh/uv/)
> >
> 在开始之前,请先[安装](https://docs.astral.sh/uv/getting-started/installation/)该工具。 > Before starting, please [install](https://docs.astral.sh/uv/getting-started/installation/) this tool.
### 克隆仓库 ### Clone Repository
```bash ```bash
git clone https://github.com/Motphys/MotrixLab git clone https://github.com/Motphys/MotrixLab
@@ -38,63 +40,63 @@ cd MotrixLab
git lfs pull git lfs pull
``` ```
### 安装依赖 ### Install Dependencies
安装全部依赖: Install all dependencies:
```bash ```bash
uv sync --all-packages --all-extras uv sync --all-packages --all-extras
``` ```
SKRL 框架支持 JAX(Flax) PyTorch 作为训练后端,您也可以根据自己的设备环境,选择只安装其中一种训练后端: SKRL framework supports JAX(Flax) or PyTorch as training backends. You can also choose to install only one training backend based on your hardware environment:
安装 JAX 作为训练后端(仅支持 Linux 平台): Install JAX as training backend (Linux only):
```bash ```bash
uv sync --all-packages --extra skrl-jax uv sync --all-packages --extra skrl-jax
``` ```
安装 PyTorch 作为训练后端: Install PyTorch as training backend:
```bash ```bash
uv sync --all-packages --extra skrl-torch uv sync --all-packages --extra skrl-torch
``` ```
## 🎯 使用指南 ## 🎯 Usage Guide
### 环境可视化 ### Environment Visualization
查看环境而不执行训练: View environments without executing training:
```bash ```bash
uv run scripts/view.py --env cartpole uv run scripts/view.py --env cartpole
``` ```
### 训练模型 ### Model Training
```bash ```bash
uv run scripts/train.py --env cartpole uv run scripts/train.py --env cartpole
``` ```
训练结果会保存在 `runs/{env-name}/` 目录下。 Training results are saved in the `runs/{env-name}/` directory.
通过 TensorBoard 查看训练数据: View training data through TensorBoard:
```bash ```bash
uv run tensorboard --logdir runs/{env-name} uv run tensorboard --logdir runs/{env-name}
``` ```
### 模型推理 ### Model Inference
``` ```bash
uv run scripts/play.py --env cartpole uv run scripts/play.py --env cartpole
``` ```
更多使用方式请参考[用户文档](https://motrixlab.readthedocs.io) For more usage methods, please refer to the [User Documentation](https://motrixlab.readthedocs.io)
## 📬 联系方式 ## 📬 Contact
有问题或建议?欢迎通过以下方式联系我们: Have questions or suggestions? Feel free to contact us through:
- GitHub Issues: [提交问题](https://github.com/Motphys/MotrixLab/issues) - GitHub Issues: [Submit Issues](https://github.com/Motphys/MotrixLab/issues)
- Discussions: [加入讨论](https://github.com/Motphys/MotrixLab/discussions) - Discussions: [Join Discussion](https://github.com/Motphys/MotrixLab/discussions)

102
README.zh-CN.md Normal file
View File

@@ -0,0 +1,102 @@
**语言**: [English](README.md) | [简体中文](README.zh-CN.md)
# MotrixLab
![GitHub License](https://img.shields.io/github/license/Motphys/MotrixLab)
![Python Version](https://img.shields.io/badge/python-3.10-blue)
`MotrixLab` 是一个基于 [MotrixSim](https://github.com/Motphys/motrixsim-docs) 仿真引擎的强化学习框架,专为机器人仿真和训练设计。该项目提供了一个完整的强化学习开发平台,集成了多种仿真环境和训练框架。
## 项目概述
该项目分为两个核心部分:
- **motrix_envs**: 基于 MotrixSim 构建的各种 RL 仿真环境,定义了 observation、action、reward。与具体的 RL 框架无关,目前支持 MotrixSim 的 CPU 后端
- **motrix_rl**: 集成 RL 框架,并使用 motrix_envs 里的各种环境参数进行训练。目前支持 SKRL 框架的 PPO 算法
> 文档地址https://motrixlab.readthedocs.io
## 主要特性
- **统一接口**: 提供简洁统一的强化学习训练和评估接口
- **多后端支持**: 支持 JAX 和 PyTorch 训练后端,可根据硬件环境灵活选择
- **丰富环境**: 包含基础控制、运动、操作等多种机器人仿真环境
- **高性能仿真**: 基于 MotrixSim 的高性能物理仿真引擎
- **可视化训练**: 支持实时渲染和训练过程可视化
## 🚀 快速开始
> 以下示例使用了 Python 项目管理工具:[UV](https://docs.astral.sh/uv/)
>
> 在开始之前,请先[安装](https://docs.astral.sh/uv/getting-started/installation/)该工具。
### 克隆仓库
```bash
git clone https://github.com/Motphys/MotrixLab
cd MotrixLab
git lfs pull
```
### 安装依赖
安装全部依赖:
```bash
uv sync --all-packages --all-extras
```
SKRL 框架支持 JAX(Flax)或 PyTorch 作为训练后端,您也可以根据自己的设备环境,选择只安装其中一种训练后端:
安装 JAX 作为训练后端(仅支持 Linux 平台):
```bash
uv sync --all-packages --extra skrl-jax
```
安装 PyTorch 作为训练后端:
```bash
uv sync --all-packages --extra skrl-torch
```
## 🎯 使用指南
### 环境可视化
查看环境而不执行训练:
```bash
uv run scripts/view.py --env cartpole
```
### 训练模型
```bash
uv run scripts/train.py --env cartpole
```
训练结果会保存在 `runs/{env-name}/` 目录下。
通过 TensorBoard 查看训练数据:
```bash
uv run tensorboard --logdir runs/{env-name}
```
### 模型推理
```
uv run scripts/play.py --env cartpole
```
更多使用方式请参考[用户文档](https://motrixlab.readthedocs.io)
## 📬 联系方式
有问题或建议?欢迎通过以下方式联系我们:
- GitHub Issues: [提交问题](https://github.com/Motphys/MotrixLab/issues)
- Discussions: [加入讨论](https://github.com/Motphys/MotrixLab/discussions)

View File

@@ -1,9 +1,13 @@
# 安装环境 # 安装环境
## 安装要求 本文档将引导您完成 MotrixLab 的安装与配置。请仔细阅读系统要求,并根据您的使用场景选择合适的安装方式。
## 系统要求
- **Python 版本**{bdg-danger-line}`3.10.*` - **Python 版本**{bdg-danger-line}`3.10.*`
本项目依赖特定 Python 版本,其他版本暂不受支持:
| Python 版本 | 支持状态 | | Python 版本 | 支持状态 |
| :---------: | :------: | | :---------: | :------: |
| ≤ 3.9 | ❌ | | ≤ 3.9 | ❌ |
@@ -11,7 +15,8 @@
| ≥ 3.11 | ❌ | | ≥ 3.11 | ❌ |
- **包管理器**{bdg-danger-line}`UV` - **包管理器**{bdg-danger-line}`UV`
[UV 安装参考](https://docs.astral.sh/uv/getting-started/installation/)
本项目采用 UV 作为唯一的包管理工具以提供快速、可复现的依赖管理环境。UV 的安装方法请参考[官方文档](https://docs.astral.sh/uv/getting-started/installation/)。
- **系统及架构** - **系统及架构**
@@ -19,7 +24,7 @@
- {bdg-danger-line}`Linux(x86_64)` - {bdg-danger-line}`Linux(x86_64)`
```{note} ```{note}
各平台支持的功能如下: 不同操作系统对 MotrixLab 各功能模块的支持情况如下:
| 操作系统 | CPU 仿真 | 交互式查看器 | GPU 仿真 | | 操作系统 | CPU 仿真 | 交互式查看器 | GPU 仿真 |
| :------: | :------: | :----------: | :------: | | :------: | :------: | :----------: | :------: |
@@ -27,25 +32,55 @@
| Windows | ✅ | ✅ | 🛠️ 开发中 | | Windows | ✅ | ✅ | 🛠️ 开发中 |
``` ```
## 安装方法 ## 安装步骤
### 克隆项目 ### 克隆项目仓库
```bash ```bash
git clone https://github.com/Motphys/MotrixLab.git git clone https://github.com/Motphys/MotrixLab.git
cd MotrixLab cd MotrixLab
``` ```
### 安装依赖 ### 配置依赖环境
使用 UV 安装项目依赖: :::{dropdown} 配置国内镜像源(可选)
:animate: fade-in
:color: warning
:icon: desktop-download
如果您身处中国大陆,建议配置国内镜像源以加速依赖下载:
1. 修改项目根目录的 `uv.toml` 文件
```toml
[[index]]
name = "mirror"
# 请填写您选择的国内镜像源,例如:
# 清华源: "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"
url = ""
[[index]]
name = "pytorch"
url = "https://download.pytorch.org/whl/cu128"
default = true
```
2. 在执行 `uv sync` 命令时添加 `--index-strategy unsafe-best-match` 参数:
```
uv sync --all-packages --all-extras --index-strategy unsafe-best-match
```
:::
执行以下命令安装完整依赖:
```bash ```bash
# 安装所有依赖 # 安装所有依赖
uv sync --all-packages --all-extras uv sync --all-packages --all-extras
``` ```
如果只需要安装一种训练后端,可选择单独安装指定的后端类型 如果仅需特定训练框架,可选择性安装以减少依赖体积
```bash ```bash

View File

@@ -4,7 +4,7 @@ build-backend = "uv_build"
[project] [project]
name = "motrix-envs" name = "motrix-envs"
version = "0.0.1" version = "0.0.2"
description = "Robot simulation environment library based on MotrixSim providing multi-task RL environments." description = "Robot simulation environment library based on MotrixSim providing multi-task RL environments."
authors = [{ name = "Motphys", email = "developers@motphys.com" }] authors = [{ name = "Motphys", email = "developers@motphys.com" }]
requires-python = "==3.10.*" requires-python = "==3.10.*"

View File

@@ -4,7 +4,7 @@ build-backend = "uv_build"
[project] [project]
name = "motrix-rl" name = "motrix-rl"
version = "0.0.1" version = "0.0.2"
description = "Reinforcement learning training framework based on SKRL with multi-backend unified training interface." description = "Reinforcement learning training framework based on SKRL with multi-backend unified training interface."
authors = [{ name = "Motphys", email = "developers@motphys.com" }] authors = [{ name = "Motphys", email = "developers@motphys.com" }]
requires-python = "==3.10.*" requires-python = "==3.10.*"
@@ -17,6 +17,7 @@ skrl-jax = [
"skrl===1.4.3; sys_platform == 'linux'", "skrl===1.4.3; sys_platform == 'linux'",
"jax[cuda12]==0.4.34; sys_platform == 'linux'", "jax[cuda12]==0.4.34; sys_platform == 'linux'",
"flax===0.10.4; sys_platform == 'linux'", "flax===0.10.4; sys_platform == 'linux'",
"tensorflow===2.20.0; sys_platform == 'linux'",
] ]
skrl-torch = [ skrl-torch = [
"skrl===1.4.3", "skrl===1.4.3",

View File

@@ -1,6 +1,6 @@
[project] [project]
name = "motrix-lab" name = "motrix-lab"
version = "0.0.1" version = "0.0.2"
description = "A general-purpose machine learning architecture designed for robot training" description = "A general-purpose machine learning architecture designed for robot training"
authors = [{ name = "Motphys", email = "developers@motphys.com" }] authors = [{ name = "Motphys", email = "developers@motphys.com" }]
requires-python = "==3.10.*" requires-python = "==3.10.*"

188
uv.lock generated
View File

@@ -43,6 +43,19 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/32/34/d4e1c02d3bee589efb5dfa17f88ea08bdb3e3eac12bc475462aec52ed223/alabaster-0.7.16-py3-none-any.whl", hash = "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92", size = 13511 }, { url = "https://files.pythonhosted.org/packages/32/34/d4e1c02d3bee589efb5dfa17f88ea08bdb3e3eac12bc475462aec52ed223/alabaster-0.7.16-py3-none-any.whl", hash = "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92", size = 13511 },
] ]
[[package]]
name = "astunparse"
version = "1.6.3"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "six" },
{ name = "wheel" },
]
sdist = { url = "https://files.pythonhosted.org/packages/f3/af/4182184d3c338792894f34a62672919db7ca008c89abee9b564dd34d8029/astunparse-1.6.3.tar.gz", hash = "sha256:5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872", size = 18290 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl", hash = "sha256:c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8", size = 12732 },
]
[[package]] [[package]]
name = "autodocsumm" name = "autodocsumm"
version = "0.2.14" version = "0.2.14"
@@ -185,6 +198,15 @@ wheels = [
{ url = "https://download.pytorch.org/whl/filelock-3.19.1-py3-none-any.whl" }, { url = "https://download.pytorch.org/whl/filelock-3.19.1-py3-none-any.whl" },
] ]
[[package]]
name = "flatbuffers"
version = "25.9.23"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/9d/1f/3ee70b0a55137442038f2a33469cc5fddd7e0ad2abf83d7497c18a2b6923/flatbuffers-25.9.23.tar.gz", hash = "sha256:676f9fa62750bb50cf531b42a0a2a118ad8f7f797a511eda12881c016f093b12", size = 22067 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/ee/1b/00a78aa2e8fbd63f9af08c9c19e6deb3d5d66b4dda677a0f61654680ee89/flatbuffers-25.9.23-py2.py3-none-any.whl", hash = "sha256:255538574d6cb6d0a79a17ec8bc0d30985913b87513a01cce8bcdb6b4c44d0e2", size = 30869 },
]
[[package]] [[package]]
name = "flax" name = "flax"
version = "0.10.4" version = "0.10.4"
@@ -213,6 +235,27 @@ wheels = [
{ url = "https://download.pytorch.org/whl/fsspec-2025.9.0-py3-none-any.whl" }, { url = "https://download.pytorch.org/whl/fsspec-2025.9.0-py3-none-any.whl" },
] ]
[[package]]
name = "gast"
version = "0.6.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/3c/14/c566f5ca00c115db7725263408ff952b8ae6d6a4e792ef9c84e77d9af7a1/gast-0.6.0.tar.gz", hash = "sha256:88fc5300d32c7ac6ca7b515310862f71e6fdf2c029bbec7c66c0f5dd47b6b1fb", size = 27708 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/a3/61/8001b38461d751cd1a0c3a6ae84346796a5758123f3ed97a1b121dfbf4f3/gast-0.6.0-py3-none-any.whl", hash = "sha256:52b182313f7330389f72b069ba00f174cfe2a06411099547288839c6cbafbd54", size = 21173 },
]
[[package]]
name = "google-pasta"
version = "0.2.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "six" },
]
sdist = { url = "https://files.pythonhosted.org/packages/35/4a/0bd53b36ff0323d10d5f24ebd67af2de10a1117f5cf4d7add90df92756f1/google-pasta-0.2.0.tar.gz", hash = "sha256:c9f2c8dfc8f96d0d5808299920721be30c9eec37f2389f28904f454565c8a16e", size = 40430 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl", hash = "sha256:b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed", size = 57471 },
]
[[package]] [[package]]
name = "grpcio" name = "grpcio"
version = "1.76.0" version = "1.76.0"
@@ -249,6 +292,21 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/f9/68/2bdc7b46b5f543dd865575f9d19716866bdb76e50dd33b71ed1a3dd8bb42/gymnasium-1.1.1-py3-none-any.whl", hash = "sha256:9c167ec0a2b388666e37f63b2849cd2552f7f5b71938574c637bb36487eb928a", size = 965410 }, { url = "https://files.pythonhosted.org/packages/f9/68/2bdc7b46b5f543dd865575f9d19716866bdb76e50dd33b71ed1a3dd8bb42/gymnasium-1.1.1-py3-none-any.whl", hash = "sha256:9c167ec0a2b388666e37f63b2849cd2552f7f5b71938574c637bb36487eb928a", size = 965410 },
] ]
[[package]]
name = "h5py"
version = "3.15.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "numpy" },
]
sdist = { url = "https://files.pythonhosted.org/packages/4d/6a/0d79de0b025aa85dc8864de8e97659c94cf3d23148394a954dc5ca52f8c8/h5py-3.15.1.tar.gz", hash = "sha256:c86e3ed45c4473564de55aa83b6fc9e5ead86578773dfbd93047380042e26b69", size = 426236 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/fc/2e/f1bb7de9b05112bfd14d5206090f0f92f1e75bbb412fbec5d4653c3d44dd/h5py-3.15.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c45802bcb711e128a6839cb6c01e9ac648dc55df045c9542a675c771f15c8d5", size = 4523605 },
{ url = "https://files.pythonhosted.org/packages/05/8a/63f4b08f3628171ce8da1a04681a65ee7ac338fde3cb3e9e3c9f7818e4da/h5py-3.15.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:64ce3f6470adb87c06e3a8dd1b90e973699f1759ad79bfa70c230939bff356c9", size = 4735346 },
{ url = "https://files.pythonhosted.org/packages/74/48/f16d12d9de22277605bcc11c0dcab5e35f06a54be4798faa2636b5d44b3c/h5py-3.15.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4411c1867b9899a25e983fff56d820a66f52ac326bbe10c7cdf7d832c9dcd883", size = 4175305 },
{ url = "https://files.pythonhosted.org/packages/d6/2f/47cdbff65b2ce53c27458c6df63a232d7bb1644b97df37b2342442342c84/h5py-3.15.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2cbc4104d3d4aca9d6db8c0c694555e255805bfeacf9eb1349bda871e26cacbe", size = 4653602 },
]
[[package]] [[package]]
name = "humanize" name = "humanize"
version = "4.14.0" version = "4.14.0"
@@ -375,6 +433,37 @@ wheels = [
{ url = "https://download.pytorch.org/whl/jinja2-3.1.6-py3-none-any.whl" }, { url = "https://download.pytorch.org/whl/jinja2-3.1.6-py3-none-any.whl" },
] ]
[[package]]
name = "keras"
version = "3.12.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "absl-py" },
{ name = "h5py" },
{ name = "ml-dtypes" },
{ name = "namex" },
{ name = "numpy" },
{ name = "optree" },
{ name = "packaging" },
{ name = "rich" },
]
sdist = { url = "https://files.pythonhosted.org/packages/9b/b8/8df141314a64a31d3a21762658826f716cdf4c261c7fcdb3f729958def55/keras-3.12.0.tar.gz", hash = "sha256:536e3f8385a05ae04e82e08715a1a59988578087e187b04cb0a6fad11743f07f", size = 1129187 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/ba/61/cc8be27bd65082440754be443b17b6f7c185dec5e00dfdaeab4f8662e4a8/keras-3.12.0-py3-none-any.whl", hash = "sha256:02b69e007d5df8042286c3bcc2a888539e3e487590ffb08f6be1b4354df50aa8", size = 1474424 },
]
[[package]]
name = "libclang"
version = "18.1.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/6e/5c/ca35e19a4f142adffa27e3d652196b7362fa612243e2b916845d801454fc/libclang-18.1.1.tar.gz", hash = "sha256:a1214966d08d73d971287fc3ead8dfaf82eb07fb197680d8b3859dbbbbf78250", size = 39612 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/1d/fc/716c1e62e512ef1c160e7984a73a5fc7df45166f2ff3f254e71c58076f7c/libclang-18.1.1-py2.py3-none-manylinux2010_x86_64.whl", hash = "sha256:c533091d8a3bbf7460a00cb6c1a71da93bffe148f172c7d03b1c31fbf8aa2a0b", size = 24515943 },
{ url = "https://files.pythonhosted.org/packages/3c/3d/f0ac1150280d8d20d059608cf2d5ff61b7c3b7f7bcf9c0f425ab92df769a/libclang-18.1.1-py2.py3-none-manylinux2014_aarch64.whl", hash = "sha256:54dda940a4a0491a9d1532bf071ea3ef26e6dbaf03b5000ed94dd7174e8f9592", size = 23784972 },
{ url = "https://files.pythonhosted.org/packages/fe/2f/d920822c2b1ce9326a4c78c0c2b4aa3fde610c7ee9f631b600acb5376c26/libclang-18.1.1-py2.py3-none-manylinux2014_armv7l.whl", hash = "sha256:cf4a99b05376513717ab5d82a0db832c56ccea4fd61a69dbb7bccf2dfb207dbe", size = 20259606 },
{ url = "https://files.pythonhosted.org/packages/2d/c2/de1db8c6d413597076a4259cea409b83459b2db997c003578affdd32bf66/libclang-18.1.1-py2.py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:69f8eb8f65c279e765ffd28aaa7e9e364c776c17618af8bff22a8df58677ff4f", size = 24921494 },
]
[[package]] [[package]]
name = "markdown" name = "markdown"
version = "3.10" version = "3.10"
@@ -446,7 +535,7 @@ wheels = [
[[package]] [[package]]
name = "motrix-envs" name = "motrix-envs"
version = "0.0.1" version = "0.0.2"
source = { editable = "motrix_envs" } source = { editable = "motrix_envs" }
dependencies = [ dependencies = [
{ name = "motrixsim" }, { name = "motrixsim" },
@@ -457,7 +546,7 @@ requires-dist = [{ name = "motrixsim", specifier = ">=0.4.0" }]
[[package]] [[package]]
name = "motrix-lab" name = "motrix-lab"
version = "0.0.1" version = "0.0.2"
source = { virtual = "." } source = { virtual = "." }
[package.optional-dependencies] [package.optional-dependencies]
@@ -489,7 +578,7 @@ provides-extras = ["docs"]
[[package]] [[package]]
name = "motrix-rl" name = "motrix-rl"
version = "0.0.1" version = "0.0.2"
source = { editable = "motrix_rl" } source = { editable = "motrix_rl" }
dependencies = [ dependencies = [
{ name = "gymnasium" }, { name = "gymnasium" },
@@ -502,6 +591,7 @@ skrl-jax = [
{ name = "flax", marker = "sys_platform == 'linux'" }, { name = "flax", marker = "sys_platform == 'linux'" },
{ name = "jax", extra = ["cuda12"], marker = "sys_platform == 'linux'" }, { name = "jax", extra = ["cuda12"], marker = "sys_platform == 'linux'" },
{ name = "skrl", marker = "sys_platform == 'linux'" }, { name = "skrl", marker = "sys_platform == 'linux'" },
{ name = "tensorflow", marker = "sys_platform == 'linux'" },
] ]
skrl-torch = [ skrl-torch = [
{ name = "skrl" }, { name = "skrl" },
@@ -523,6 +613,7 @@ requires-dist = [
{ name = "python-abc", specifier = ">=0.2.0" }, { name = "python-abc", specifier = ">=0.2.0" },
{ name = "skrl", marker = "sys_platform == 'linux' and extra == 'skrl-jax'", specifier = "===1.4.3" }, { name = "skrl", marker = "sys_platform == 'linux' and extra == 'skrl-jax'", specifier = "===1.4.3" },
{ name = "skrl", marker = "extra == 'skrl-torch'", specifier = "===1.4.3" }, { name = "skrl", marker = "extra == 'skrl-torch'", specifier = "===1.4.3" },
{ name = "tensorflow", marker = "sys_platform == 'linux' and extra == 'skrl-jax'", specifier = "===2.20.0" },
{ name = "torch", marker = "extra == 'skrl-torch'", specifier = "===2.7.0+cu128" }, { name = "torch", marker = "extra == 'skrl-torch'", specifier = "===2.7.0+cu128" },
{ name = "torchaudio", marker = "extra == 'skrl-torch'", specifier = "===2.7.0+cu128" }, { name = "torchaudio", marker = "extra == 'skrl-torch'", specifier = "===2.7.0+cu128" },
{ name = "torchvision", marker = "extra == 'skrl-torch'", specifier = "===0.22.0+cu128" }, { name = "torchvision", marker = "extra == 'skrl-torch'", specifier = "===0.22.0+cu128" },
@@ -579,6 +670,15 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/5f/df/76d0321c3797b54b60fef9ec3bd6f4cfd124b9e422182156a1dd418722cf/myst_parser-4.0.1-py3-none-any.whl", hash = "sha256:9134e88959ec3b5780aedf8a99680ea242869d012e8821db3126d427edc9c95d", size = 84579 }, { url = "https://files.pythonhosted.org/packages/5f/df/76d0321c3797b54b60fef9ec3bd6f4cfd124b9e422182156a1dd418722cf/myst_parser-4.0.1-py3-none-any.whl", hash = "sha256:9134e88959ec3b5780aedf8a99680ea242869d012e8821db3126d427edc9c95d", size = 84579 },
] ]
[[package]]
name = "namex"
version = "0.1.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/0c/c0/ee95b28f029c73f8d49d8f52edaed02a1d4a9acb8b69355737fdb1faa191/namex-0.1.0.tar.gz", hash = "sha256:117f03ccd302cc48e3f5c58a296838f6b89c83455ab8683a1e85f2a430aa4306", size = 6649 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/b2/bc/465daf1de06409cdd4532082806770ee0d8d7df434da79c76564d0f69741/namex-0.1.0-py3-none-any.whl", hash = "sha256:e2012a474502f1e2251267062aae3114611f07df4224b6e06334c57b0f2ce87c", size = 5905 },
]
[[package]] [[package]]
name = "nest-asyncio" name = "nest-asyncio"
version = "1.6.0" version = "1.6.0"
@@ -772,6 +872,23 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/b9/33/f86091c706db1a5459f501830241afff2ecab3532725c188ea57be6e54de/optax-0.2.5-py3-none-any.whl", hash = "sha256:966deae936207f268ac8f564d8ed228d645ac1aaddefbbf194096d2299b24ba8", size = 354324 }, { url = "https://files.pythonhosted.org/packages/b9/33/f86091c706db1a5459f501830241afff2ecab3532725c188ea57be6e54de/optax-0.2.5-py3-none-any.whl", hash = "sha256:966deae936207f268ac8f564d8ed228d645ac1aaddefbbf194096d2299b24ba8", size = 354324 },
] ]
[[package]]
name = "optree"
version = "0.18.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "typing-extensions" },
]
sdist = { url = "https://files.pythonhosted.org/packages/83/8e/09d899ad531d50b79aa24e7558f604980fe4048350172e643bb1b9983aec/optree-0.18.0.tar.gz", hash = "sha256:3804fb6ddc923855db2dc4805b4524c66e00f1ef30b166be4aadd52822b13e06", size = 165178 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/73/93/463a531b863bffae92d6d1c7857f655234f12ad46fe088bf5bd5cd37cd67/optree-0.18.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e058cc51d9d57b45801060af9f74765b95bedfc59fd6df1c7489ae0825126be5", size = 349724 },
{ url = "https://files.pythonhosted.org/packages/b9/4f/7d54f0eeea24f5893422d65fce835d80e644ebac8a4570d762f994cfe97c/optree-0.18.0-cp310-cp310-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:daab231cf768937ce4675376ea3e214d399116d9867a6737372c31c58630bdfc", size = 404190 },
{ url = "https://files.pythonhosted.org/packages/66/af/044080368dc8ab809c5b089ad3132e7775043c5a8a165465df1f0c99dd62/optree-0.18.0-cp310-cp310-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ea357657143f364a764b63b2b1ce12d77156d48a1f32def990b696d755acb629", size = 401798 },
{ url = "https://files.pythonhosted.org/packages/0b/97/c449712ccb50af3cb2608718e503e31b259aa55de40ee83bebb159b07593/optree-0.18.0-cp310-cp310-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f81f5340c8df50662abaf753ab07095901e40b934efb27da50032a4ae71c5a97", size = 397477 },
{ url = "https://files.pythonhosted.org/packages/66/8e/bdda357f31e2b7c80b61b9785e6dea25e94c01e7237c7a8b1af38f369ee4/optree-0.18.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:66f142c743732cd4e630ea84415f654a00c792793c7f80d4511167f0f89796a6", size = 386631 },
{ url = "https://files.pythonhosted.org/packages/a8/2f/32575d5ac11993c19a6b60f6e15cafcc807adabf92caf06824bc3b5d50f9/optree-0.18.0-cp310-cp310-manylinux_2_39_riscv64.whl", hash = "sha256:55a2ccd121fccc9df961e982db2f4e8f2b4f7015e814ef70b1140514cdffe214", size = 347972 },
]
[[package]] [[package]]
name = "orbax-checkpoint" name = "orbax-checkpoint"
version = "0.11.5" version = "0.11.5"
@@ -976,6 +1093,15 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/05/5b/83e1ff87eb60ca706972f7e02e15c0b33396e7bdbd080069a5d1b53cf0d8/simplejson-3.20.2-py3-none-any.whl", hash = "sha256:3b6bb7fb96efd673eac2e4235200bfffdc2353ad12c54117e1e4e2fc485ac017", size = 57309 }, { url = "https://files.pythonhosted.org/packages/05/5b/83e1ff87eb60ca706972f7e02e15c0b33396e7bdbd080069a5d1b53cf0d8/simplejson-3.20.2-py3-none-any.whl", hash = "sha256:3b6bb7fb96efd673eac2e4235200bfffdc2353ad12c54117e1e4e2fc485ac017", size = 57309 },
] ]
[[package]]
name = "six"
version = "1.17.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050 },
]
[[package]] [[package]]
name = "skrl" name = "skrl"
version = "1.4.3" version = "1.4.3"
@@ -1195,6 +1321,38 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/73/c6/825dab04195756cf8ff2e12698f22513b3db2f64925bdd41671bfb33aaa5/tensorboard_data_server-0.7.2-py3-none-manylinux_2_31_x86_64.whl", hash = "sha256:ef687163c24185ae9754ed5650eb5bc4d84ff257aabdc33f0cc6f74d8ba54530", size = 6590363 }, { url = "https://files.pythonhosted.org/packages/73/c6/825dab04195756cf8ff2e12698f22513b3db2f64925bdd41671bfb33aaa5/tensorboard_data_server-0.7.2-py3-none-manylinux_2_31_x86_64.whl", hash = "sha256:ef687163c24185ae9754ed5650eb5bc4d84ff257aabdc33f0cc6f74d8ba54530", size = 6590363 },
] ]
[[package]]
name = "tensorflow"
version = "2.20.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "absl-py" },
{ name = "astunparse" },
{ name = "flatbuffers" },
{ name = "gast" },
{ name = "google-pasta" },
{ name = "grpcio" },
{ name = "h5py" },
{ name = "keras" },
{ name = "libclang" },
{ name = "ml-dtypes" },
{ name = "numpy" },
{ name = "opt-einsum" },
{ name = "packaging" },
{ name = "protobuf" },
{ name = "requests" },
{ name = "setuptools" },
{ name = "six" },
{ name = "tensorboard" },
{ name = "termcolor" },
{ name = "typing-extensions" },
{ name = "wrapt" },
]
wheels = [
{ url = "https://files.pythonhosted.org/packages/ff/07/ea91ac67a9fd36d3372099f5a3e69860ded544f877f5f2117802388f4212/tensorflow-2.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02a0293d94f5c8b7125b66abf622cc4854a33ae9d618a0d41309f95e091bbaea", size = 259307122 },
{ url = "https://files.pythonhosted.org/packages/e5/9e/0d57922cf46b9e91de636cd5b5e0d7a424ebe98f3245380a713f1f6c2a0b/tensorflow-2.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7abd7f3a010e0d354dc804182372779a722d474c4d8a3db8f4a3f5baef2a591e", size = 620425510 },
]
[[package]] [[package]]
name = "tensorstore" name = "tensorstore"
version = "0.1.78" version = "0.1.78"
@@ -1209,6 +1367,15 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/f7/ea/c1b4cc6a089a39f63e8d189a55c715e393995628b12b4c8560b3ae4874ba/tensorstore-0.1.78-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:90570b867f9100f7405e4116c73910d0bd283a101500ea5680c5a8a881ea05c6", size = 20048971 }, { url = "https://files.pythonhosted.org/packages/f7/ea/c1b4cc6a089a39f63e8d189a55c715e393995628b12b4c8560b3ae4874ba/tensorstore-0.1.78-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:90570b867f9100f7405e4116c73910d0bd283a101500ea5680c5a8a881ea05c6", size = 20048971 },
] ]
[[package]]
name = "termcolor"
version = "3.2.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/87/56/ab275c2b56a5e2342568838f0d5e3e66a32354adcc159b495e374cda43f5/termcolor-3.2.0.tar.gz", hash = "sha256:610e6456feec42c4bcd28934a8c87a06c3fa28b01561d46aa09a9881b8622c58", size = 14423 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/f9/d5/141f53d7c1eb2a80e6d3e9a390228c3222c27705cbe7f048d3623053f3ca/termcolor-3.2.0-py3-none-any.whl", hash = "sha256:a10343879eba4da819353c55cb8049b0933890c2ebf9ad5d3ecd2bb32ea96ea6", size = 7698 },
]
[[package]] [[package]]
name = "tomli" name = "tomli"
version = "2.3.0" version = "2.3.0"
@@ -1358,6 +1525,21 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/0b/2c/87f3254fd8ffd29e4c02732eee68a83a1d3c346ae39bc6822dcbcb697f2b/wheel-0.45.1-py3-none-any.whl", hash = "sha256:708e7481cc80179af0e556bbf0cc00b8444c7321e2700b8d8580231d13017248", size = 72494 }, { url = "https://files.pythonhosted.org/packages/0b/2c/87f3254fd8ffd29e4c02732eee68a83a1d3c346ae39bc6822dcbcb697f2b/wheel-0.45.1-py3-none-any.whl", hash = "sha256:708e7481cc80179af0e556bbf0cc00b8444c7321e2700b8d8580231d13017248", size = 72494 },
] ]
[[package]]
name = "wrapt"
version = "2.0.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/49/2a/6de8a50cb435b7f42c46126cf1a54b2aab81784e74c8595c8e025e8f36d3/wrapt-2.0.1.tar.gz", hash = "sha256:9c9c635e78497cacb81e84f8b11b23e0aacac7a136e73b8e5b2109a1d9fc468f", size = 82040 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/c6/93/5cf92edd99617095592af919cb81d4bff61c5dbbb70d3c92099425a8ec34/wrapt-2.0.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:36982b26f190f4d737f04a492a68accbfc6fa042c3f42326fdfbb6c5b7a20a31", size = 113688 },
{ url = "https://files.pythonhosted.org/packages/a0/0a/e38fc0cee1f146c9fb266d8ef96ca39fb14a9eef165383004019aa53f88a/wrapt-2.0.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:23097ed8bc4c93b7bf36fa2113c6c733c976316ce0ee2c816f64ca06102034ef", size = 115698 },
{ url = "https://files.pythonhosted.org/packages/b0/85/bef44ea018b3925fb0bcbe9112715f665e4d5309bd945191da814c314fd1/wrapt-2.0.1-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:8bacfe6e001749a3b64db47bcf0341da757c95959f592823a93931a422395013", size = 112096 },
{ url = "https://files.pythonhosted.org/packages/7c/0b/733a2376e413117e497aa1a5b1b78e8f3a28c0e9537d26569f67d724c7c5/wrapt-2.0.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:8ec3303e8a81932171f455f792f8df500fc1a09f20069e5c16bd7049ab4e8e38", size = 114878 },
{ url = "https://files.pythonhosted.org/packages/da/03/d81dcb21bbf678fcda656495792b059f9d56677d119ca022169a12542bd0/wrapt-2.0.1-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:3f373a4ab5dbc528a94334f9fe444395b23c2f5332adab9ff4ea82f5a9e33bc1", size = 111298 },
{ url = "https://files.pythonhosted.org/packages/c9/d5/5e623040e8056e1108b787020d56b9be93dbbf083bf2324d42cde80f3a19/wrapt-2.0.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f49027b0b9503bf6c8cdc297ca55006b80c2f5dd36cecc72c6835ab6e10e8a25", size = 113361 },
{ url = "https://files.pythonhosted.org/packages/15/d1/b51471c11592ff9c012bd3e2f7334a6ff2f42a7aed2caffcf0bdddc9cb89/wrapt-2.0.1-py3-none-any.whl", hash = "sha256:4d2ce1bf1a48c5277d7969259232b57645aae5686dba1eaeade39442277afbca", size = 44046 },
]
[[package]] [[package]]
name = "zipp" name = "zipp"
version = "3.19.2" version = "3.19.2"