Release Notes

v1.12: Vehicle behaviour fix, generic merge env, Gymnasium-compliant render behaviour, and docs refresh

Released on 2026-07-06 - GitHub - PyPI

HighwayEnv v1.12.0

This is a big release that brings:

  • a new generic version of the merge environment
  • major documentation updates
  • reduction in startup latency
  • improvements in dependency situation (replacing pygame with pygame-ce, removing scipy)
  • multiple new environment versions due to a bug discovered in neighbouring vehicle detection in environments with multiple road segments (causing non-player vehicles to have a higher likelihood of crashing than they should, as shown here).

Minor breaking change

Previously, HighwayEnv did not implement render mode according to Gymnasium; instead, whether the environments are actually rendered is set with the offscreen_rendering config key. #700 introduced correct behaviour for treating different values of render_mode, while still keeping old config keys as overrides:

  • render_mode="human" -> render to window by default, render() returns None
  • render_mode="rgb_array" -> headless render by default, render() returns image array
  • Keeping offscreen_rendering in config as an override
  • The OFFSCREEN_RENDERING environment variable is now ignored because explicit is better than implicit

So, basically, you can set render_mode="rgb_array" and pass offscreen_rendering=True in the config dict to get both an RGB array returned by render() and pygame rendering in a new window for your viewing pleasure (note that you still need real_time_rendering=True to render at the intended fps).

New environment variant

  • Generic version of the merge environment (merge-generic-v0, merge-generic-v1) by @Minipoloalex (#694)

New environment version

  • With neighbour vehicle detection fix: exit-v1, intersection-v2, intersection-multi-agent-v2, merge-v1, racetrack-v1, racetrack-large-v1, racetrack-oval-v1, roundabout-v1, oundabout-generic-v1, u-turn-v1 by @Lidang-Jiang (#667)

Bug fix

Dependencies

Performance

  • Reduced startup latency by initializing only the needed pygame modules by @Trenza1ore (#687)

Documentation

Community

CI and build

New Contributors

Full Changelog: v1.11...v1.12

v1.11: Python 3.14 support, new env variant, and stability updates

Released on 2026-05-10 - GitHub - PyPI

Changes since v1.10.2

Compatibility

  • Added Python 3.14 support.
  • Dropped Python 3.9 support.
  • Fixed NumPy 2.0 compatibility.
  • Modernized build configuration.

CI and build tooling

  • Added CI/install support for pygame system dependencies.
  • Installed SDL2/freetype/portmidi packages for docs/build environment.

Bug fixes

  • Fixed SubprocVecEnv ConnectionResetError with forkserver/spawn.
  • Fixed zero division in LinearSpline2D.
  • Fixed divide-by-zero warning in LidarObservation.
  • Fixed incorrect coordinate transformation in spline.

Features and docs

  • Added a generic version of the roundabout environment.
  • Refreshed docs branding and added mise/just tooling.
  • Updated docs workflows and README content.
  • Added multiple paper citations / references.

v1.10.2: Bug fixes and new env

Released on 2025-10-18 - GitHub - PyPI

  • Adds racetrack-oval-v0
  • Minor fixes

v1.10.1: Gymasium v1.0 support

Released on 2024-08-19 - GitHub - PyPI

Fix release workflow

v1.10: Gymnasium v1.0 support

Released on 2024-08-18 - GitHub - PyPI

Update to support Gymnasium v1.0

v1.9.1: Update release version

Released on 2024-08-11 - GitHub - PyPI

(Didn't see that the version definition had been moved from config to init)

v1.9: Bug fixes

Released on 2024-08-11 - GitHub - PyPI

  • Fix creation of vehicles in parking env
  • Bug fixes for kinematics observation
  • Fix Lidar observation
  • Fix boundaries check in occupancy grid observation
  • Update docs
  • Update numpy deprecated calls
  • Fix road priorities
  • Fix non-determinism in route planning
  • Fix multiagent wrapper for intersection env

v1.8.2: Hotfix of parking env reward function

Released on 2023-05-30 - GitHub - PyPI

  • Fix collision reward in parking env
  • Minor update of documentation and workflows
  • Minor update of example notebooks
  • Update rendering logic

v1.8.1: Hotfix of env registration entrypoint with gymnasium

Released on 2023-03-22 - GitHub - PyPI

v1.8: Move from gym to gymnasium

Released on 2023-03-18 - GitHub - PyPI

  • fix vehicle order in occupancy grid obs
  • fix broken seeding implementation
  • support numpy types for discrete actions
  • use Runge-Kutta 4 integration for dynamical continuous actions, making the dynamics make more stable
  • use gymnasium rather than gym

v1.7.1: Hotfix of parking env init

Released on 2022-12-19 - GitHub - PyPI

Fixes #400

v1.7: Add support for gym 0.26

Released on 2022-11-06 - GitHub - PyPI

  • Change the step / reset / render interfaces to match the new API of gym 0.26
  • Drop support for gym <0.26

v1.6: Environment variants with continuous actions and multi-objective, bug fixes.

Released on 2022-08-14 - GitHub - PyPI

  • fix a bug in generating discrete actions from continuous actions
  • fix more bugs related to changes in gym's latest versions
  • new intersection-env variant with continuous actions
  • add longitudinal/lateral/angular offsets to the lane as part of the kinematics observation's features
  • add more configurable options for reward function and termination conditions
  • add configurable min/max speed for continuous actions
  • bug fix for reward computation in the multi-agent setting
  • add get_available_actions for MultiAgentAction
  • fix various deprecation warnings
  • add a multi-objective version of HighwayEnv

Huge thanks to contributors @zerongxi, @TibiGG, @KexianShen, @lorandcheng

v1.5: New observation types and lane geometries, and bug fixes

Released on 2022-03-19 - GitHub - PyPI

  • Add documentation on continuous actions
  • Fix various bugs or imprecision in collision checks and obstacles rendering
  • Image observations are now centered on the observer vehicle
  • Fix the lane change behaviour in some situations
  • Add TupleObservation, which is a union of several observation types
  • Improve the accuracy of the LidarObservation
  • Add support for PolyLane, and methods to save/load road networks from a config
  • Fix steering wheel / angle conversion
  • Change of the velocity term projection in the reward function
  • Add support for latest gym versions (>=0.22) which dropped the Monitor wrapper
  • Add a copy of the GoalEnv interface which was removed from gym

v1.4: New continuous control environment: racetrack-v0

Released on 2021-09-21 - GitHub - PyPI

This release introduces additional content:

  • a new continuous control environment, racetrack-v0, where the agent must learn to steer and follow the tracks, while avoiding other vehicles
  • a new "on_road" layer in the OccupancyGrid observation type, which enables the observer to see the drivable space
  • a new "align_to_vehicle_axes" option in the OccupancyGrid observation type, which renders the observation in the local vehicle frame
  • a new DiscreteAction action type, which discretizes the original ContinuousAction type. This allows to do low-level control, but with a small discrete action space (e.g. for DQN). Note that this is different from the DiscreteMetaAction type, which implements its own low-level sub-policies.
  • new example scripts and notebooks for training agents, such as a PPO continuous control policy for racetrack-v0.
  • updated documentation

v1.3: Faster variant of highway-v0, and bug fixes

Released on 2021-08-30 - GitHub - PyPI

This release contains

  • A few fixes for compatibility with SB3
  • Some changes for video rendering and framerate
  • highway-fast-v0: a faster variant of highway-v0 to train/debug models more quickly

v1.2: Compatibility with stable-baselines3

Released on 2021-04-29 - GitHub - PyPI

Minor update with

  • different handling of image observations + example script with stable baselines
  • small changes in the dynamical model

v1.1: First PyPI release

Released on 2021-03-12 - GitHub - PyPI

Main changes:

  • vehicles appearance
  • exit environment
  • u-turn environment
  • lidar observation
  • big fix in video recording

v1.0: First stable release

Released on 2020-09-07 - GitHub - PyPI