: Multi-Agent Distributed System

Author

Paolo Bosetti

Published

June 2, 2025

Important

Always get the latest MADS installer on: 👉 git.new/MADS 👈

See this guide for installation instructions.

ImportantNew version!

MADS v2.0.0 is about to be released. This version introduces some breaking changes: look at this guide to learn more and how to migrate.

What is it

MADS-NET is a simple framework for implementing a network of distributed agents that can exchange information via ZeroMQ.

It is made by a main set of executables available in the MADS tools collection repo, which also provides installers for Linux, MacOS and Windows.

The MADS tools collection includes a broker and a set of general purpose agents that can act as sources, filters, or sinks. The actual operations performed by agents can be customized either via scripting languages (using simple popen interface), or by implementing dedicated plugins in C++.

Some of the available plugins are:

  • arduino_plugin: reads from a serial connected arduino
  • hpe2D_plugin: performs human pose estimation from a camera stream
  • mqtt_plugin: acts as a bridge with an MQTT network via two agents: mqtt2mads.plugin (source) and mads2mqtt.plugin (sink)
  • say_plugin: Text-to-speech of incoming messages
  • ble_plugin: Bluetooth Low Energy source plugin
  • tui_plugin: Terminal User Interface for sending metadata commands to MADS network
  • lua_plugin: Interfacing Lua scripts to the MADS network (useful for prototyping and rapid development)
  • hdf5_plugin: a sink agent that logs data traffic into a HDF5 file
  • rpio_plugin: source and sink agents for Raspberry Pi GPIO pins (using libgpiod v1.6)
  • replay_plugin: a source plugin that replays data from a CSV file
  • rerunner_plugin: a sink plugin that plots stream data in real-time on Rerun

There are also additional monolithic agents:

  • python_agent: Interfacing Python3 scripts to the MADS network (useful for prototyping and rapid development)

Look into the guides section for more information on how to use the MADS tools collection.

Back to top