Releases: yannbouteiller/rtgym
Release 0.16
Release 0.16
- Fixes #5 (the output of
RealTimeGymInterface.render
method is now passed to theEnv.render
)
Release 0.15
Release 0.15
- Removes the busy loop when
rtgym
waits for a new observation, using athreading.Event
instead - Improves benchmarking, adding the option to record time tracess of
rtgym
internal calls instead of Polyak averages
Release 0.14
Minor release 0.14
Newer versions of Gymnasium require that the users call custom APIs in env.unwrapped
. This applies to the wait
API in rtgym
. This change introduced a bug in the benchmark.py
, which is now fixed.
Release 0.13
Major release 0.13
Thread-safe implementation of Real-Time Gym.
Highlights:
- Version
0.13
introduces a new implementation of Real-Time Gym:"real-time-gym-ts-v1"
. This new implementation relies on signaling viathreading.Event
, which enablesrtgym
to run a single persistent thread in the background (whereas"real-time-gym-v1"
is spawning and joining a new thread at each time-step). This vastly improvesrtgym
's thread-safety, but may require careful handling, as waiting for anEvent
that never comes (e.g., because of a crash) may cause your program to hang. "real_time"
and"async_threading"
were removed from the configuration dictionary, as the behavior for their non-default values was never implemented anyway.
Release 0.12
Minor release 0.12
Added 3 advanced API functions that allow changing the time-wise configuration of rtgym
environments on-the-fly:
set_time_step_duration
set_start_obs_capture
set_ep_max_length
Release 0.11
Minor release 0.11
Minor optimizations.
Release 0.10
Release 0.10
This version fixes a couple minor bugs related to reset transitions.
In particular, it introduces the set_default_action
API, and a new entry in the configuration dictionary to chose whether reset
should send the default action or the last action of the previous episode.
A thorough sanity check has been added in the tests
folder.
Release 0.9
Major release 0.9
Version 0.9 improves real-time support around calls to the reset
function. It also changes the reset
signature to follow the newer Gymnasium
API.
⚠️ Breaking changes:
- The signature of
reset
has been updated toenv.reset(seed=None, options=None)
to comply with the newerGymnasium
API. This change also affects thereset
method ofRealTimeGymInterface
.
To update your existing implementations of RealTimeGymInterface
to the new version of rtgym
, you can simply replace
def reset(self):
by
def reset(self, seed=None, options=None):
Release 0.8
Major release 0.8
Starting from version 0.8
, rtgym
supports the maintained gymnasium framework instead of the abandoned gym
framework.
Since rtgym 0.7
already supported gym>=0.26
, upgrading your applications to gymnasium
is straightforward and essentially amounts to replacing all your instances of
import gym
by
import gymnasium as gym
For more information, read the migration guide
Release 0.7
This release reflects the new OpenAI Gym API (0.26). Since version gym 0.26 introduced major breaking changes, these breaking changes are reflected in the rtgym
which is becward incompatible with previous versions.
See https://github.com/openai/gym/releases/tag/0.26.0
Breaking changes:
step
now returnsterminated
andtruncated
instead of the olddone
reset
now returns theinfo
dict- some method names have changed in the interface according to the new nomenclature