About

Kilosim is a fast, lightweight, pseudo-physical* C++ simulator for Kilobot robots. Notable benefits include:

  • Pseudo-physical model means fast simulation for high-throughput

  • Easily re-use code written for Kilobots, using the same Kilolib API

  • Includes support for ambient light sensing

  • Included Logger to easily to save experiment parameters in log continuous state data

  • Cross-platform Viewer for debugging and recording simulations

  • Easy configuration with JSON files to run multiple trials and varied experiments

  • [In progress] Parallelization with OpenMP

* Pseudo-physical means that it is spatial and handles issues like collisions in a functional but hand-wavy manner. We make no attempt to accurately model true physical interactions. If you want to see what this means, run an example simulation with the Viewer.

Note that this project is currently in a pre-release state and may still contain bugs, incomplete documentation, and missing features. If you encounter any issues, contact us.

GitHub release   GitHub issues-open   GitHub issues-closed   GitHub pull-requests

DOI   Documentation   MIT license

Known Issues

  • Fails with GCC 8 (We suspect this is a GCC bug; see issue #23.)

    • Workaround: Change your GCC version.

  • Viewer does not work over SSH

Citing

If you use this software, please cite it as follows:

DOI (all/latest version): 10.5281/zenodo.3406864

BibTeX:

bibtex
@misc{kilosim_3406865,
author       = {Ebert, Julia and
                  Barnes, Richard},
title        = {Kilosim},
month        = mar,
year         = 2020,
doi          = {10.5281/zenodo.3406865},
url          = {https://doi.org/10.5281/zenodo.3406865}
}

License

This software is released under the MIT License.

Support

If you are having issues installing or using the simulator or you have questions: open an issue on GitHub or email Julia Ebert.