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 researchers who want to:
- Visualize and learn about current distributed algorithms for the amoebot model
- Experiment with new ideas for amoebot model algorithms
- Perform validation and runtime testing for new or existing amoebot model algorithms
This README covers some basic information, but you'll find much more in our documentation.
You're an explorer 🔎 if you don't necessarily have a lot of programming experience but would love to see some particle systems in action. If this describes you, download the latest release of AmoebotSim here. Then, read our Usage Guide for instructions on navigating the AmoebotSim environment.
You're a researcher 🧪 if you want to implement your own algorithm simulations in AmoebotSim and use it to capture performance statistics. If this describes you, read our Installation Guide for instructions on cloning the most recent stable codebase, installing the development environment, and running the project. Then, read the Tutorials for a walkthrough of AmoebotSim algorithms and examples.
You're a developer 💻 if you're a researcher (as above) who wants to add your algorithms to the public, canonical version of AmoebotSim, or if you're interested in contributing to and maintaining AmoebotSim as an open source project. If this describes you, read our 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, read the Tutorials for a walkthrough of AmoebotSim algorithms and examples. All development best practices and guidelines for contributions are discussed in our Development Guide.
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 Kristian Hinnenthal, current PhD students in the SOPS Lab. Many other hands have helped (and are currently helping) build AmoebotSim. You can find a list of past and present contributors here and a directory of our lab members here.
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.
If you can't find the answers you need in the documentation, feel free to open a new issue using the question template or email us at sopslab@asu.edu (whichever is more appropriate for your question).