POBAX: Partially Observable Benchmarks in JAX
POBAX is a reinforcement learning benchmark that tests all forms of partial observability.
POBAX has been accepted to RLC 2025. Check out our paper!
The benchmark is entirely written in JAX, allowing for fast, GPU-scalable experimentation.
Environments
POBAX includes environments (as well as recommended hyperparameter settings) across diverse forms of partial observability. We list our environments from smallest to largest (in terms of neural network size requirements for PPO RNN):
| Environment | Category | IDs | Description |
|---|---|---|---|
| Simple Chain | simple_chain |
Diagnostic POMDP for testing algorithms. | |
| T-Maze | tmaze_10 |
Bakker's classic memory testing environment (hallway disambiguation). | |
| RockSample | rocksample_11_11 and rocksample_15_15 |
The classic rock collecting POMDP, where an agent needs to uncover and collect rocks. | |
| Battleship | battleship_10 |
Single-player battleship (10x10). | |
| Masked Mujoco | {env_name}-{F/P/V}-v0 |
Mujoco with state features masked out. env_name can be Walker, Ant, Hopper, or HalfCheetah. F/P/V stands for fully observable, position only, or velocity only versions of environments, respectively. |
|
| DMLab Minigrid | Navix-DMLab-Maze-{01/02/03}-v0 |
MiniGrid versions of the DeepMind Lab mazes. 01/02/03 refer to the DeepMind Lab Minigrid mazes in ascending difficulty. |
|
| Visual Continuous Control | {env_name}-pixels |
Pixel-based versions of Mujoco control. Requires the Madrona_MJX package. env_name can be ant, halfcheetah, hopper, or walker2d. |
|
| No-Inventory Crafter | craftax-pixels |
Crafter without the inventory. Requires the Craftax package. |
Basic Usage
import jax
from pobax.envs import get_env
rand_key = jax.random.PRNGKey(2025)
env_key, rand_key = jax.random.split(rand_key)
# Creates a vectorized environment
env, env_params = get_env("rocksample_11_11", env_key)
# Reset 10 environments
reset_key, rand_key = jax.random.split(rand_key)
reset_keys = jax.random.split(rand_key, 10)
obs, env_state = env.reset(reset_keys, env_params)
# Take steps in all environments
step_key, action_key, rand_key = jax.random.split(rand_key, 3)
step_keys = jax.random.split(step_key, 10)
action_keys = jax.random.split(action_key, 10)
actions = jax.vmap(env.action_space(env_params).sample)(action_keys)
obs, env_state, reward, done, info = env.step(step_keys, env_state, actions, env_params)
Installation
Agents
POBAX includes algorithms loosely based on the PureJAXRL framework, with algorithms based on proximal policy optimization (PPO). These include:
- Recurrent PPO,
- λ-discrepancy,
- GTrXL.
Memoryless versions of the recurrent PPO algorithm is also included with the --memoryless flag.
Citation
Metadata
Release files for pobax 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pobax-0.0.1.tar.gz | 687.2 kB | Without provenance | Details for pobax-0.0.1.tar.gz |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pobax-0.0.1-py3-none-any.whl | Python 3 | none | any | Details for pobax-0.0.1-py3-none-any.whl |
| pobax-0.0.1-1-py3-non-any.whl | Python 3 | non | any | Details for pobax-0.0.1-1-py3-non-any.whl |
Total release size: 880.8 kB
Release files / pobax-0.0.1.tar.gz
| Download URL | pobax-0.0.1.tar.gz |
|---|---|
| Size | 687.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c00b1982509b99fd8040ca1e78786079a5bd28fb78db7ccd740c67755b2fa2b5
|
|
BLAKE2b-256 checksum How to use checksums |
de546a4ba0c9e0975597ae9f7df1de1751b387f2182a379d5cbadd292690f87b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.12
|
Release files / pobax-0.0.1-py3-none-any.whl
| Download URL | pobax-0.0.1-py3-none-any.whl |
|---|---|
| Size | 112.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a50f8a3cf6121cbf9ae47ae3e8e83ba39604c3cdb0fa54a2fb84cdda0a84bf02
|
|
BLAKE2b-256 checksum How to use checksums |
b01afbb1d25afbf8d3aaa5b492f9e5820e780daa22f2956716027dd9cfb42b67
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.12
|
Release files / pobax-0.0.1-1-py3-non-any.whl
| Download URL | pobax-0.0.1-1-py3-non-any.whl |
|---|---|
| Size | 81.0 kB |
| Tags | Python 3 non |
|
SHA-256 checksum How to use checksums |
6b4751ee31c523bb55321e25544cee041679f36f24909e5ac27f72b0d9522a4f
|
|
BLAKE2b-256 checksum How to use checksums |
a76bb5d478e8dd43bf9f8e5bdc637e0d2249d67aaa0e1b7b5a54a28e89807b40
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.12
|
Security for pobax 0.0.1
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.