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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41de93f41c0e549db2aa76acd37c9d08499d182524aae9d9c5a232a1481cac7e
|
|
| MD5 |
7ea51b5694d2ad814fa0890638ba6ddb
|
|
| BLAKE2b-256 |
36cf0d34bbe321705bf265a61487606d215bd1c95697807cc89ac7f1a5aecbcd
|
Provenance
The following attestation bundles were made for praxis_eval-0.1.2.tar.gz:
Publisher:
release.yml on Chaoqi-LIU/praxis-eval
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
praxis_eval-0.1.2.tar.gz -
Subject digest:
41de93f41c0e549db2aa76acd37c9d08499d182524aae9d9c5a232a1481cac7e - Sigstore transparency entry: 1611618918
- Sigstore integration time:
-
Permalink:
Chaoqi-LIU/praxis-eval@8d8ef9c81d7c41690d87ce888e29c486f75af656 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/Chaoqi-LIU
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8d8ef9c81d7c41690d87ce888e29c486f75af656 -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
747a1549c15a5a422d64875476d0f2f49867a8219a3ea3aff7729524f7c98002
|
|
| MD5 |
ed5020f0e2e646f659846c3c3b82be97
|
|
| BLAKE2b-256 |
9253882cba9db79d994840bd3cca5bf2fb36d8c3ec2f37bf2dfad545a42518d0
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
praxis_eval-0.1.2-py3-none-any.whl -
Subject digest:
747a1549c15a5a422d64875476d0f2f49867a8219a3ea3aff7729524f7c98002 - Sigstore transparency entry: 1611619121
- Sigstore integration time:
-
Permalink:
Chaoqi-LIU/praxis-eval@8d8ef9c81d7c41690d87ce888e29c486f75af656 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/Chaoqi-LIU
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8d8ef9c81d7c41690d87ce888e29c486f75af656 -
Trigger Event:
release
-
Statement type: