swarmrl

Multi agent reinforcement learning for intelligent active matter

https://github.com/swarmrl/swarmrl

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (20.9%) to scientific vocabulary

Keywords

active-matter espressomd jax microrobots reinforcement-learning
Last synced: 9 months ago · JSON representation

Repository

Multi agent reinforcement learning for intelligent active matter

Basic Info
Statistics
  • Stars: 34
  • Watchers: 0
  • Forks: 9
  • Open Issues: 15
  • Releases: 0
Topics
active-matter espressomd jax microrobots reinforcement-learning
Created over 3 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation Codeowners

README.md

PyTest codecov code-style

SwarmRL

SwarmRL is a Python package aimed at providing a simple and flexible framework for developing and testing reinforcement learning and mathematical optimization algorithms for multi-agent systems. Some key features of SwarmRL include:

  • Integration with EspressoMD simulation engine
  • Support for experimental setups
  • Actor-critic reinforcement learning strategies

Before jumping into the code, check us out on YouTube!

Installation

Currently, SwamrRL is only available from source so it must be installed within the local directory.

sh git clone https://github.com/SwarmRL/SwarmRL.git cd SwarmRL python -m pip install .

Looking for a Starting Point?

Our documentation is a work in progress but can be found here. If you have questions about the code or find any problems, please create an issue so we can work on it as soon as possible. If you're feeling adventurous, you can check out our custom-built Swarm GPT, here which has been conditioned on the SwarmRL repository and will be updated as more resources become available. Be careful though! It isn't perfect but not a bad place to start for general principles of reinforcement learning and pieces of the software.

Contributing

Install developer dependencies:

sh python -m pip install -r dev-requirements.txt python -m pip install ".[rnd]" python -m pip install sphinx sphinx_rtd_theme

Run the linters and code formatters with pre-commit:

sh pre-commit run --all-files

Build the documentation with sphinx:

sh cd docs/ make html xdg-open build/html/index.html

Run the testsuite with pytest and CTest:

```sh

run SwarmRL testsuite

pytest --ignore CI/espresso_tests

run ESPResSo testsuite

sh CI/runespressotest_suite.sh -j $(nproc) ```

The ESPResSo testsuite leverages CTest to schedule jobs in parallel. The wrapper script assumes the ESPResSo package is part of the $PYTHONPATH environment variable or available in the current Python virtual environment. Additional CTest flags can be passed to the wrapper script, such as -LE long to skip integration tests.

When contributing new features, consider adding a unit test in the CI/unit_tests/ folder. These tests are automatically discovered by the pytest test driver. For ESPResSo tests, the CTest test driver is used instead; add the test in one of the CI/espresso_tests/ subfolders and add a corresponding line in the CI/espresso_tests/CTestTestfile.cmake file.

To run code coverage locally:

sh COVERAGE=1 sh CI/run_espresso_test_suite.sh -j $(nproc) python -m coverage run --parallel-mode -m pytest --ignore CI/espresso_tests python -m coverage combine . CI/espresso_tests python -m coverage html --omit="*/espressomd/*" --directory=coverage_html xdg-open coverage_html/index.html

Owner

  • Name: SwarmRL
  • Login: SwarmRL
  • Kind: organization
  • Location: Germany

Intelligent colloids for everyone

GitHub Events

Total
  • Watch event: 13
  • Delete event: 2
  • Member event: 1
  • Issue comment event: 2
  • Push event: 4
  • Pull request event: 11
  • Pull request review event: 8
  • Pull request review comment event: 7
  • Fork event: 1
  • Create event: 1
Last Year
  • Watch event: 13
  • Delete event: 2
  • Member event: 1
  • Issue comment event: 2
  • Push event: 4
  • Pull request event: 11
  • Pull request review event: 8
  • Pull request review comment event: 7
  • Fork event: 1
  • Create event: 1

Dependencies

pyproject.toml pypi
setup.py pypi
.github/workflows/espresso.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
  • mpi4py/setup-mpi v1 composite
.github/workflows/lint.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
  • psf/black stable composite
.github/workflows/pytest.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
dev-requirements.txt pypi
  • black ==22.10.0 development
  • flake8 ==5.0.4 development
  • pytest ==6.2.5 development
  • sphinx ==4.2.0 development
  • sphinx-rtd-theme ==1.0.0 development
requirements.txt pypi
  • dask *
  • dask-jobqueue *
  • dataclasses *
  • distributed *
  • flax >=0.6.1
  • h5py *
  • jax *
  • jaxlib *
  • markupsafe ==2.0.1
  • matplotlib *
  • numpy *
  • optax *
  • pint *
  • pytest *
  • rich *
  • setuptools *
  • tqdm *
  • znvis *