--- 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.