From 13cfbce9a77e6e96f33fe9564b586e0a7653363a Mon Sep 17 00:00:00 2001 From: motphys-developers Date: Fri, 21 Nov 2025 08:51:49 +0000 Subject: [PATCH] chore: release v0.0.2 --- README.md | 70 +++---- README.zh-CN.md | 102 ++++++++++ .../getting_started/installation.md | 51 ++++- motrix_envs/pyproject.toml | 2 +- motrix_rl/pyproject.toml | 3 +- pyproject.toml | 2 +- uv.lock | 188 +++++++++++++++++- 7 files changed, 370 insertions(+), 48 deletions(-) create mode 100644 README.zh-CN.md diff --git a/README.md b/README.md index 7942ce1..c13267e 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,36 @@ +**Language**: [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) 仿真引擎的强化学习框架,专为机器人仿真和训练设计。该项目提供了一个完整的强化学习开发平台,集成了多种仿真环境和训练框架。 +`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 仿真环境,定义了 observation、action、reward。与具体的 RL 框架无关,目前支持 MotrixSim 的 CPU 后端 -- **motrix_rl**: 集成 RL 框架,并使用 motrix_envs 里的各种环境参数进行训练。目前支持 SKRL 框架的 PPO 算法 +- **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**: 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 -- **统一接口**: 提供简洁统一的强化学习训练和评估接口 -- **多后端支持**: 支持 JAX 和 PyTorch 训练后端,可根据硬件环境灵活选择 -- **丰富环境**: 包含基础控制、运动、操作等多种机器人仿真环境 -- **高性能仿真**: 基于 MotrixSim 的高性能物理仿真引擎 -- **可视化训练**: 支持实时渲染和训练过程可视化 +- **Unified Interface**: Provides a concise and unified reinforcement learning training and evaluation interface +- **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 +- **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 git clone https://github.com/Motphys/MotrixLab @@ -38,63 +40,63 @@ cd MotrixLab git lfs pull ``` -### 安装依赖 +### Install Dependencies -安装全部依赖: +Install all dependencies: ```bash 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 uv sync --all-packages --extra skrl-jax ``` -安装 PyTorch 作为训练后端: +Install PyTorch as training backend: ```bash uv sync --all-packages --extra skrl-torch ``` -## 🎯 使用指南 +## 🎯 Usage Guide -### 环境可视化 +### Environment Visualization -查看环境而不执行训练: +View environments without executing training: ```bash uv run scripts/view.py --env cartpole ``` -### 训练模型 +### Model Training ```bash 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 uv run tensorboard --logdir runs/{env-name} ``` -### 模型推理 +### Model Inference -``` +```bash 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) -- Discussions: [加入讨论](https://github.com/Motphys/MotrixLab/discussions) +- GitHub Issues: [Submit Issues](https://github.com/Motphys/MotrixLab/issues) +- Discussions: [Join Discussion](https://github.com/Motphys/MotrixLab/discussions) diff --git a/README.zh-CN.md b/README.zh-CN.md new file mode 100644 index 0000000..7b51b92 --- /dev/null +++ b/README.zh-CN.md @@ -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) diff --git a/docs/source/zh_CN/user_guide/getting_started/installation.md b/docs/source/zh_CN/user_guide/getting_started/installation.md index 76754b6..b1304fc 100644 --- a/docs/source/zh_CN/user_guide/getting_started/installation.md +++ b/docs/source/zh_CN/user_guide/getting_started/installation.md @@ -1,9 +1,13 @@ # 安装环境 -## 安装要求 +本文档将引导您完成 MotrixLab 的安装与配置。请仔细阅读系统要求,并根据您的使用场景选择合适的安装方式。 + +## 系统要求 - **Python 版本**:{bdg-danger-line}`3.10.*` + 本项目依赖特定 Python 版本,其他版本暂不受支持: + | Python 版本 | 支持状态 | | :---------: | :------: | | ≤ 3.9 | ❌ | @@ -11,7 +15,8 @@ | ≥ 3.11 | ❌ | - **包管理器**:{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)` ```{note} - 各平台支持的功能如下: + 不同操作系统对 MotrixLab 各功能模块的支持情况如下: | 操作系统 | CPU 仿真 | 交互式查看器 | GPU 仿真 | | :------: | :------: | :----------: | :------: | @@ -27,25 +32,55 @@ | Windows | ✅ | ✅ | 🛠️ 开发中 | ``` -## 安装方法 +## 安装步骤 -### 克隆项目 +### 克隆项目仓库 ```bash git clone https://github.com/Motphys/MotrixLab.git 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 # 安装所有依赖 uv sync --all-packages --all-extras ``` -如果只需要安装一种训练后端,可以选择单独安装指定的后端类型: +如果仅需特定训练框架,可选择性安装以减少依赖体积: ```bash diff --git a/motrix_envs/pyproject.toml b/motrix_envs/pyproject.toml index edd2c4e..251b74b 100644 --- a/motrix_envs/pyproject.toml +++ b/motrix_envs/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "uv_build" [project] name = "motrix-envs" -version = "0.0.1" +version = "0.0.2" description = "Robot simulation environment library based on MotrixSim providing multi-task RL environments." authors = [{ name = "Motphys", email = "developers@motphys.com" }] requires-python = "==3.10.*" diff --git a/motrix_rl/pyproject.toml b/motrix_rl/pyproject.toml index 5039102..b5f73f5 100644 --- a/motrix_rl/pyproject.toml +++ b/motrix_rl/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "uv_build" [project] 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." authors = [{ name = "Motphys", email = "developers@motphys.com" }] requires-python = "==3.10.*" @@ -17,6 +17,7 @@ skrl-jax = [ "skrl===1.4.3; sys_platform == 'linux'", "jax[cuda12]==0.4.34; sys_platform == 'linux'", "flax===0.10.4; sys_platform == 'linux'", + "tensorflow===2.20.0; sys_platform == 'linux'", ] skrl-torch = [ "skrl===1.4.3", diff --git a/pyproject.toml b/pyproject.toml index df42205..9dd8ab8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "motrix-lab" -version = "0.0.1" +version = "0.0.2" description = "A general-purpose machine learning architecture designed for robot training" authors = [{ name = "Motphys", email = "developers@motphys.com" }] requires-python = "==3.10.*" diff --git a/uv.lock b/uv.lock index 017a53a..5765fbf 100644 --- a/uv.lock +++ b/uv.lock @@ -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 }, ] +[[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]] name = "autodocsumm" version = "0.2.14" @@ -185,6 +198,15 @@ wheels = [ { 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]] name = "flax" version = "0.10.4" @@ -213,6 +235,27 @@ wheels = [ { 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]] name = "grpcio" 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 }, ] +[[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]] name = "humanize" version = "4.14.0" @@ -375,6 +433,37 @@ wheels = [ { 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]] name = "markdown" version = "3.10" @@ -446,7 +535,7 @@ wheels = [ [[package]] name = "motrix-envs" -version = "0.0.1" +version = "0.0.2" source = { editable = "motrix_envs" } dependencies = [ { name = "motrixsim" }, @@ -457,7 +546,7 @@ requires-dist = [{ name = "motrixsim", specifier = ">=0.4.0" }] [[package]] name = "motrix-lab" -version = "0.0.1" +version = "0.0.2" source = { virtual = "." } [package.optional-dependencies] @@ -489,7 +578,7 @@ provides-extras = ["docs"] [[package]] name = "motrix-rl" -version = "0.0.1" +version = "0.0.2" source = { editable = "motrix_rl" } dependencies = [ { name = "gymnasium" }, @@ -502,6 +591,7 @@ skrl-jax = [ { name = "flax", marker = "sys_platform == 'linux'" }, { name = "jax", extra = ["cuda12"], marker = "sys_platform == 'linux'" }, { name = "skrl", marker = "sys_platform == 'linux'" }, + { name = "tensorflow", marker = "sys_platform == 'linux'" }, ] skrl-torch = [ { name = "skrl" }, @@ -523,6 +613,7 @@ requires-dist = [ { name = "python-abc", specifier = ">=0.2.0" }, { 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 = "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 = "torchaudio", marker = "extra == 'skrl-torch'", specifier = "===2.7.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 }, ] +[[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]] name = "nest-asyncio" 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 }, ] +[[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]] name = "orbax-checkpoint" 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 }, ] +[[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]] name = "skrl" 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 }, ] +[[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]] name = "tensorstore" 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 }, ] +[[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]] name = "tomli" 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 }, ] +[[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]] name = "zipp" version = "3.19.2"