Skip to main content

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[robocasa_gr1]"
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, evaluate, get_driver


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=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.
robocasa_gr1 praxis-eval[robocasa_gr1] Runs the GR-1 humanoid tabletop tasks in the current 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.

Examples

Runnable examples live in examples/. They cover local policy evaluation, remote policy evaluation, custom policy adapters, and custom benchmark drivers.

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.

Metadata

Release files for praxis-eval 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for praxis-eval 0.1.3
File Size Uploaded
praxis_eval-0.1.3.tar.gz 165.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for praxis-eval 0.1.3
File Interpreter ABI Platform
praxis_eval-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 339.1 kB

Release files / praxis_eval-0.1.3.tar.gz

Download URL praxis_eval-0.1.3.tar.gz
Size 165.2 kB
Tags Source
SHA-256 checksum
How to use checksums
509d24516c184b0458675b52bf72fa7697d00749e473020ba30b28a01c394b48
BLAKE2b-256 checksum
How to use checksums
1862a4f8f5162cbf4df96ad4f1fe777c4dc866226d5f14e1e59df6e781334c1b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

Release files / praxis_eval-0.1.3-py3-none-any.whl

Download URL praxis_eval-0.1.3-py3-none-any.whl
Size 173.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6a223367c7089c1d91adc96f0f971806e99ac38cb79a453a7d127340c41e1ddf
BLAKE2b-256 checksum
How to use checksums
940b2308eedfce30afc7a210e1f99f5c12d3659facbb7e2226f852e46e9ad629
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page