Skip to content

Commit 39f9a53

Browse files
authored
Merge branch 'Farama-Foundation:main' into main
2 parents 71f0624 + db0baf5 commit 39f9a53

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+799
-720
lines changed

.pre-commit-config.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ repos:
3939
language: node
4040
pass_filenames: false
4141
types: [python]
42-
additional_dependencies: ["pyright"]
42+
additional_dependencies: ["pyright@1.1.347"]
4343
args:
4444
- --project=pyproject.toml
4545
- repo: https://github.com/pycqa/pydocstyle

README.md

+2
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ The [D4RL](https://github.com/Farama-Foundation/D4RL) environments are now avail
3232
The different tasks involve hammering a nail, opening a door, twirling a pen, or picking up and moving a ball.
3333
* [Franka Kitchen](https://robotics.farama.org/envs/franka_kitchen/) - Multitask environment in which a 9-DoF Franka robot is placed in a kitchen containing several common household items. The goal of each task is to interact with the items in order to reach a desired goal configuration.
3434

35+
* [MaMuJoCo](https://robotics.farama.org/envs/MaMuJoCo/) - A collection of multi agent factorizations of the [Gymnasium/MuJoCo](https://gymnasium.farama.org/environments/mujoco/) environments and a framework for factorizing robotic environments, uses the [pettingzoo.ParallelEnv](https://pettingzoo.farama.org/api/parallel/) API.
36+
3537
**WIP**: generate new `D4RL` environment datasets with [Minari](https://github.com/Farama-Foundation/Minari).
3638

3739
## Multi-goal API

docs/content/multi-goal_api.md

+3
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ goal, e.g. state derived from the simulation.
2121

2222
```python
2323
import gymnasium as gym
24+
import gymnasium_robotics
25+
26+
gym.register_envs(gymnasium_robotics)
2427

2528
env = gym.make("FetchReach-v2")
2629
env.reset()

docs/envs/MaMuJoCo/index.md

+18-13
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,19 @@ Gymansium-Robotics/MaMuJoCo Represents the first, easy to use Framework for rese
1919
MaMuJoCo mainly uses the [PettingZoo.ParallelAPI](https://pettingzoo.farama.org/api/parallel/), but also supports a few extra functions:
2020

2121
```{eval-rst}
22-
.. autofunction:: gymnasium_robotics.mamujoco_v0.parallel_env.map_local_actions_to_global_action
22+
.. autofunction:: gymnasium_robotics.mamujoco_v1.parallel_env.map_local_actions_to_global_action
2323
```
24-
2524
```{eval-rst}
26-
.. autofunction:: gymnasium_robotics.mamujoco_v0.parallel_env.map_global_action_to_local_actions
25+
.. autofunction:: gymnasium_robotics.mamujoco_v1.parallel_env.map_global_action_to_local_actions
2726
```
2827
```{eval-rst}
29-
.. autofunction:: gymnasium_robotics.mamujoco_v0.parallel_env.map_global_state_to_local_observations
28+
.. autofunction:: gymnasium_robotics.mamujoco_v1.parallel_env.map_global_state_to_local_observations
3029
```
3130
```{eval-rst}
32-
.. autofunction:: gymnasium_robotics.mamujoco_v0.parallel_env.map_local_observation_to_global_state
31+
.. autofunction:: gymnasium_robotics.mamujoco_v1.parallel_env.map_local_observations_to_global_state
3332
```
3433
```{eval-rst}
35-
.. autofunction:: gymnasium_robotics.mamujoco_v0.get_parts_and_edges
34+
.. autofunction:: gymnasium_robotics.mamujoco_v1.get_parts_and_edges
3635
```
3736

3837
MaMuJoCo also supports the [PettingZoo.AECAPI](https://pettingzoo.farama.org/api/aec/) but does not expose extra functions.
@@ -41,19 +40,19 @@ MaMuJoCo also supports the [PettingZoo.AECAPI](https://pettingzoo.farama.org/api
4140

4241
### Arguments
4342
```{eval-rst}
44-
.. autofunction:: gymnasium_robotics.mamujoco_v0.parallel_env.__init__
43+
.. autofunction:: gymnasium_robotics.mamujoco_v1.parallel_env.__init__
4544
```
4645

4746

4847

4948
## How to create new agent factorizations
50-
### example 'Ant-v4', '8x1'
49+
### example 'Ant-v5', '8x1'
5150
In this example, we will create an agent factorization not present in Gymnasium-Robotics/MaMuJoCo the "Ant"/'8x1', where each agent controls a single joint/action (first implemented by [safe-MaMuJoCo](https://github.com/chauncygu/Safe-Multi-Agent-Mujoco)).
5251

5352
first we will load the graph of MaMuJoCo:
5453
```python
55-
>>> from gymnasium_robotics.mamujoco_v0 import get_parts_and_edges
56-
>>> unpartioned_nodes, edges, global_nodes = get_parts_and_edges('Ant-v4', None)
54+
>>> from gymnasium_robotics.mamujoco_v1 import get_parts_and_edges
55+
>>> unpartioned_nodes, edges, global_nodes = get_parts_and_edges('Ant-v5', None)
5756
```
5857
The `unpartioned_nodes` contain the nodes of the MaMuJoCo graph.
5958
The `edges` well, contain the edges of the graph.
@@ -63,18 +62,23 @@ To create our '8x1' partition we will need to partition the `unpartioned_nodes`:
6362
```python
6463
>>> unpartioned_nodes
6564
[(hip1, ankle1, hip2, ankle2, hip3, ankle3, hip4, ankle4)]
66-
>>> partioned_nodes = [(unpartioned_nodes[0][0],), (unpartioned_nodes[0][1],), (unpartioned_nodes[0][2],), (unpartioned_nodes[0][3],), (unpartioned_nodes[0][4],), (unpartioned_nodes[0][5],), (unpartioned_nodes[0][6],), (unpartioned_nodes[0][7],)]>>> partioned_nodes
65+
>>> partioned_nodes = [(unpartioned_nodes[0][0],), (unpartioned_nodes[0][1],), (unpartioned_nodes[0][2],), (unpartioned_nodes[0][3],), (unpartioned_nodes[0][4],), (unpartioned_nodes[0][5],), (unpartioned_nodes[0][6],), (unpartioned_nodes[0][7],)]
6766
>>> partioned_nodes
6867
[(hip1,), (ankle1,), (hip2,), (ankle2,), (hip3,), (ankle3,), (hip4,), (ankle4,)]
6968
```
7069
Finally package the partitions and create our environment:
7170
```python
7271
>>> my_agent_factorization = {"partition": partioned_nodes, "edges": edges, "globals": global_nodes}
73-
>>> gym_env = mamujoco_v0('Ant', '8x1', agent_factorization=my_agent_factorization)
72+
>>> gym_env = mamujoco_v1('Ant', '8x1', agent_factorization=my_agent_factorization)
7473
```
7574

7675
## Version History
77-
v0: Initial version release, uses [Gymnasium.MuJoCo-v4](https://gymnasium.farama.org/environments/mujoco/), and is a fork of [the original multiagent_mujuco](https://github.com/schroederdewitt/multiagent_mujoco)
76+
* v1:
77+
- Now based on `Gymnasium/MuJoCo-v5` instead of `Gymnasium/MuJoCo-v4` (https://github.com/Farama-Foundation/Gymnasium/pull/572).
78+
- When `factorizatoion=None`, the `env.gent_action_partitions.dummy_node` now contains `action_id` (it used to be `None`).
79+
- Added `map_local_observations_to_global_state` & optimized runtime performance of `map_global_state_to_local_observations`.
80+
- Added `gym_env` argument which can be used to load third-party `Gymansium.MujocoEnv` environments.
81+
* v0: Initial version release, uses [Gymnasium.MuJoCo-v4](https://gymnasium.farama.org/environments/mujoco/), and is a fork of [the original multiagent_mujuco](https://github.com/schroederdewitt/multiagent_mujoco)
7882

7983
```{toctree}
8084
:hidden:
@@ -84,6 +88,7 @@ ma_half_cheetah.md
8488
ma_hopper.md
8589
ma_humanoid_standup.md
8690
ma_humanoid.md
91+
ma_multiagentswimmer.md
8792
ma_reacher.md
8893
ma_swimmer.md
8994
ma_pusher.md

docs/envs/MaMuJoCo/ma_ant.md

+12-8
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,22 @@ This Environment is part of [MaMuJoCo](https://robotics.farama.org/envs/MaMuJoCo
1515
The task is [Gymansium's MuJoCo/Ant](https://gymnasium.farama.org/environments/mujoco/ant/).
1616

1717

18-
| Defaults | `env = mamujoco_v0.parallel_env("Ant", None)` |
18+
| Defaults | `env = mamujoco_v1.parallel_env("Ant", None)` |
1919
|-----------------------|------------------------------------------------------|
2020
| Agents | `agents= ['agent_0']` |
2121
| Number of Agents | 1 |
2222
| Action Spaces | `{'agent_0' : Box(-1, 1, (8,), float32)}` |
2323
| Part partition | `[(hip4, ankle4, hip1, ankle1, hip2, ankle2, hip3, ankle3)]` |
2424

2525
## Action Space
26-
The action spaces is depended on the partitioning
26+
The shape of the action space depends on the partitioning. The partitioning has the following form:
2727

2828
### if partitioning is None:
2929
```{figure} figures/ant.png
3030
:name: ant
3131
```
3232

33-
| Instantiate | `env = mamujoco_v0.parallel_env("Ant", None)` |
33+
| Instantiate | `env = mamujoco_v1.parallel_env("Ant", None)` |
3434
|-----------------------|------------------------------------------------------|
3535
| Agents | `agents= ['agent_0']` |
3636
| Number of Agents | 1 |
@@ -56,7 +56,7 @@ If partitioning, is None then the environment contains a single agent with the s
5656
:name: ant_2x4
5757
```
5858

59-
| Instantiate | `env = mamujoco_v0.parallel_env("Ant", "2x4")` |
59+
| Instantiate | `env = mamujoco_v1.parallel_env("Ant", "2x4")` |
6060
|-----------------------|------------------------------------------------------|
6161
| Agents | `agents= ['agent_0', 'agent_1']` |
6262
| Number of Agents | 2 |
@@ -86,7 +86,7 @@ The environment is partitioned in 2 parts, the front part (containing the front
8686
:name: ant_2x4d
8787
```
8888

89-
| Instantiate | `env = mamujoco_v0.parallel_env("Ant", "2x4d")` |
89+
| Instantiate | `env = mamujoco_v1.parallel_env("Ant", "2x4d")` |
9090
|-----------------------|------------------------------------------------------|
9191
| Agents | `agents= ['agent_0', 'agent_1']` |
9292
| Number of Agents | 2 |
@@ -114,7 +114,7 @@ The environment is partitioned in 2 parts, split diagonally.
114114
:name: ant_4x2
115115
```
116116

117-
| Instantiate | `env = mamujoco_v0.parallel_env("Ant", "4x2")` |
117+
| Instantiate | `env = mamujoco_v1.parallel_env("Ant", "4x2")` |
118118
|-----------------------|------------------------------------------------------|
119119
| Agents | `agents= ['agent_0', 'agent_1', 'agent_2', 'agent_3']` |
120120
| Number of Agents | 4 |
@@ -168,7 +168,7 @@ All agents receive the same [Gymnasium's Ant](https://gymnasium.farama.org/envir
168168

169169

170170
## Starting state
171-
The starting state of the environment is the as [Gymnasium's Ant](https://gymnasium.farama.org/environments/mujoco/ant/#starting-state).
171+
The starting state of the environment is the same as [Gymnasium's Ant](https://gymnasium.farama.org/environments/mujoco/ant/#starting-state).
172172

173173

174174

@@ -178,7 +178,11 @@ All agent terminate and truncate at the same time given the same conditions as [
178178

179179

180180
## Version History
181-
- v0: Initial version release, uses [Gymnasium.MuJoCo-v4](https://gymnasium.farama.org/environments/mujoco/), and is a fork of the original MaMuJoCo [schroederdewitt/multiagent_mujoco](https://github.com/schroederdewitt/multiagent_mujoco).
181+
* v1:
182+
- Now based on `Gymnasium/MuJoCo-v5` instead of `Gymnasium/MuJoCo-v4` (https://github.com/Farama-Foundation/Gymnasium/pull/572).
183+
- Now observes `local_categories` of `cfrc_ext` by default (same as `Gymnasium/MuJoCo-v5/Ant`).
184+
- Renamed global node `torso` → `root`.
185+
* v0: Initial version release, uses [Gymnasium.MuJoCo-v4](https://gymnasium.farama.org/environments/mujoco/), and is a fork of the original MaMuJoCo [schroederdewitt/multiagent_mujoco](https://github.com/schroederdewitt/multiagent_mujoco).
182186
Changes from the original `MaMuJoCo` ([schroederdewitt/multiagent_mujoco](https://github.com/schroederdewitt/multiagent_mujoco)):
183187
- Fixed diagonal factorization ("2x4d") not being diagonal.
184188
- Fixed Global observations (The Ant's Torso: `rootx`, `rooty`, `rootz`) not being observed.

docs/envs/MaMuJoCo/ma_coupled_half_cheetah.md

+6-4
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ The environment consists of 2 half cheetahs coupled by an elastic tendon.
1111

1212

1313
## Action Space
14-
The action spaces is depended on the partitioning.
14+
The shape of the action space depends on the partitioning. The partitioning has the following form:
1515

1616
### if partitioning is None:
1717
```{figure} figures/coupled_half_cheetah.png
1818
:name: coupled_half_cheetah
1919
```
2020

21-
| Instantiate | `env = mamujoco_v0.parallel_env("CoupledHalfCheetah", None)` |
21+
| Instantiate | `env = mamujoco_v1.parallel_env("CoupledHalfCheetah", None)` |
2222
|-----------------------|------------------------------------------------------|
2323
| Agents | `agents= ['agent_0']` |
2424
| Number of Agents | 1 |
@@ -49,7 +49,7 @@ If partitioning, is `None`, then the environment contains a single agent with th
4949
:name: coupled_half_cheetah_1p1
5050
```
5151

52-
| Instantiate | `env = mamujoco_v0.parallel_env("CoupledHalfCheetah", "1p1")`|
52+
| Instantiate | `env = mamujoco_v1.parallel_env("CoupledHalfCheetah", "1p1")`|
5353
|-----------------------|------------------------------------------------------|
5454
| Agents | `agents= ['agent_0', 'agent_1']` |
5555
| Number of Agents | 2 |
@@ -98,7 +98,7 @@ All agents receive the same average reward of each cheetah.
9898

9999

100100
## Starting state
101-
The starting state of the environment is the as [Gymnasium's Half Cheetah](https://gymnasium.farama.org/environments/mujoco/half_cheetah/#starting-state) (but with 2 cheetahs).
101+
The starting state of the environment is the same as [Gymnasium's Half Cheetah](https://gymnasium.farama.org/environments/mujoco/half_cheetah/#starting-state) (but with 2 cheetahs).
102102

103103

104104

@@ -108,6 +108,8 @@ All agent terminate and truncate at the same time, given the same conditions as
108108

109109

110110
## Version History
111+
* v1:
112+
- Now based on `Gymnasium/MuJoCo-v5` instead of `Gymnasium/MuJoCo-v4` (https://github.com/Farama-Foundation/Gymnasium/pull/572).
111113
- v0: Initial version release, uses [Gymnasium.MuJoCo-v4](https://gymnasium.farama.org/environments/mujoco/), and is a fork of the original MaMuJoCo [schroederdewitt/multiagent_mujoco](https://github.com/schroederdewitt/multiagent_mujoco).
112114
Changes from the original `MaMuJoCo` ([schroederdewitt/multiagent_mujoco](https://github.com/schroederdewitt/multiagent_mujoco)):
113115
- Fixed action mapping of the second cheetah (It would previously not work)

docs/envs/MaMuJoCo/ma_half_cheetah.md

+7-5
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ The task is [Gymansium's MuJoCo/Half Cheetah](https://gymnasium.farama.org/envir
1717

1818

1919
## Action Space
20-
The action spaces is depended on the partitioning
20+
The shape of the action space depends on the partitioning. The partitioning has the following form:
2121

2222
### if partitioning is None:
2323
```{figure} figures/half_cheetah.png
2424
:name: half_cheetah
2525
```
2626

27-
| Instantiate | `env = mamujoco_v0.parallel_env("HalfCheetah", None)` |
27+
| Instantiate | `env = mamujoco_v1.parallel_env("HalfCheetah", None)` |
2828
|-----------------------|------------------------------------------------------|
2929
| Agents | `agents= ['agent_0']` |
3030
| Number of Agents | 1 |
@@ -47,7 +47,7 @@ If partitioning, is `None`, then the environment contains a single agent with th
4747
:name: half_cheetah_2x3
4848
```
4949

50-
| Instantiate | `env = mamujoco_v0.parallel_env("HalfCheetah", "2x3")`|
50+
| Instantiate | `env = mamujoco_v1.parallel_env("HalfCheetah", "2x3")`|
5151
|-----------------------|------------------------------------------------------|
5252
| Agents | `agents= ['agent_0', 'agent_1']` |
5353
| Number of Agents | 2 |
@@ -75,7 +75,7 @@ The environment is partitioned in 2 parts, the front part (containing the front
7575
:name: half_cheetah_6x1
7676
```
7777

78-
| Instantiate | `env = mamujoco_v0.parallel_env("HalfCheetah", "6x1")`|
78+
| Instantiate | `env = mamujoco_v1.parallel_env("HalfCheetah", "6x1")`|
7979
|-----------------------|------------------------------------------------------|
8080
| Agents | `agents= ['agent_0', 'agent_1', 'agent_2', 'agent_3', 'agent_4', 'agent_5']` |
8181
| Number of Agents | 6 |
@@ -129,7 +129,7 @@ All agents receive the same [Gymnasium's Half Cheetah](https://gymnasium.farama.
129129

130130

131131
## Starting state
132-
The starting state of the environment is the as [Gymnasium's Half Cheetah](https://gymnasium.farama.org/environments/mujoco/half_cheetah/#starting-state).
132+
The starting state of the environment is the same as [Gymnasium's Half Cheetah](https://gymnasium.farama.org/environments/mujoco/half_cheetah/#starting-state).
133133

134134

135135

@@ -138,6 +138,8 @@ All agent terminate and truncate at the same time, given the same conditions as
138138

139139

140140
## Version History
141+
* v1:
142+
- Now based on `Gymnasium/MuJoCo-v5` instead of `Gymnasium/MuJoCo-v4` (https://github.com/Farama-Foundation/Gymnasium/pull/572).
141143
- v0: Initial version release, uses [Gymnasium.MuJoCo-v4](https://gymnasium.farama.org/environments/mujoco/), and is a fork of the original MaMuJoCo [schroederdewitt/multiagent_mujoco](https://github.com/schroederdewitt/multiagent_mujoco).
142144
Changes from the original `MaMuJoCo` ([schroederdewitt/multiagent_mujoco](https://github.com/schroederdewitt/multiagent_mujoco)):
143145
- Added/Fixed Global observations (The Cheetah's front tip: `rootx`, `rooty`, `rootz`) not being observed.

docs/envs/MaMuJoCo/ma_hopper.md

+6-4
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ The task is [Gymansium's MuJoCo/Hopper](https://gymnasium.farama.org/environment
1717

1818

1919
## Action Space
20-
The action spaces is depended on the partitioning
20+
The shape of the action space depends on the partitioning. The partitioning has the following form:
2121

2222
### if partitioning is None:
2323
```{figure} figures/hopper.png
2424
:name: hopper
2525
```
2626

27-
| Instantiate | `env = mamujoco_v0.parallel_env("Hopper", None)` |
27+
| Instantiate | `env = mamujoco_v1.parallel_env("Hopper", None)` |
2828
|-----------------------|------------------------------------------------------|
2929
| Agents | `agents= ['agent_0']` |
3030
| Number of Agents | 1 |
@@ -47,7 +47,7 @@ If partitioning, is `None`, then the environment contains a single agent with th
4747
:name: hopper_3x1
4848
```
4949

50-
| Instantiate | `env = mamujoco_v0.parallel_env("Hopper", "3x1")`|
50+
| Instantiate | `env = mamujoco_v1.parallel_env("Hopper", "3x1")`|
5151
|-----------------------|------------------------------------------------------|
5252
| Agents | `agents= ['agent_0', 'agent_1', 'agent_2']` |
5353
| Number of Agents | 3 |
@@ -89,7 +89,7 @@ All agents receive the same [Gymnasium's Hopper](https://gymnasium.farama.org/en
8989

9090

9191
## Starting state
92-
The starting state of the environment is the as [Gymnasium's Hopper](https://gymnasium.farama.org/environments/mujoco/hopper/#starting-state).
92+
The starting state of the environment is the same as [Gymnasium's Hopper](https://gymnasium.farama.org/environments/mujoco/hopper/#starting-state).
9393

9494

9595

@@ -98,6 +98,8 @@ All agent terminate and truncate at same time given the same conditions as [Gymn
9898

9999

100100
## Version History
101+
* v1:
102+
- Now based on `Gymnasium/MuJoCo-v5` instead of `Gymnasium/MuJoCo-v4` (https://github.com/Farama-Foundation/Gymnasium/pull/572).
101103
- v0: Initial version release, uses [Gymnasium.MuJoCo-v4](https://gymnasium.farama.org/environments/mujoco/), and is a fork of the original MaMuJoCo [schroederdewitt/multiagent_mujoco](https://github.com/schroederdewitt/multiagent_mujoco).
102104
Changes from the original `MaMuJoCo` ([schroederdewitt/multiagent_mujoco](https://github.com/schroederdewitt/multiagent_mujoco)):
103105
- Fixed Global observations (The Hopper's top: `rootx`, `rooty`, `rootz`) not being observed.

docs/envs/MaMuJoCo/ma_humanoid.md

+7-4
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ The task is [Gymansium's MuJoCo/Humanoid](https://gymnasium.farama.org/environme
1717

1818

1919
## Action Space
20-
The action spaces is depended on the partitioning
20+
The shape of the action space depends on the partitioning. The partitioning has the following form:
2121

2222
### if partitioning is None:
2323
```{figure} figures/humanoid.png
2424
:name: humanoid
2525
```
2626

27-
| Instantiate | `env = mamujoco_v0.parallel_env("Humanoid", None)` |
27+
| Instantiate | `env = mamujoco_v1.parallel_env("Humanoid", None)` |
2828
|-----------------------|------------------------------------------------------|
2929
| Agents | `agents= ['agent_0']` |
3030
| Number of Agents | 1 |
@@ -60,7 +60,7 @@ If partitioning, is `None` then the environment contains a single agent with the
6060
:name: humanoid_9|8
6161
```
6262

63-
| Instantiate | `env = mamujoco_v0.parallel_env("Humanoid", "3x1")`|
63+
| Instantiate | `env = mamujoco_v1.parallel_env("Humanoid", "3x1")`|
6464
|-----------------------|------------------------------------------------------|
6565
| Agents | `agents= ['agent_0', 'agent_1']` |
6666
| Number of Agents | 2 |
@@ -114,7 +114,7 @@ All agents receive the same [Gymnasium's Humanoid](https://gymnasium.farama.org/
114114

115115

116116
## Starting state
117-
The starting state of the environment is the as [Gymnasium's Humanoid](https://gymnasium.farama.org/environments/mujoco/humanoid/#starting-state).
117+
The starting state of the environment is the same as [Gymnasium's Humanoid](https://gymnasium.farama.org/environments/mujoco/humanoid/#starting-state).
118118

119119

120120

@@ -123,6 +123,9 @@ All agent terminate and truncate at the same time, given the same conditions as
123123

124124

125125
## Version History
126+
* v1:
127+
- Now based on `Gymnasium/MuJoCo-v5` instead of `Gymnasium/MuJoCo-v4` (https://github.com/Farama-Foundation/Gymnasium/pull/572).
128+
- No longer observes `qfrc_actuator` of `root` & `cinert`, `cvel`, `qfrc_actuator`, `cfrc_ext` of `worldbody` (same as `Gymnasium/MuJoCo-v5/Humanoid`).
126129
- v0: Initial version release, uses [Gymnasium.MuJoCo-v4](https://gymnasium.farama.org/environments/mujoco/), and is a fork of the original MaMuJoCo [schroederdewitt/multiagent_mujoco](https://github.com/schroederdewitt/multiagent_mujoco).
127130
Changes from the original `MaMuJoCo` ([schroederdewitt/multiagent_mujoco](https://github.com/schroederdewitt/multiagent_mujoco)):
128131
- Added/Fixed Global observations (The Humanoids's torso: `rootx`, `rooty`, `rootz`) not being observed.

0 commit comments

Comments
 (0)