---
title: pi05-mind2act
canonical_url: "https://www.modelscope.ai/models/iamzwxyy/pi05-mind2act"
md_url: "https://www.modelscope.ai/models/iamzwxyy/pi05-mind2act.md"
repository: iamzwxyy/pi05-mind2act
last_updated: 2026-11-04
license: other
downloads: 1
stars: 0
tags:
  - robotics
  - vision-language-action
  - pi05
  - mind2act
  - jax
---

# pi05-mind2act

> pi05-mind2act - An open-source model by iamzwxyy on ModelScope. Pi0.5 fine-tuned on Mind2Act bench30 for ARX X5 joint control. Final EMA inference checkpoint at step264305. JAX/OpenPI format.

iamzwxyy/pi05-mind2act is a machine learning model on ModelScope. licensed under other.

- **Repository**: iamzwxyy/pi05-mind2act
- **License**: other
- **Tags**: robotics, vision-language-action, pi05, mind2act, jax
- **Downloads**: 1
- **Stars**: 0
- **Last updated**: 2026-11-04

Source: https://www.modelscope.ai/models/iamzwxyy/pi05-mind2act

---

# Pi0.5 · Mind2Act bench30

Final EMA inference weights of Pi0.5 fine-tuned on Mind2Act bench30 for **ARX X5 joint control**. This release uses the original JAX/OpenPI checkpoint format and includes the normalization statistics required for inference.

## Model and training

| Item | Value |
| --- | --- |
| Base weights | `gs://openpi-assets/checkpoints/pi05_base` |
| Final step | 264305 |
| Training budget | 8.26 equivalent epochs |
| Data | 30 tasks, 90 task/difficulty groups, 4500 episodes, 8191528 frames, 30 Hz |
| Global batch | 256, trained on 4 × 8 A800 GPUs |
| Weight selection | EMA, decay 0.99 |
| Learning rate | Cosine; 1000-step warmup, peak 2.5e-5, terminal 2.5e-6 |
| Inputs | Three RGB cameras, 14D robot state, English instruction |
| Action horizon | 50 frames |
| Token limit | 256 |
| State/action layout | Left arm 6 joints + left gripper + right arm 6 joints + right gripper |
| Grippers | Absolute commands, 0 = closed and 1 = open |

The 12 arm joints were trained as deltas relative to the current state; grippers stayed absolute. The supplied inference loader applies the corresponding output transform and returns **absolute 14D joint/gripper commands**. Do not apply a second delta-to-absolute conversion. `adapt_to_pi=False` matches training.

Images must already be decoded to RGB. When reading XPolicyLab HDF5 episodes, use its official `decode_image_bit` helper; the dataset contains legacy and marked JPEG encodings. Do not substitute an unconditional channel swap.

## Files

```text
264305/
  params/                       # EMA parameters and Orbax/Zarr metadata
  assets/mind2act30/norm_stats.json
inference.py                    # Matching transforms and policy loader
model_config.json               # Public training/inference metadata
inference_environment.json      # Validated dependency versions
SHA256SUMS                      # Check every released file except this manifest
LICENSE.md                      # Gemma terms applying to the derived weights
LICENSE_OPENPI                  # OpenPI code license
NOTICE
```

Optimizer state and raw training data are not included. This is an inference release, not a checkpoint for exact optimizer-state training resumption. Download the entire `params/` tree, including hidden `.zarray` files; the directory is not a Transformers `save_pretrained` model.

## Download

```bash
pip install modelscope-hub
```

```python
from modelscope_hub import HubApi

HubApi(endpoint="https://modelscope.ai").download_repo(
    "iamzwxyy/pi05-mind2act", "model", local_dir="./pi05-mind2act"
)
```

Optionally verify the download inside the repository directory:

```bash
sha256sum -c SHA256SUMS
```

## Inference

Use OpenPI from [XPolicyLab](https://github.com/XPolicyLab/XPolicyLab) at revision `128e626278ef753fa8a86b16e3425a6359388b4c`, under `policy/Pi_05/openpi`, and install that package's environment. Validated package versions are recorded in `inference_environment.json`. ModelScope provides file hosting; inference runs locally through OpenPI.

From the downloaded model directory, with that OpenPI environment active:

```python
import numpy as np
from inference import load_policy

policy = load_policy(".")
observation = {
    "images": {
        "cam_high": head_rgb.transpose(2, 0, 1),
        "cam_left_wrist": left_wrist_rgb.transpose(2, 0, 1),
        "cam_right_wrist": right_wrist_rgb.transpose(2, 0, 1),
    },
    "state": np.asarray(robot_state_14d, dtype=np.float32),
    "prompt": instruction,
}
actions = policy.infer(observation)["actions"]  # (50, 14), absolute commands
```

The variables above are supplied by your robot or simulator: RGB images are HWC `uint8`, state joints are in radians, and both grippers use the 0–1 convention above. The underlying tokenizer may be downloaded by OpenPI on first use.

## Evaluation status

The full training run completed successfully. Training loss is not a task success rate. This release does not claim a held-out evaluation score or real-robot deployment validation. See `release_validation.json` for artifact and functional inference checks performed for this release.

## Provenance and licenses

The weights were modified by fine-tuning the Pi0.5 base model on Mind2Act bench30, and the released files are the resulting EMA parameters at step 264305. They are not the original base checkpoint. The parameter modifications are identified by this notice and the per-file SHA-256 manifest.

The PaliGemma/Gemma-derived components are subject to the **Gemma Terms of Use**, including the restrictions in Section 3.2 and the [Gemma Prohibited Use Policy](https://ai.google.dev/gemma/prohibited_use_policy). A copy of the upstream terms is included in `LICENSE.md`. OpenPI code is distributed under Apache-2.0; see `LICENSE_OPENPI`. The repository's custom license label reflects these upstream terms rather than labeling all model weights as Apache-only.

Upstream references: [Physical Intelligence OpenPI](https://github.com/Physical-Intelligence/openpi), [XPolicyLab](https://github.com/XPolicyLab/XPolicyLab).
