m-abdulhak / SwarmJS

Interactive 2D swarm robotics simulation platform developed to prototype, benchmark, and showcase control algorithms for multi robot systems.
https://m-abdulhak.github.io/SwarmJS/
13 stars 7 forks source link
2d-engine multi-platform multi-robot open-source open-source-project physics-engine robot robot-simulation robot-simulator robotic-swarm robotics robotics-simulation robots simulated-robots simulation simulator swarm swarmjs

SwarmJS: Interactive Swarm Robotics Simulation

mainUI

About

SwarmJS is an interactive 2D simulation platform developed to prototype, benchmark, and showcase control algorithms for multi robot systems.

Our goal with this project is to create a simple and flexible simulation platform that allows users to easily write and share multi-robot control algorithms. SwarmJS is a web application written in JavaScript, and runs completely in the browser. Users can interact with the robots and write control code directly in the browser. SwarmJS is tailored towards mobile robots operating in the plane and engaged in tasks such as aggregation, object clustering, object sorting, planar construction, and pheromone-guided foraging.

Built with:

Getting Started

You can start by watching the video introduction or trying SwarmJS yourself here.

Simulations in SwarmJS are defined as 'scenes'. A scene defines a set of configurations that describe every detail in the simulation. Multiple scenes are provided in SwarmJS to showcase the various capabilities of the simulator, some of which offer the ability to modify the control algorithm directly from the browser while others only enable modifications by cloning the repository and changing the code. Scenes can be selected and run with the scene selector in the quick actions menu.

The latest version of the simulator is available on https://m-abdulhak.github.io/SwarmJS, you can modify, run, and benchmark control algorithms for scenes that support user-defined controllers directly in the browser.

You can also run a local instance with the following steps:

Prerequisites

Installation

git clone https://github.com/m-abdulhak/SwarmJS.git
cd SwarmJS
npm install
npm run dev

The simulator should then be available on: http://localhost:8080/

How to Use

SwarmJS can be used in two ways:

Documentation

The documentation is divided into several sections: