Open
Conversation
Implements two new environment features: - Moving walls that travel in a direction each step, with optional bounce mode and agent-pushing behavior - Buttons that agents can interact with to control linked walls (toggle pause, direction, bounce, or trigger single-step move) Includes layout parsing (n/s/e/w for walls, ! for buttons), demo layouts, visualizer sprites, and an interactive play script. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…tton or by time and does not trap agents when activated on the same tile
Fixed a bunch of overhead lag, demos in moving_wall_demo.py and moving_wall_bounce_demo.py
…ed_zones). Also fixed pressure_gated_zones
|
I tried using Copilot to change the graphics of the barriers when they are deactivated by the pressure plates but it seems that it is quite troublesome and instead has the behaviour of removing the barrier completely. Might come back to this if its still desired. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Introduction
This PR introduces the new pressure plates feature in our Overcooked environment.
Features
Currently, pressure plates have the same action capabilities as buttons. There is support for both moving wall and barrier interactions.
See the
ButtonAction()class injaxmarl/environments/overcooked_v3/common.pyfor more information. You can find an action type cheat sheet at the bottom of this PR.Currently, due to a bug, only toggling barriers is working. This has been put on low priority because there seem to be no good ideas for levels with pressure plates and moving walls.
Initializing your Pressure Plates
Example Initialization: Pressure Plate Demo Level
Note:
"_""#"overcooked_v3_layoutsfromjaxmarl/environments/overcooked_v3/layouts.pyTo enable pressure plate functionality, you must append the following parameters to your layout configurations:
Here's how it looks for the
pressure_plate_demolayout:Note: JAX implicitly numbers static objects of the same type from left to right, top to bottom.
Action Type Cheat Sheet
For toggling barriers, use
ButtonAction.TOGGLE_BARRIER.The other (not working) action types are:
ButtonAction.TOGGLE_PAUSEButtonAction.TOGGLE_DIRECTIONButtonAction.TOGGLE_BOUNCEButtonAction.TRIGGER_MOVE