# Meta-World Sawyer shelf-place-v3 scripted controller

Meta-World Sawyer shelf-place-v3 scripted controller. Bounded, source-pinned simulation with an explicit task contract and retained fixed-case outcomes.

Record version: `1.0.0` · Hub commit: `f97266a5cdd2c600cd376397a54892f08290df20`

## Executable interface

```json
{
  "version": "1",
  "kind": "task",
  "abstraction_level": 2,
  "execution_domain": "simulation",
  "language": "python",
  "input_transport": "json_file_or_inline",
  "output_transport": "json_stdout",
  "output_selector": "outputs",
  "conventions": {
    "linear_unit": "m",
    "angular_unit": "rad",
    "time_unit": "s",
    "coordinate_frame": "right_handed_world_xyz; +z_up",
    "joint_order": "not_used",
    "quaternion_order": "not_used"
  },
  "input_schema": {
    "type": "object",
    "required": [
      "seed"
    ],
    "properties": {
      "seed": {
        "type": "integer",
        "minimum": 0,
        "maximum": 10000
      }
    },
    "additionalProperties": false
  },
  "output_schema": {
    "type": "object",
    "required": [
      "success_window",
      "native_success",
      "steps",
      "control_effort",
      "hand_movement_m",
      "native_metrics"
    ],
    "properties": {
      "success_window": {
        "type": "array",
        "minItems": 1,
        "maxItems": 20,
        "items": {
          "type": "boolean"
        }
      },
      "native_success": {
        "type": "boolean"
      },
      "steps": {
        "type": "integer",
        "minimum": 1,
        "maximum": 500
      },
      "control_effort": {
        "type": "number",
        "minimum": 0,
        "maximum": 10000
      },
      "hand_movement_m": {
        "type": "number",
        "minimum": 0,
        "maximum": 10,
        "x-unit": "m"
      },
      "native_metrics": {
        "type": "array",
        "minItems": 0,
        "maxItems": 32,
        "items": {
          "type": "object",
          "required": [
            "name",
            "value"
          ],
          "properties": {
            "name": {
              "type": "string",
              "maxLength": 80
            },
            "value": {
              "type": "number",
              "minimum": -10000,
              "maximum": 10000
            }
          },
          "additionalProperties": false
        }
      }
    },
    "additionalProperties": false
  },
  "preconditions": [
    "Use the exact recorded source, Linux Python 3.11 environment and pinned direct packages.",
    "No physical robot, network actuation or external robot credentials."
  ],
  "postconditions": [
    "All reported checks must be true and all output numbers finite.",
    "Success covers the declared goal and frozen cases, not arbitrary tasks or physical hardware."
  ],
  "failure_codes": [
    "invalid_input_or_environment",
    "execution_failed",
    "task_failed"
  ],
  "composition": {
    "depends_on": [],
    "automatic_frame_conversion": false,
    "automatic_hardware_execution": false
  },
  "origin_reference_ids": [
    "metaworld-metaworld-policies-sawyer-shelf-place-v3-policy-py"
  ],
  "origin_relationship": "prepared_from_the_same_pinned_model; inspect the declared controller and goal; no physical compatibility is inferred"
}
```



## Exact environment

| Runtime | Robot | Controller | Observation | OS | Python | Evidence |
| --- | --- | --- | --- | --- | --- | --- |
| metaworld 3.1.1 | sawyer | scripted-policy | privileged_simulator_state | linux x86_64 | >=3.11,<3.12 | task_complete |

Privileged simulator observations and goal/state feedback. No physical sensor validation.

Compatibility status: **hub_verified**. An environment match does not establish task completion. Runtime verification: **task_complete**.

## Source and license

- Repository: https://github.com/Farama-Foundation/Metaworld
- Source commit: `c0dafaf1557f31cad3b96ba2b62462f45638f5a5` (no tag)
- Original authors: Original Metaworld contributors; preserve all pinned source and asset notices
- License: [MIT](https://github.com/Farama-Foundation/Metaworld/blob/c0dafaf1557f31cad3b96ba2b62462f45638f5a5/LICENSE)
- Source archive SHA256: `ea091176e3be68314432025d945fa7005f50cc82b319db3cc19374d37c6b52c0`
- Upstream files: `LICENSE`, `pyproject.toml`, `metaworld/__init__.py`, `metaworld/env_dict.py`, `metaworld/sawyer_xyz_env.py`, `metaworld/policies/policy.py`, `metaworld/policies/action.py`, `metaworld/policies/sawyer_shelf_place_v3_policy.py`, `metaworld/envs/sawyer_shelf_place_v3.py`
- Upstream contribution rules: https://github.com/Farama-Foundation/Metaworld

## Find, inspect, prepare

```sh
python /PATH_TO_SKILL/scripts/rsh.py find "simulation" --runtime metaworld --runtime-version 3.1.1 --robot sawyer --json
python /PATH_TO_SKILL/scripts/rsh.py inspect metaworld-sawyer-shelf-place-v3 --json
python /PATH_TO_SKILL/scripts/rsh.py prepare metaworld-sawyer-shelf-place-v3 --project ./experiment --expected-source-commit c0dafaf1557f31cad3b96ba2b62462f45638f5a5 --expected-record-version 1.0.0 --plan --json
```

Remove `--plan` to download the checksum-verified pinned source and create an isolated project environment. Preparation returns the remaining configuration. Dependency installation is an explicit `--install-deps` step; it can execute package build hooks. Robot simulation is a separate command returned by prepare, never run by find/inspect.

Direct package pins: `metaworld==3.1.1`, `mujoco==3.3.0`, `numpy==1.26.4`, `gymnasium==1.2.0`, `packaging==25.0`.

Direct runtime versions are pinned and measured. The receipt retains the complete environment freeze; prepare records the installed environment. System drivers are separate host requirements.

Hardware: Linux x86_64; CPU simulation; see retained receipt for the exact host environment.

Rendering: Headless. EGL libraries are required for MuJoCo imports; PushT uses SDL dummy video. No interactive display..

External API keys: none.

## Invocation contract

Entrypoint: `python run.py`.

```json
{
  "argv": [
    "{python}",
    "{recipe_dir}/run.py",
    "--source-dir",
    "{source_dir}",
    "--example"
  ],
  "inputs": {
    "seed": 0
  },
  "outputs": {
    "format": "single JSON object",
    "payload_selector": "outputs",
    "schema": {
      "type": "object",
      "required": [
        "success_window",
        "native_success",
        "steps",
        "control_effort",
        "hand_movement_m",
        "native_metrics"
      ],
      "properties": {
        "success_window": {
          "type": "array",
          "minItems": 1,
          "maxItems": 20,
          "items": {
            "type": "boolean"
          }
        },
        "native_success": {
          "type": "boolean"
        },
        "steps": {
          "type": "integer",
          "minimum": 1,
          "maximum": 500
        },
        "control_effort": {
          "type": "number",
          "minimum": 0,
          "maximum": 10000
        },
        "hand_movement_m": {
          "type": "number",
          "minimum": 0,
          "maximum": 10,
          "x-unit": "m"
        },
        "native_metrics": {
          "type": "array",
          "minItems": 0,
          "maxItems": 32,
          "items": {
            "type": "object",
            "required": [
              "name",
              "value"
            ],
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 80
              },
              "value": {
                "type": "number",
                "minimum": -10000,
                "maximum": 10000
              }
            },
            "additionalProperties": false
          }
        }
      },
      "additionalProperties": false
    }
  }
}
```

Success: All declared goal and finite-state checks pass; exit 0 with task_complete. Five consecutive native task-success predicates within 500 dynamic simulation steps. Task-specific success definitions come from the pinned upstream environment; this is not a general manipulation score.

Timeout: 180 seconds. Terminate the adapter at the recorded timeout. No physical hardware is opened.

Failures: Invalid input or source checksum; Different pinned package version; Unavailable runtime/driver; Goal not reached within bounded steps.

## Actual evidence

All 3 frozen cases completed against this exact adapter and source.

Reviewer: Hub finite-case Lambda execution harness · 2026-10-20.

Commands/checks actually performed:

- python tools/verify_runtime_expansion.py --backend metaworld --source-cache SOURCE_CACHE --output OUTPUT

Submitted evidence and hub verification remain separate. A schema check, PR creation or merge does not establish task success or publication.

## Reusable fixes

Change the runtime expansion manifest/template, regenerate, and rerun all frozen cases. Preserve source/model/checkpoint licenses and distinguish simulation from hardware.

# Meta-World Sawyer shelf-place-v3 scripted controller

Meta-World Sawyer shelf-place-v3 scripted controller. Bounded, source-pinned simulation with an explicit task contract and retained fixed-case outcomes.

Five consecutive native task-success predicates within 500 dynamic simulation steps. Task-specific success definitions come from the pinned upstream environment; this is not a general manipulation score.

Source and model terms: MIT. The Hub wrapper is MIT. See the record for input JSON, exact environment, frozen execution receipts and preparation requirements.

