essim2d3d controllers

Evolved controller weights for the paper Evaluating the Transfer of Co-Evolved Communication from 2D to 3D Simulation (arXiv:2610.09280).

Code: github.com/ferdiex/essim2d3d · Archive: Zenodo · Demo: 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. The same checkpoints live in its models/ folder; this repository mirrors them for discoverability on the Hub.

To fetch a checkpoint from here instead:

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

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

Downloads last month

-

Downloads are not tracked for this model. How to track
Video Preview
loading

Space using xferdie/essim2d3d-controllers 1

Paper for xferdie/essim2d3d-controllers