Skip to main content

env-ssl-wrapper

One line turns any simulator's environment — gymnasium, dm_control, isaac, maniskill, pybullet, robosuite, pufferlib — into the same torch-native interface.

Install

pip install env-ssl-wrapper

Usage

import torch
from env_ssl_wrapper import compose_env

env = compose_env(
    any_env,                                 # any env from any sim
    ('tensor', dict(device='cpu')),          # wrap with whatever you need
    'done_tracker',
)

obs, info = env.reset()                      # torch.float32, batched
while not env.all_done:
    actions = torch.randint(0, 2, (8,))
    obs, reward, terminated, truncated, info = env.step(actions)

Works identically for every simulator.

Wrappers

Pass wrappers as strings (default config) or (name, dict) tuples (custom config), in any order.

Wrapper What it does
standardize Normalizes any sim's step/reset signatures, vectorization, and autoreset into (obs, reward, terminated, truncated, info). Applied automatically.
time_limit Caps episodes, sets truncated=True. ('time_limit', dict(max_timesteps=200))
done_tracker Tracks per-env episode_lengths, exposes env.all_done / env.needs_reset.
auto_batch Gives single envs a leading batch dim: (4,)(1, 4).
action_transform Rescales actions from a canonical (0, 1) range to the env's bounds.
tensor NumPy → torch on a device, torch actions → numpy for the sim.
flatten_obs Flattens dict/tuple observations into a single vector.

Every env emits the same contract: obs torch.float32, rewards torch.float32, terminated/truncated torch.bool. env.seed(n) works on every sim.

Mock sims

env_ssl_wrapper.mocks ships dependency-free stand-ins emulating each simulator's quirks (GymnasiumMockEnv, IsaacMockEnv, DMControlMockEnv, ...) for testing your code without installing the real sims.

from env_ssl_wrapper.mocks import IsaacMockEnv
env = compose_env(IsaacMockEnv(), 'tensor', 'done_tracker')

Tests

uv sync --extra test
uv run pytest tests/test_real_envs.py

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

env_ssl_wrapper-0.1.0.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

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

env_ssl_wrapper-0.1.0-py3-none-any.whl (17.8 kB view details)

Uploaded Python 3

File details

Details for the file env_ssl_wrapper-0.1.0.tar.gz.

File metadata

  • Download URL: env_ssl_wrapper-0.1.0.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.17

File hashes

Hashes for env_ssl_wrapper-0.1.0.tar.gz
Algorithm Hash digest
SHA256 95c8d2b8a5d93e76be4b10abff2da4b7633435fc2ab914888a8d7f6bf54774e6
MD5 de2a4e6f500c44e25a11958c142df5e7
BLAKE2b-256 f9c8998f523dc2b07fefe15334e0a2f3964671bf48bcb21467f1472cccf51be4

See more details on using hashes here.

File details

Details for the file env_ssl_wrapper-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for env_ssl_wrapper-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e1ed7765bf0cbd041694ce4d8fa6fb3da7e47297a335b9e57830c7bb7f9933ea
MD5 9567916a13bc26348a6bf5375afe8e46
BLAKE2b-256 4563a125d2eea61f357a7269d84e346e4e8abcdf7ef9a2516e084bc7c84ba03f

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.14

2 files

0.1.11

2 files

0.1.10

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.2

2 files

0.1.1

2 files

This release

0.1.0 This release

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 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