JAXtari: High-Throughput and Easy-to-Modify Arcade Learning Environment
Organizations: Department of Computer Science, Technical University Darmstadt, Germany · Google Intrinsic AI Research · Hessian Center for Artificial Intelligence (hessian.AI) · Centre for Cognitive Science, Darmstadt ·
Abstract
The Arcade Learning Environment (ALE) has been a cornerstone of Deep Reinforcement Learning research, providing a standardized benchmark for evaluating general agents. However, its lack of native support for object-extraction and environment modification restricts research into evaluating whether agents learn robust causal models or rely on brittle visual heuristics. Furthermore, the ALE's dependence on CPU-based emulation creates a significant bottleneck in modern GPU-accelerated training pipelines, limiting both experimental scale and iteration frequency. In this work, we introduce JAXtari, an open-source, high-performance reimplementation of Atari 2600 environments. By leveraging massive GPU parallelization, JAXtari allows PPO agents to finish training on 100M environment steps on a single A100-GPU in under an hour. Beyond speed, it provides object-centric observations and a flexible modification system, allowing researchers to, e.g. develop neuro-symbolic methods or discover novel shortcuts and subsequently train and adapt their agents rapidly, sometimes in only minutes.
Figures & tables
Appendix figures & tables76 assets
Supplementary material from the paper’s appendix.
Appendix
| Mechanic | Operational Specification | Source Implementation |
| Action Space Coverage | ||
| Full Discrete Space | Utilizes full Discrete(18) action space; NOOP , FIRE , directional jumps, and combined inputs are supported. | jax_frostbite.py |
| Directional Controls | Moving joystick triggers Bailey’s jumps across moving ice floes and between shores. | jax_frostbite.py |
| FIRE Button | Pressing FIRE reverses the movement direction of the ice row currently occupied. | jax_frostbite.py |
| Core Game Dynamics | ||
| Igloo Construction | Landing on a white ice floe turns it blue and adds one block to the igloo (15 blocks required for completion). | jax_frostbite.py |
| Scoring Event | Reward Formula | Source Implementation |
|---|---|---|
| Coloring an Ice Block | points awarded upon stepping on a white floe. | jax_frostbite.py |
| Entering Completed Igloo | bonus points awarded per block upon entering the igloo to clear the level. | jax_frostbite.py |
| Level Multiplier Cap | Level multiplier increases up to level 8; from level 9 onward, scoring caps at 90 points per ice block. | jax_frostbite.py |
| Catching a Fish | Flat bonus of points upon collision with a swimming fish. | jax_frostbite.py |
| Hyperparameter | Value |
|---|---|
| Total timesteps | |
| Parallel environments | 8 |
| Rollout length | 128 steps |
| Update epochs | 4 |
| Minibatches | 4 |
| Minibatch size |
| Modification | Effect |
|---|---|
| aggressive_swarm | Aliens spend almost all their time actively chasing the player. |
| dont_kill | Punishes for killing and shooting enemies. |
| end_game | Most eggs are already eaten. |
| extra_lives | Start with extra lives. |
| last_egg | Only one egg is remaining. |
| matrix_theme | A Matrix-themed mod: black background, green walls/enemies/eggs. |
| Modification | Effect |
|---|---|
| No modifications implemented yet. | |
| Modification | Effect |
|---|---|
| No modifications implemented yet. | |
| Modification | Effect |
|---|---|
| dont_shoot | Internal mod that punishes shooting |
| matrix_theme | A Matrix-themed mod: black background, green asteroids |
| slow_asteroids | The asteroids are slower |
| instant_turn | Player instantly turns in the pressed direction |
| Modification | Effect |
|---|---|
| jets_only | Overrides enemy spawn probabilities to only spawn Jet-type enmies. |
| no_last_line | Disable the lowest lane so no enemies can spawn there. |
| random_enemies | Overrides enemy spawn probabilities to make spawning random. |
| speed_mode_fast | Increases overall speed of the game to 6. |
| speed_mode_medium | Increases overall speed of the game to 4. |
| speed_mode_slow | Increases overall speed of the game to 2. |
| Modification | Effect |
|---|---|
| 2_police_cars | Replaces 2 banks with police cars. Each bank robbed gives 50 points. |
| blue_player | Changes the color of the player to light blue. |
| double_speed | Doubles the player speed. |
| dynamite_penalty | Changes reward for killing a police car with dynamite (-500). |
| fuel_for_banks | Augments the player’s fuel when 3 banks have been robbed. |
| golden_banks | Changes the color of banks to golden. |
| Modification | Effect |
|---|---|
| dont_kill | Internal mod that punishes killing and shooting. |
| double_enemy_speed | Doubles enemy movement speed. |
| fog_of_war | Hide the upper two thirds of the screen behind opaque fog. |
| hardcore | Start with one life and never allow extra lives. |
| mothership_laser | Turn the mothership sequence into a stationary lane laser attack. |
| same_enemies | Render all enemy types using the white UFO visuals. |
| Modification | Effect |
|---|---|
| No modifications implemented yet. | |
| Modification | Effect |
|---|---|
| No modifications implemented yet. | |
| Modification | Effect |
|---|---|
| ball_color | Changes the balls color to a set color. |
| ball_drift | Consistently drift the ball to the right. |
| ball_gravity | Pulls the ball down by 1 every step of the gravity_buffer. |
| big_paddle | Always use a bigger paddle (Size 40). |
| block_color | Changes the blocks color to a set color. |
| player_color | Changes the player color to a set color. |
| Modification | Effect |
|---|---|
| No modifications implemented yet. | |
| Modification | Effect |
|---|---|
| No modifications implemented yet. | |
| Modification | Effect |
|---|---|
| dawn | Forces the weather to dawn. |
| day | Forces the weather to day. |
| dont_max_speed | Does not reward the player if at max. speed. |
| filled_road | Displays the full filled road instead of only the side. |
| fog | Forces the weather to fog. |
| hud | Renders a HUD that displays sped and x-position. |
| Modification | Effect |
|---|---|
| fish_in_middle | All fish are bound to a small area in the middle (x-position). |
| fish_on_different_sides | Half the fish are bound to an area on the right, half on the left. |
| fish_on_player_side | All fish are bound to an area on the players side. |
| shark_no_movement_easy | Shark is stuck to the right pier. |
| shark_no_movement_middle | Shark is stuck to the center (x-position). |
| Modification | Effect |
|---|---|
| No modifications implemented yet. | |
| Modification | Effect |
|---|---|
| _hall_of_fame_start | Spawns the cars to make a "hall of fame" formation. |
| bikes | Replaces all cars with uniquely colored bike sprites. |
| black_cars | Makes all cars black by overriding CAR_COLORS constant. |
| center_cars_on_reset | Positions all cars in the center of the screen when the environment resets. |
| change_sprites | Bundles frog , bikes , new_lane_colors and green_score |
| frog | Replaces the player sprites with frog sprites. |
| Modification | Effect |
|---|---|
| _aligned_ice | Makes the ice blocks perfectly centered. |
| _misaligned_ice | Makes the ice blocks vertically aligned with each other but off-center. |
| _static_ice | Sets ice block horizontal speeds to zero. |
| bad_fishes_reward | Punishes the player for collecting fish. |
| change_sprites | Bundles tiger , white_igloo , recolored_obstacles and lightblue_ice . |
| dark_night | Spawns constant night and makes the sky darker. |
| Modification | Effect |
|---|---|
| No modifications implemented yet. | |
| Modification | Effect |
|---|---|
| anti_gravity | Reverse gravity from sun, planets, and reactors. |
| fuel_crisis | Increase fuel consumption rate by 5x. |
| grayscale | Converts the visual palette to grayscale. |
| harmless_enemies | Make all enemies harmless by disabling their bullets. |
| high_speed | Make the ship faster by increasing thrust power and max speed. |
| hyper_gravity | Increase all gravity from sun, planets, and reactors. |
| Modification | Effect |
|---|---|
| No modifications implemented yet. | |
| Modification | Effect |
|---|---|
| No modifications implemented yet. | |
| Modification | Effect |
|---|---|
| _chickens | Replaces the monkey sprite with a chicken sprite. |
| _lethal_bell | Post-step mod that kills the player if they touch the bell. |
| center_ladders | Internal mod to center all ladder positions horizontally. |
| chains | Replaces the ladder sprites with a chain. |
| chickens | Bundles _chickens and no_thrown_coconut . |
| dont_punch | Provides negative reward for punching monkeys. |
| Modification | Effect |
|---|---|
| No modifications implemented yet. | |
| Modification | Effect |
|---|---|
| No modifications implemented yet. | |
| Modification | Effect |
|---|---|
| center_bouncing_skull | Make the rolling skull jump vertically at the center of the screen. |
| debug_hud | Internal mod to display debug info (Room ID, X, Y) on the HUD. |
| fast_player | Internal mod to increase player speed. |
| infinite_amulet | Post-step mod to keep the amulet active forever. |
| jumping_spiders | Post-step mod to make all spiders jump. |
| moving_snakes | Post-step mod to make snakes move horizontally in all rooms. |
| Modification | Effect |
|---|---|
| caged_ghosts | Keeps the ghosts caged in the center. |
| constant_fruits | Always adds a fruit to the maze. |
| fruit_ghost_bonus | Deactivates points for pellets, But multiplies eating ghost reward. |
| matrix_theme | A Matrix-themed mod: black background, green elements. |
| only_1_ghost | Keeps only 1 ghost in the maze. |
| only_2_ghost | Keeps only 2 ghost in the maze. |
| Modification | Effect |
|---|---|
| No modifications implemented yet. | |
| Modification | Effect |
|---|---|
| blood_moon | A dark red themed mod. |
| boss_late_missiles | Make boss missiles appear later. |
| fast_enemy_bullets | Increases speed of enemy projectiles. |
| fast_player | Increases player movement speed. |
| grayscale | Turns the entire game into grayscale. |
| infinite_lives | Set player lives to 99. |
| Modification | Effect |
|---|---|
| change_background_color | Changes the background color to navy blue. |
| change_player_color | Changes the player color to red. |
| lazy_enemy | Enemy does not move after returning a shot until player hits ball. |
| linear_movement | Changes the movement to a linear one (no acceleration). |
| no_fire | Disables the FIRE action. |
| random_enemy | Randomizes the enemy movement. |
| Modification | Effect |
|---|---|
| collecting_bonus_only | Overrides the rewards to only get reward from collectibles. |
| dark_pyramid | Changes the pyramid to a dark aesthetic. |
| diagonal_control | Enables diagonal controls. |
| grayscale | Makes the entire game grayscale. |
| ice_pyramid | Changes the pyramid to an icy aesthetic. |
| inverted_colors | Swaps Qbert’s and Coily’s colors. |
| Modification | Effect |
|---|---|
| No modifications implemented yet. | |
| Modification | Effect |
|---|---|
| disable_enemies | Disable enemies in the environment. |
| dont_kill | Internal mod that punishes killing and shooting. |
| gravity | Adds gravity to that pulls the player downwards. |
| mines | Replaces both sharks and enemy submarines with mine sprites. |
| no_divers | Internal mod to remove divers from the game. |
| unlimited_oxygen | Player always has full oxygen. |
| Modification | Effect |
|---|---|
| No modifications implemented yet. | |
| Modification | Effect |
|---|---|
| _dangerous_moguls | Makes colliding with moguls cause the skier to fall. |
| _more_moguls | Spawns more moguls during the race. |
| _more_trees | Spawns more trees during the race. |
| _trees_everywhere | Allows trees to spawn anywhere across the entire horizontal axis. |
| blue_skiier | Replaces the skier sprites with blue versions. |
| classic_trees | Replaces the default tree sprites with classic versions. |
| Modification | Effect |
|---|---|
| controllable_missile | Forces the fired missile’s horizontal position to match the player’s tank. |
| disable_shield_left | Erases the left bunker from the screen. |
| disable_shield_middle | Erases the middle bunker from the screen. |
| disable_shield_right | Erases the right bunker from the screen. |
| no_danger | Removes all player shields and neutralizes incoming enemy projectiles. |
| shift_shields | Teleports all bunkers to new horizontal positions. |
| Modification | Effect |
|---|---|
| No modifications implemented yet. | |
| Modification | Effect |
|---|---|
| clay_court | Changes the court colors to a clay court aesthetic. |
| fast_enemy | Enemy moves faster. |
| fast_player | Increases player walk speed. |
| grass_court | Changes the court colors to a grass court aesthetic. |
| grayscale | Makes the court grayscale. |
| hard_court | Changes the court colors to a hard court aesthetic. |
| Modification | Effect |
|---|---|
| No modifications implemented yet. | |
| Modification | Effect |
|---|---|
| No modifications implemented yet. | |
| Modification | Effect |
|---|---|
| No modifications implemented yet. | |
| Modification | Effect |
|---|---|
| No modifications implemented yet. | |
| Modification | Effect |
|---|---|
| blood_moon | A dark red themed mod. |
| fast_enemies | Increases the speed of all enemies. |
| grayscale | Turns the entire game into grayscale. |
| inverted_colors | Inverts all colors in the game. |
| matrix_theme | A Matrix-themed mod: black background, green walls/monsters. |
| night_mode | Dims the entire screen by 50% for a night mode experience. |
| Modification | Effect |
|---|---|
| No modifications implemented yet. | |
| Modification | Effect |
|---|---|
| constant_ball_dynamics | Removes most of the ability to change the trajectory. |
| low_tilt_effect | Decreases the tilt effect when nudging. |
| never_activate_tilt_mode | Prevent entering tilt mode by resetting the tilt counter. |
| no_scoring_cooldown | Remove the cooldown period after hitting a target. |
| Modification | Effect |
|---|---|
| No modifications implemented yet. | |