AmoebotSim

Welcome to AmoebotSim, a visual simulator for the amoebot model developed by the Self-Organizing Particle Systems (SOPS) Lab at Arizona State University and the University of Paderborn. The amoebot model is an abstraction of programmable matter, a material that can dynamically change its physical properties (e.g., shape, size, color, etc.) based on user input or stimuli from its environment. This simulator is designed for students and researchers who want to:

  • Visualize and learn about current distributed algorithms for the amoebot model

  • Experiment with new ideas for amoebot model algorithms

  • Validate correctness and runtime claims for new or existing amoebot model algorithms

Getting Started

In your self-guided tour through our documentation, choosing the right guide for your goals will get you to the right information quickly.

Explorer 🔎

You’re an explorer if:

  • You’d just like to see some particle systems in action.

  • You don’t necessarily have a lot of programming experience.

  • You’re looking for a first step into programmable matter research.

  • You want the fastest path to experimenting with existing algorithms.

If this describes you, refer to the Installation Guide for instructions on downloading the most recent standalone version of AmoebotSim. Then, follow the Usage Guide for instructions on navigating the AmoebotSim environment.

Researcher 🧪

You’re a researcher if:

  • You want to implement your own algorithm ideas in AmoebotSim.

  • You want evidence that an amoebot model algorithm you’re developing does not have missing cases or bugs.

  • You’re preparing a paper on an amoebot model algorithm and want to add simulation results and performance statistics.

If this describes you, refer to the Installation Guide for instructions on cloning the most recent stable codebase, installing the development environment, and running the project. Then, refer to the Code Tutorials for a walkthrough of AmoebotSim algorithms and examples and the Scripting Documentation for a guide to scripting experiments.

Developer 💻

You’re a developer if:

  • You’re a researcher (as above) who wants to add your algorithms to the public, canonical version of AmoebotSim.

  • You’re interested in contributing to and maintaining AmoebotSim as an open source project.

  • You’re a member of the SOPS Lab on the AmoebotSim team.

If this describes you, refer to the Installation Guide for instructions on cloning the most recent stable codebase, installing the development environment, and running the project. If you’re new to AmoebotSim development, refer to the Code Tutorials for a walkthrough of AmoebotSim algorithms and examples and the Scripting Documentation for a guide to scripting experiments. All development best practices and guidelines for contributions are discussed under Development.

Tip

Look for the 🔎, 🧪, and 💻 guides throughout the documentation to find the information most relevant to you.

Acknowledgements

AmoebotSim was originally created by Robert Gmyr during his PhD studies at the University of Paderborn, and is now actively maintained by Joshua J. Daymude and other members of the SOPS Lab. Many other hands have helped (and are currently helping) build AmoebotSim. We’d like to thank:

Licensing

AmoebotSim is licensed under the GNU General Public License v3.0 in our attempts to keep research open. You’re welcome to do pretty much anything you’d like with our code, but you cannot distribute a closed source version commercially and you must keep all copyright and license notices intact.

AmoebotSim: a visual simulator for the amoebot model of programmable matter. Copyright (C) 2021 Joshua J. Daymude, Robert Gmyr, and Kristian Hinnenthal. Please direct all questions and communications to sopslab@asu.edu.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.

AmoebotSim is developed using Open Source Qt.

Citing AmoebotSim

If you utilize AmoebotSim in your research, we ask that you cite the project as:

Joshua J. Daymude, Robert Gmyr, and Kristian Hinnenthal. “AmoebotSim: A Visual Simulator for the Amoebot Model of Programmable Matter”, Available online at https://github.com/SOPSLab/AmoebotSim, 2021.

You can also use the following BibTeX entry, if more convenient:

@unpublished{Daymude2021-amoebotsim,
  title = {{AmoebotSim: A Visual Simulator for the Amoebot Model of Programmable Matter}},
  author = {Daymude, Joshua J. and Gmyr, Robert and Hinnenthal, Kristian},
  year = {2021},
  note = {Available online at \url{https://github.com/SOPSLab/AmoebotSim}}
}

FAQs

We’ll add frequently-asked questions in the future as they become relevant.

Contact Us

If you can’t find the answers you need in the documentation, feel free to open a new issue in GitHub using the question template or email us at sopslab@asu.edu (whichever is more appropriate for your question).

Changelog

In the future, this will contain the changelog for AmoebotSim.