Skip to content

Add tutorials/recipes for gama-server #259

@lesquoyb

Description

@lesquoyb

Is your request related to a problem? Please describe.
Gama-server being the basis of many new applications now, it will be very interesting to add tutorials that cover the basics of using it.
In my opinion topics that could be interesting to cover are:

  • using gama-server in gui mode, basically this could be done by creating a small controller outside of gama. We could also simply reuse the connector.html that is packaged with gama ? In that case it would be better to make a specific model that would demonstrate what benefits from outside control.
  • using gama-server in headless to manipulate multiple simulations at once,
  • using the combination of gama-server + network to exchange data with the outside
  • using gama-server through the python library
  • using gama-server through the js library
  • using gama-server with the gymnasium and petting zoo libraries once they are finished
  • showcase simulation exploration with gama-server
  • showcase simulation optimisation with gama-server

I think we could achieve all that by making two distinct tutorials:

  1. One centered on controlling only one simulation from the outside:
    1. the first part could be building a specific model in gaml
    2. then to run it in normal GUI mode
    3. After that we can make use of the connector.html to illustrate outside control and demonstrate a few of the possibilities
    4. Then going one step further we modify our model to add some specific function to be called from the outside (for example call a function to create an event in the simulation) and call it from the expression of connector.html
    5. This is not very convenient, especially if we want to distribute the controller to end users, so we can start building a custom js controller using the js library
  2. The second would be centered on model exploration
    1. first we could build a model that makes sense to explore with batch experiments
    2. Then we highlight that batch is limited to only a few algorithms that are not so tunable, so we could start building our own exploration algorithm in python and use the python library to manipulate our model, loading the right parameters every time
    3. To improve performances we can then improve the algorithm by loading multiple simulations in parallel
    4. After that we can propose to go one step further and use the known library gymnasium to run reinforcement learning algorithms on the model to optimise one parameter
    5. Finally we could modify the model a bit so it would make sense to replace gymnasium by petting zoo and do multi-agent reinforcement learning instead

Additionally we could have very brief introduction pages to Gama-server gui, gama-server and the connector.html as basic tool to debug/understand. And those two tutorials could refer to those pages

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions