Metadata-Version: 2.1
Name: Marl-Factory-Grid
Version: 0.0.5
Summary: A framework to research MARL agents in various setings.
Home-page: https://github.com/illiumst/marl-factory-grid/import
Author: Steffen Illium
Author-email: steffen.illium@ifi.lmu.de
License: MIT
Keywords: artificial intelligence,pytorch,multiagent reinforcement learning,simulation,emergence,gymnasium,environment
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.11
Description-Content-Type: text/markdown
Requires-Dist: numpy
Requires-Dist: pygame (>=2.0)
Requires-Dist: numba (>=0.56)
Requires-Dist: gymnasium (>=0.26)
Requires-Dist: seaborn
Requires-Dist: pandas
Requires-Dist: pyyaml
Requires-Dist: networkx
Requires-Dist: torch
Requires-Dist: tqdm

# EDYS

Tackling emergent dysfunctions (EDYs) in cooperation with Fraunhofer-IKS

## Setup
Just install this environment by `pip install marl-factory-grid`.

## First Steps


### Quickstart
Most of the env. objects (entites, rules and assets) can be loaded automatically. 
Just define what your environment needs in a *yaml*-configfile like:

<details><summary>Example ConfigFile</summary>    
    General:
    level_name: rooms
    env_seed: 69
    verbose: !!bool False
    pomdp_r: 5
    individual_rewards: !!bool True

    Entities:
        Defaults: {}
        Doors:
            closed_on_init: True
            auto_close_interval: 10
            indicate_area: False
        Destinations: {}

    Agents:
        Wolfgang:
            Actions:
                - Move8
                - Noop
                - DoorUse
                - ItemAction
            Observations:
                - All
                - Placeholder
                - Walls
                - Items
                - Placeholder
                - Doors
                - Doors
        Armin:
            Actions:
                - Move4
                - ItemAction
                - DoorUse
            Observations:
                - Combined:
                    - Agent['Wolfgang']
                    - Walls
                    - Doors
                    - Items
    Rules:
        Defaults: {}
        Collision:
            done_at_collisions: !!bool True
        ItemRespawn:
            spawn_freq: 5
        DoorAutoClose: {}

    Assets:
    - Defaults
    - Items
    - Doors
   </details>

Have a look in [\quickstart](./quickstart) for further configuration examples.

### Make it your own

#### Levels
Varying levels are created by defining Walls, Floor or Doors in *.txt*-files (see [./environment/levels](./environment/levels) for examples).
Define which *level* to use in your *configfile* as: 
```yaml
General:
    level_name: rooms    
```
... or create your own , maybe witht he help of [asciiflow.com](https://asciiflow.com/#/).

#### Entites
TODO
#### Rules
TODO
 - Results
#### Assets
TODO
