Skip to content

DIAMANTS is an open-source platform for distributed intelligence and swarm robotics. It unites ROS2, Python/Mesa, WebGL, and Kubernetes into a scalable stack that enables real-time orchestration of autonomous systems, from collaborative simulation to large-scale drone operations in the field.

License

Notifications You must be signed in to change notification settings

lololem/diamants-collab

Repository files navigation

💎 DIAMANTS: Distributed Autonomous Multi-agents Systems

ROS2 Python License FastAPI

DIAMANTS is an open-source platform for the simulation and execution of distributed intelligence. Our philosophy: code once, and deploy everywhere—in simulation and in the real world.

This project is a 'playground' for developers, creating a robust bridge between high-level intent (the swarm's strategy) and low-level execution (each drone's physical commands). It's a space to code distributed intelligence, test it in a credible simulation, and push it directly to real-world swarms.

🎯 Vision

DIAMANTS's objective is to tackle a major technical challenge: achieving emergent collective behaviors in open, modular, and interoperable code. We aim to demonstrate that distributed intelligence is not a theoretical concept, but a robust, documented, and reusable software artifact for the community.

🚨 URGENT: Community Help Needed | Aide de la Communauté Recherchée

🔥 CRITICAL MISSION: Wildfire Fighting in VAR Region, France 🔥 MISSION CRITIQUE : Lutte contre les incendies dans le VAR, France

This platform is being developed with a vital objective: creating an autonomous drone system to fight wildfires that frequently devastate the VAR region in France. Forest fires represent a major danger to populations, wildlife, and the Mediterranean environment.

Cette plateforme est développée avec un objectif vital : créer un système de drones autonomes pour éteindre les incendies qui ravagent fréquemment la région du VAR en France. Les feux de forêt représentent un danger majeur pour les populations, la faune, et l'environnement méditerranéen.

🆘 We NEED YOU! | Nous avons besoin de VOUS !

The project still has critical anomalies that prevent operational deployment. Your expertise can save lives and protect our forests:

Le projet comporte encore des anomalies critiques qui empêchent le déploiement opérationnel. Votre expertise peut sauver des vies et protéger nos forêts :

  • 🐛 Bug fixes | Corrections de bugs : Multi-drone system stabilization | Stabilisation du système multi-drones
  • 🧪 Field testing | Tests terrain : Algorithm coordination validation | Validation des algorithmes de coordination
  • ⚡ Optimizations | Optimisations : Real-time performance improvements | Amélioration des performances temps réel
  • 🔧 Integration | Intégration : ROS2/Frontend/Hardware coordination | Coordination ROS2/Frontend/Hardware
  • 📚 Documentation | Documentation : Emergency deployment guides | Guides de déploiement d'urgence

🌲 Every contribution can help preserve our forests and save lives. 🌲 Chaque contribution peut aider à préserver nos forêts et sauver des vies.

Join the Mission | Rejoindre la mission

🎬 System Demonstrations

See DIAMANTS in action! Watch our multi-drone collaborative system working seamlessly from simulation to real-world deployment.

🤖 Backend - ROS2 Multi-Drone SLAM System

Real-time collaborative SLAM with 8 Crazyflie drones in Gazebo simulation, featuring TMUX orchestration and map fusion.

Watch Backend Demo

🤖 Backend Features Showcase:

  • ✅ 8 Crazyflie drones in Gazebo simulation
  • ✅ Real-time collaborative SLAM mapping
  • ✅ TMUX orchestration (13 specialized windows)
  • ✅ ROS2 Jazzy + Gazebo Garden integration
  • ✅ Multi-agent path planning and coordination

🌐 Frontend - 3D Visualization Interface

Interactive Three.js + WebGL interface with real-time drone tracking, mission planning, and swarm visualization.

Frontend Interface Overview

Watch Frontend Demo

🌐 Frontend Features Showcase:

  • ✅ Three.js + WebGL real-time 3D visualization
  • ✅ WebSocket communication with ROS2 backend
  • ✅ Interactive mission planning interface
  • ✅ Vite development server integration
  • ✅ Modern responsive UI design

Advanced Visualization Features

Frontend Demo 1

🎮 Advanced Features:

  • ✅ Advanced shader effects and lighting
  • ✅ Real-time performance monitoring
  • ✅ Dynamic camera controls
  • ✅ WebSocket integration demonstration
  • ✅ Multi-viewport rendering

🚁 Additional System Features

Extended capabilities showcasing various aspects of the DIAMANTS platform.

Multi-Agent Systems (SMA) Demo

Watch SMA Demo

🤖 SMA Features:

  • ✅ Distributed agent coordination
  • ✅ Emergent swarm behaviors
  • ✅ Real-time multi-agent communication
  • ✅ Collective decision making

Gradient-Based Navigation Demo

Watch Gradient Demo

🎯 Gradient Navigation Features:

  • ✅ Gradient-based path planning
  • ✅ Obstacle avoidance algorithms
  • ✅ Dynamic field navigation
  • ✅ Smooth trajectory optimization

Swarm Coordination Demo

Watch Swarm Demo

🐝 Swarm Features:

  • ✅ Collective swarm intelligence
  • ✅ Distributed formation control
  • ✅ Emergent group behaviors
  • ✅ Scalable multi-drone coordination

Stigmergy-Based Coordination Demo

Watch Stigmergy Demo

🧭 Stigmergy Features:

  • ✅ Indirect coordination through environment
  • ✅ Pheromone-like trail mechanisms
  • ✅ Self-organizing pathfinding
  • ✅ Bio-inspired collective intelligence

🎮 Interactive Demonstrations

Experience DIAMANTS directly in your browser with our interactive HTML demonstrations showcasing real-time swarm intelligence and mission capabilities.

🚁 Search & Rescue Simulation

DIAMANTS_Crazyflie_Search_Rescue_Gazebo_Simulation.html

Complete Crazyflie drone simulation with ROS2-like interface for search and rescue missions:

  • ✅ Realistic Crazyflie mesh with physics simulation
  • ✅ ROS2-style control panels and topic monitoring
  • ✅ Multi-drone collaborative search algorithms
  • ✅ Anti-collision system with formation control
  • ✅ Tactical minimap with stigmergy visualization
  • ✅ Real-time intelligence and mission metrics

🌟 Complete Frontend Intelligence Demo

DIAMANTS_Complete_Frontend_Swarm_Intelligence_Demo.html

Spectacular visualization of swarm intelligence with advanced effects:

  • ✅ Wahoo effect with energy auras between drones
  • ✅ Real-time DIAMANTS φ+σ gradient calculations
  • ✅ Mathematical formulas displayed live
  • ✅ Emergent behavior visualization
  • ✅ Immersive futuristic interface design

📹 Complete Video Documentation

Video Library - Comprehensive collection of demonstration videos:

✨ Key Features & Technical Challenges

🌱 Open Source by Design

Our entire ecosystem is built on recognized open standards. No proprietary lock-in.

Main Stack:

  • Backend & Simulation: ROS 2, Gazebo, PX4/ArduPilot, MAVROS
  • Frontend & Visualization: Vite, Three.js, Babylon.js, WebGL, Node.js

Goal: To foster an ecosystem where every developer can contribute, test, and enrich the platform.

🌐 Radical Interoperability

A defined mission must be understood by any agent, regardless of its hardware or middleware.

  • Universal Missions: Mission definitions in YAML/JSON
  • Unified APIs: Design of agnostic interfaces and mission translators

🧠 From Simple Rules to Collective Intelligence

The scientific core of the project is the study of emergence from simple interactions.

  • Explored Algorithms: Stigmergy, consensus algorithms, social forces (Lennard-Jones type)
  • Challenge: To code simple behavioral bricks and observe the emergence of a credible collective intelligence

🔄 Seamless Sim-to-Real Workflow

Simulation is a mirror of reality. Zero throwaway code.

  • High-Fidelity Simulation: The high-level code produces command streams via ROS 2 that are translated identically for the simulator and for physical agents
  • Continuous Validation: Every line of code is validated in simulation and then executed without any modification on the real hardware

🚀 Quick Start

📖 For detailed setup instructions, visit our Complete Wiki Documentation

Prerequisites

Installation

# Clone the collaborative repository
git clone https://github.com/lololem/diamants-collab.git
cd diamants-collab

# One-command launch (interactive menu)
./launch_diamants.sh

💡 Need help? Check our Installation Guide or Guide d'Installation (French).

🔧 Component-Specific Launch

You can run each system autonomously using dedicated scripts:

📡 DIAMANTS_API - FastAPI Service & WebSocket Bridge

cd DIAMANTS_API
./setup.sh        # First-time setup
./start.sh        # Launch API service
./status.sh       # Check service status
./stop.sh         # Stop service

🤖 DIAMANTS_BACKEND - ROS2 SLAM System

cd DIAMANTS_BACKEND
./setup.sh                          # Install ROS2 dependencies
./launch_slam_collaborative.sh      # Start collaborative SLAM
# Monitor logs: tail -f logs/diamants_tmux_slam_collab_journal.log

🌐 DIAMANTS_FRONTEND - 3D Visualization Interface

cd DIAMANTS_FRONTEND/Mission_system
npm install       # Install dependencies
npm run dev       # Start development server (http://localhost:3000)
npm run build     # Production build

🤝 Collaborative Development

DIAMANTS is actively seeking contributors!

We need help with:

  • 🐛 Bug Fixes: System stability and edge cases
  • 🚀 Performance Optimization: Multi-agent coordination efficiency
  • 📚 Documentation: User guides and API documentation
  • 🧪 Testing: Unit tests and integration testing
  • 🎨 UI/UX: Frontend interface improvements
  • 🤖 Algorithm Development: Advanced swarm intelligence behaviors

🛠️ Development Workflow

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes and test thoroughly
  4. Submit a pull request with detailed description

🆘 Report Issues

Found a bug or have a feature request? Please create an issue with:

  • Detailed description of the problem
  • Steps to reproduce
  • System environment (Ubuntu version, ROS2 distribution, etc.)
  • Expected vs actual behavior

📋 System Architecture

🏗️ Architecture Overview

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│  FRONTEND       │    │   DIAMANTS_API  │    │   BACKEND       │
│  (Three.js)     │◄──►│   (FastAPI)     │◄──►│   (ROS2)        │
│  Mission UI     │    │   WebSocket     │    │   Gazebo        │
│  3D Visualization│    │   Bridge        │    │   Multi-Drones  │
└─────────────────┘    └─────────────────┘    └─────────────────┘

🧩 Core Components

  • DIAMANTS_BACKEND: ROS2 Jazzy ecosystem with Gazebo Garden/Harmonic for physics simulation
  • DIAMANTS_API: FastAPI service providing WebSocket bridge between frontend and ROS2
  • DIAMANTS_FRONTEND: Modern Vite + Three.js application for real-time 3D visualization

🛠️ Technical Stack

Backend Technologies

  • ROS2 Jazzy: Robot Operating System for distributed computing
  • Gazebo Garden/Harmonic: High-fidelity physics simulation
  • Crazyswarm2: Crazyflie drone swarm framework
  • SLAM Toolbox: Simultaneous Localization and Mapping
  • Python 3.12: Core backend logic

Frontend Technologies

  • Vite: Modern build tool and dev server
  • Three.js: 3D graphics library for WebGL
  • WebSockets: Real-time communication
  • ES2020: Modern JavaScript features

Integration

  • TMUX: Multi-window session orchestration
  • FastAPI: High-performance async API framework
  • WebSocket Bridge: Real-time ROS2 ↔ Web communication

Demonstration Assets

  • Video Library: 11 professionally named demonstration videos (~765MB)
  • Interactive Samples: 2 HTML files with complete functionality showcases
  • Documentation: Comprehensive guides for all demonstration materials

📚 Documentation

🌐 Complete Wiki Documentation

📖 DIAMANTS Wiki - Comprehensive documentation in English and French

📋 Technical Reference

🎬 Demonstration Documentation

🔬 Research & Publications

DIAMANTS is built on solid scientific foundations in swarm intelligence and distributed systems:

  • Emergent Behaviors: Study of collective intelligence from simple agent interactions
  • Stigmergy Algorithms: Bio-inspired coordination through environmental modifications
  • Consensus Mechanisms: Distributed agreement protocols for multi-agent systems
  • Sim-to-Real Transfer: Seamless transition from simulation to physical deployment

🎯 Use Cases

🚁 Drone Swarm Applications

  • Search and rescue operations
  • Environmental monitoring
  • Agricultural surveying
  • Infrastructure inspection

🤖 Multi-Robot Coordination

  • Warehouse automation
  • Collaborative manufacturing
  • Distributed sensing networks
  • Autonomous vehicle coordination

🧠 Research Platform

  • Swarm intelligence algorithms
  • Distributed AI systems
  • Emergent behavior studies
  • Human-swarm interaction

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • ROS2 Community: For the robust robotics middleware
  • Gazebo Team: For the high-fidelity simulation environment
  • Bitcraze: For the excellent Crazyflie platform and Crazyswarm2
  • Three.js Community: For the powerful 3D web graphics library
  • Open Source Contributors: For making this collaborative platform possible

📞 Contact & Support


🌟 Star this repository if you find it useful! Contributions are welcome and encouraged.

🤖🤝 Human-Machine Teaming Development

This project has been developed through full Human-machine teaming collaboration. The entire codebase represents a unique partnership between human creativity and artificial intelligence, demonstrating how collaborative development can accelerate innovation in complex autonomous systems.

This collaborative approach has enabled:

  • Rapid prototyping of distributed intelligence algorithms
  • Comprehensive testing across multiple simulation environments
  • Robust documentation and code architecture
  • Innovative problem-solving combining human insight with AI capabilities
  • Accelerated development cycles for mission-critical applications

"The best way to predict the future is to invent it, and the best way to invent the future of robotics is to build it collaboratively."

About

DIAMANTS is an open-source platform for distributed intelligence and swarm robotics. It unites ROS2, Python/Mesa, WebGL, and Kubernetes into a scalable stack that enables real-time orchestration of autonomous systems, from collaborative simulation to large-scale drone operations in the field.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published