|
Download README.md from xferdie/essim2d3d-controllers: direct link, hf CLI and curl.
- Browser
- Download file 3.24 kB
-
https://huggingface.co/xferdie/essim2d3d-controllers/resolve/main/README.md
- Command line
-
hf download hf://xferdie/essim2d3d-controllers/README.md
-
curl -L -o README.md https://huggingface.co/xferdie/essim2d3d-controllers/resolve/main/README.md
3.24 kB
| license: mit | |
| tags: | |
| - evolutionary-robotics | |
| - neuroevolution | |
| - emergent-communication | |
| - multi-agent | |
| - robotics | |
| - pybullet | |
| - gru | |
| # essim2d3d controllers | |
| Evolved controller weights for the paper | |
| [Evaluating the Transfer of Co-Evolved Communication from 2D to 3D Simulation](https://arxiv.org/abs/2610.09280) | |
| (arXiv:2610.09280). | |
| Code: [github.com/ferdiex/essim2d3d](https://github.com/ferdiex/essim2d3d) 路 | |
| Archive: [Zenodo](https://doi.org/10.5281/zenodo.21967056) 路 | |
| Demo: [xferdie/essim2d-demo](https://huggingface.co/spaces/xferdie/essim2d-demo) | |
| ## What these weights are | |
| These are not models in the usual machine learning sense. Each file holds the | |
| weights of two small recurrent controllers, one per robot (`brain_a` and | |
| `brain_b`), co-evolved with a genetic algorithm in a two-robot cooperative | |
| foraging task where one signalling channel can be used to communicate the | |
| location of food. | |
| Each controller is a GRU network with 16 units and a residual path that | |
| connects the inputs directly to the outputs: | |
| | Array | Shape | Role | | |
| |---|---|---| | |
| | `w_gru` | 27 x 48 | GRU weights (11 inputs + 16 recurrent units, 3 gates x 16) | | |
| | `b_gru` | 48 | GRU biases | | |
| | `w_out` | 16 x 5 | GRU state to outputs | | |
| | `b_out` | 5 | Output biases | | |
| | `w_res` | 11 x 5 | Residual path, inputs to outputs | | |
| That is 1,484 parameters per robot. The weights are plain JSON lists (no | |
| PyTorch or other framework) and only make sense together with the simulators, | |
| sensor encoding and instinct layer in the GitHub repository. They run on CPU; | |
| no GPU is needed. | |
| ## Files | |
| | File | Description | | |
| |---|---| | |
| | `social3d_v15_full_final.json` | **Official checkpoint** used for the results reported in the paper (3D, PyBullet) | | |
| | `social2d_emergence.json` | Controllers co-evolved in the 2D grid simulator | | |
| | `social2d_*_final.json`, `social3d_*_final.json` | Further independently evolved 2D and 3D checkpoints (see the paper's Methods) | | |
| | `social3d_v10_*`, `social3d_v14_*` | Earlier 3D development checkpoints | | |
| | `braitenberg_avoidance.json` | Hand-set Braitenberg obstacle-avoidance baseline (not evolved) | | |
| ## How to use | |
| Installation, training, visualization and the commands to reproduce the | |
| paper's results are documented in the | |
| [GitHub README](https://github.com/ferdiex/essim2d3d#readme). The same | |
| checkpoints live in its | |
| [`models/`](https://github.com/ferdiex/essim2d3d/tree/main/models) folder; | |
| this repository mirrors them for discoverability on the Hub. | |
| To fetch a checkpoint from here instead: | |
| ```python | |
| from huggingface_hub import hf_hub_download | |
| path = hf_hub_download( | |
| repo_id="xferdie/essim2d3d-controllers", | |
| filename="social3d_v15_full_final.json", | |
| ) | |
| ``` | |
| and pass `path` to the repository's viewers (`essim3d.py --controller` for 3D, | |
| `essim2d.py --model` for 2D). | |
| ## Citation | |
| ```bibtex | |
| @misc{montesgonzalez2026transfer2d3d, | |
| author = {Montes-Gonzalez, Fernando}, | |
| title = {Evaluating the Transfer of Co-Evolved Communication | |
| from 2D to 3D Simulation}, | |
| year = {2026}, | |
| eprint = {2610.09280}, | |
| archivePrefix = {arXiv}, | |
| primaryClass = {cs.RO}, | |
| doi = {10.48550/arXiv.2610.09280} | |
| } | |
| ``` | |
| ## License | |
| MIT, as the code repository. | |