Skip to main content

Standalone robot-policy evaluation harness with local and remote policy adapters.

Project description

praxis-eval

praxis-eval is a standalone robot-policy evaluation package for simulation benchmarks. It owns benchmark setup, rollout execution, metrics, artifacts, and observation/action contracts; users provide a policy adapter that consumes documented observations and returns documented actions.

Installation

praxis-eval supports Python 3.10 and newer.

pip install praxis-eval

Install the benchmark extras you plan to run:

pip install "praxis-eval[libero]"
pip install "praxis-eval[robocasa]"
pip install "praxis-eval[robomimic]"
pip install "praxis-eval[metaworld]"
pip install "praxis-eval[simpler]"
pip install "praxis-eval[mshab]"
pip install "praxis-eval[remote]"

Minimal Local Evaluation

This example assumes the LIBERO extra and simulator runtime are installed.

import numpy as np

from praxis_eval import EvalConfig, LocalPolicy, get_driver, evaluate


class RandomPolicy:
    def __init__(self, seed: int = 0) -> None:
        self.rng = np.random.default_rng(seed)

    def reset(self, episode_ids=None) -> None:
        pass

    def act(self, observations, *, action_spec=None, policy_kwargs=None, episode_ids=None):
        del policy_kwargs, episode_ids
        if action_spec is None or action_spec.shape is None:
            raise ValueError("This example needs a benchmark ActionSpec.")
        low = -1.0 if action_spec.minimum is None else action_spec.minimum
        high = 1.0 if action_spec.maximum is None else action_spec.maximum
        return self.rng.uniform(
            low=low,
            high=high,
            size=(len(observations), *action_spec.shape),
        ).astype(action_spec.dtype)


driver = get_driver("libero")
print(driver.contract)

result = evaluate(
    "libero",
    policy=LocalPolicy(RandomPolicy(seed=42)),
    config=EvalConfig(
        task="libero_10",
        task_ids=(0,),
        num_eval_per_task=1,
        num_parallel_env=1,
        output_dir="eval/libero_smoke",
    ),
)

print(result.overall)
print(result.artifacts)

Supported Benchmarks

Driver Install extra Runtime model
libero praxis-eval[libero] Runs in the current Python environment.
robocasa praxis-eval[robocasa] Runs in the current Python environment after asset setup.
robomimic praxis-eval[robomimic] Runs in the current Python environment.
metaworld praxis-eval[metaworld] Runs in the current Python environment.
simpler praxis-eval[simpler] Uses a dedicated SimplerEnv runtime for simulator execution.
mshab praxis-eval[mshab] Uses a dedicated MS-HAB runtime for simulator execution.

Use the setup and verification CLIs to inspect available benchmark-specific commands:

praxis-eval-setup --help
praxis-eval-verify --help

Documentation

Full documentation is available at https://chaoqi-liu.com/praxis-eval/, including installation details, benchmark contracts, remote policy evaluation, runtime setup, examples, and the developer guide for adding new benchmarks.

License And Citation

praxis-eval is licensed under Apache-2.0. If this package supports your research or product work, cite the repository using CITATION.cff.

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

praxis_eval-0.1.2.tar.gz (154.4 kB view details)

Uploaded Source

Built Distribution

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

praxis_eval-0.1.2-py3-none-any.whl (159.7 kB view details)

Uploaded Python 3

File details

Details for the file praxis_eval-0.1.2.tar.gz.

File metadata

  • Download URL: praxis_eval-0.1.2.tar.gz
  • Upload date:
  • Size: 154.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for praxis_eval-0.1.2.tar.gz
Algorithm Hash digest
SHA256 41de93f41c0e549db2aa76acd37c9d08499d182524aae9d9c5a232a1481cac7e
MD5 7ea51b5694d2ad814fa0890638ba6ddb
BLAKE2b-256 36cf0d34bbe321705bf265a61487606d215bd1c95697807cc89ac7f1a5aecbcd

See more details on using hashes here.

Provenance

The following attestation bundles were made for praxis_eval-0.1.2.tar.gz:

Publisher: release.yml on Chaoqi-LIU/praxis-eval

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file praxis_eval-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: praxis_eval-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 159.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for praxis_eval-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 747a1549c15a5a422d64875476d0f2f49867a8219a3ea3aff7729524f7c98002
MD5 ed5020f0e2e646f659846c3c3b82be97
BLAKE2b-256 9253882cba9db79d994840bd3cca5bf2fb36d8c3ec2f37bf2dfad545a42518d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for praxis_eval-0.1.2-py3-none-any.whl:

Publisher: release.yml on Chaoqi-LIU/praxis-eval

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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