{"id":42629087,"url":"https://github.com/alireza787b/mavsdk_drone_show","last_synced_at":"2026-05-04T01:08:49.951Z","repository":{"id":164390593,"uuid":"639822760","full_name":"alireza787b/mavsdk_drone_show","owner":"alireza787b","description":"All in one Drone Show and Smart Swarm Solutin for PX4","archived":false,"fork":false,"pushed_at":"2026-01-24T02:19:49.000Z","size":461900,"stargazers_count":257,"open_issues_count":3,"forks_count":65,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-01-24T12:58:04.740Z","etag":null,"topics":["drone","mavlinkk","mavsdk","px4","swarm","swarm-robotics"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alireza787b.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-05-12T09:58:22.000Z","updated_at":"2026-01-21T18:51:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"07b4e3ec-878a-49a5-9ea4-c075036f68cf","html_url":"https://github.com/alireza787b/mavsdk_drone_show","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/alireza787b/mavsdk_drone_show","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alireza787b%2Fmavsdk_drone_show","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alireza787b%2Fmavsdk_drone_show/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alireza787b%2Fmavsdk_drone_show/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alireza787b%2Fmavsdk_drone_show/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alireza787b","download_url":"https://codeload.github.com/alireza787b/mavsdk_drone_show/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alireza787b%2Fmavsdk_drone_show/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28863293,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T22:56:21.783Z","status":"online","status_checked_at":"2026-01-29T02:00:06.714Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["drone","mavlinkk","mavsdk","px4","swarm","swarm-robotics"],"created_at":"2026-01-29T05:11:53.175Z","updated_at":"2026-05-04T01:08:49.938Z","avatar_url":"https://github.com/alireza787b.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MAVSDK Drone Show (MDS)\n\n**All-in-One PX4 Framework for Drone Shows, Smart Swarms, and SAR**\n\n[![Version](https://img.shields.io/badge/version-5.0-blue.svg)](CHANGELOG.md)\n[![License](https://img.shields.io/badge/license-PolyForm%20Dual-blue.svg)](LICENSE)\n[![Python](https://img.shields.io/badge/python-3.11%20%7C%203.12%20%7C%203.13-blue.svg)](docs/guides/python-compatibility.md)\n\nMDS combines the drone-side runtime, GCS/backend services, and React operator dashboard into one PX4-oriented stack. It is built to stay simple enough for a quick SITL demo while remaining structured enough for serious multi-drone validation, operations, and custom deployments.\n\n## What MDS Covers\n\n- **Offline drone shows** with SkyBrush-imported trajectories and synchronized execution\n- **Smart swarm missions** with live leader-follower coordination and runtime control\n- **QuickScout SAR / recon** with multi-drone coverage planning and PX4 Mission Mode execution\n- **Unified operations tooling** with SITL, GCS services, trajectory planning, and live/historical logs\n\n## Start Here\n\n| If you want to... | Start here |\n|-------------------|------------|\n| run the first demo quickly | [SITL Comprehensive Guide](docs/guides/sitl-comprehensive.md) |\n| import and launch a drone show | [Drone Show Guide](docs/features/drone-show.md) |\n| run Smart Swarm from the dashboard | [Smart Swarm Guide](docs/features/smart-swarm.md) |\n| author, process, and launch a Swarm Trajectory mission | [Swarm Trajectory Guide](docs/features/swarm-trajectory.md) |\n| point MDS at a customer/private repo | [Custom Repo Workflow](docs/guides/custom-repo-workflow.md) |\n| install a GCS on a VPS or Ubuntu box | [GCS Setup Guide](docs/guides/gcs-setup.md) |\n| deploy real drone hardware | [MDS Init Setup Guide](docs/guides/mds-init-setup.md) |\n| build or ship a validated custom SITL image | [SITL Custom Release Workflow](docs/guides/sitl-custom-release-workflow.md) |\n| browse everything else | [Documentation Index](docs/README.md) |\n\n## Quick Demo\n\nFor a normal first run, use the official SITL archive and the full guide:\n\n- **[SITL Comprehensive Guide](docs/guides/sitl-comprehensive.md)** for the current MEGA download, archive validation, extraction, GCS bootstrap, and container launch flow\n\nOnce the official image is loaded and the GCS bootstrap is complete, the minimal 2-drone demo path is:\n\n```bash\ncd ~/mavsdk_drone_show\nbash multiple_sitl/create_dockers.sh 2\nbash app/linux_dashboard_start.sh --sitl\n```\n\nThen open `http://\u003chost\u003e:3030`.\n\nIf you prefer a memorable command wrapper, the root `Makefile` exposes the same\ncanonical scripts without replacing them:\n\n```bash\nmake help\nmake gcs-sitl\nmake gcs-real START_FLAGS=\"--prod --skip-deps\"\nmake fleet-sync\n```\n\nSee the [Operator Makefile Guide](docs/guides/operator-makefile.md) for the\nfull command map and the rule that `make` targets must remain thin wrappers.\n\n`bash app/linux_dashboard_start.sh --sitl` now keeps the FastAPI backend single-process by default, even in development mode, so telemetry, heartbeats, command tracking, and other in-memory operational state stay coherent during live SITL runs. Only enable backend auto-reload for backend code editing with `MDS_GCS_BACKEND_RELOAD=true`.\n\nFor the stock official SITL package, Mission Config starts from the tracked Azadi Stadium demo origin in `data/origin.sitl.default.json`. If you later set a different origin in the dashboard or via the API, MDS writes a local runtime override to `data/origin.json` on that server. Remove that local file when you want the stock Azadi default to apply again.\n\nFor the default official HTTPS demo path, the GCS now treats git write-back as disabled by default (`MDS_GIT_AUTO_PUSH=false`). That keeps imports/config saves clean on read-only evaluation setups; move to the fork/SSH workflow when you want the GCS to commit and push changes.\n\nIf you skipped the bootstrap installer and do not have the repo yet:\n\n```bash\ngit clone -b main https://github.com/alireza787b/mavsdk_drone_show.git\ncd mavsdk_drone_show\n```\n\nFor a first dashboard-driven Smart Swarm run after SITL launch:\n\n1. open `Overview` and confirm the target drones show `READY` with live telemetry\n2. open `Swarm Design` and review the saved follow chain / cluster layout\n3. use `Formation Analysis` to choose the cluster you want to operate on\n4. use `Smart Swarm Runtime` to verify the `Formation Preview` and live readiness snapshot\n5. start `Selected Drone` or `Selected Cluster`, then use `Stop Swarm (Hold)`, `Land Swarm`, or `RTL Swarm` for explicit swarm-level control\n\nFor the validated 5-drone Smart Swarm acceptance flow after a SITL launch, use:\n\n```bash\npython3 tools/validate_smart_swarm_runtime.py\n```\n\nIf you need your own fork, custom image, or a pinned redistribution workflow, do not improvise from the demo path. Use:\n\n- **[Custom Repo Workflow](docs/guides/custom-repo-workflow.md)**\n- **[Advanced SITL Guide](docs/guides/advanced-sitl.md)**\n- **[SITL Custom Release Workflow](docs/guides/sitl-custom-release-workflow.md)**\n\nThese advanced and real-hardware paths require stronger PX4/Linux/networking knowledge plus licensing, regulatory, and operational review. If you need private assistance or deployment consulting, contact [Alireza on LinkedIn](https://www.linkedin.com/in/alireza787b/) or [p30planets@gmail.com](mailto:p30planets@gmail.com).\n\n## More Guides\n\n- **[Advanced SITL Guide](docs/guides/advanced-sitl.md)** for custom runtime env vars, mutable boot-sync behavior, and debug-oriented SITL tuning\n- **[Logging System Guide](docs/guides/logging-system.md)** for live and historical GCS / drone logs\n- **[QuickScout Guide](docs/quickscout.md)** for SAR / recon workflows\n- **[Documentation Index](docs/README.md)** for the full map, APIs, archived notes, and deeper references\n\n## Product Highlights\n\n- **Single operator surface**: React dashboard for monitoring, control, QuickScout, trajectory planning, and log review\n- **Modern SITL workflow**: prebuilt PX4 Gazebo SITL image, fast container startup, and reproducible custom-image tooling\n- **Operational visibility**: unified logging across GCS, drones, and frontend error reporting with exportable sessions\n- **Drone Show pipeline**: staged SkyBrush ZIP import, processed trajectory plots, readiness gating, and synchronized launch control\n- **Scalable architecture**: designed for anything from a small demo to large validated multi-container runs\n\n## Dashboard Scope\n\nThe dashboard covers:\n\n- live fleet monitoring and control\n- mission upload and execution\n- 3D trajectory planning\n- QuickScout mission planning and monitoring\n- live and historical Log Viewer workflows\n\nMap-heavy features such as trajectory planning and QuickScout require a Mapbox token. See the relevant guides in [Documentation Index](docs/README.md).\n\n## Videos\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"https://www.youtube.com/watch?v=mta2ARQKWRQ\"\u003e\n        \u003cimg src=\"https://img.youtube.com/vi/mta2ARQKWRQ/mqdefault.jpg\" alt=\"MDS 3 Complete Feature Showcase\" width=\"220\"\u003e\n      \u003c/a\u003e\n      \u003cbr\u003e\n      \u003ca href=\"https://www.youtube.com/watch?v=mta2ARQKWRQ\"\u003eFeature Showcase\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"https://www.youtube.com/watch?v=VsNs3kFKEvU\"\u003e\n        \u003cimg src=\"https://img.youtube.com/vi/VsNs3kFKEvU/mqdefault.jpg\" alt=\"100-Drone SITL Test\" width=\"220\"\u003e\n      \u003c/a\u003e\n      \u003cbr\u003e\n      \u003ca href=\"https://www.youtube.com/watch?v=VsNs3kFKEvU\"\u003e100-Drone SITL\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"https://youtu.be/qRXE3LTd40c\"\u003e\n        \u003cimg src=\"https://img.youtube.com/vi/qRXE3LTd40c/mqdefault.jpg\" alt=\"Smart Swarm Demo\" width=\"220\"\u003e\n      \u003c/a\u003e\n      \u003cbr\u003e\n      \u003ca href=\"https://youtu.be/qRXE3LTd40c\"\u003eSmart Swarm Demo\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n- **Project history and walkthrough playlist:** [YouTube playlist](https://www.youtube.com/watch?v=dg5jyhV15S8\u0026list=PLVZvZdBQdm_7ViwRhUFrmLFpFkP3VSakk\u0026pp=sAgC)\n- **MDS 5 walkthrough:** coming soon, to be linked here when published\n\n## Documentation\n\n- **[Documentation Index](docs/README.md)**: full guide map\n- **[CHANGELOG.md](CHANGELOG.md)**: notable changes\n- **[VERSIONING.md](docs/VERSIONING.md)**: release/version workflow\n- **[Python Compatibility](docs/guides/python-compatibility.md)**: supported Python versions\n\n## Licensing\n\nMDS uses dual licensing:\n\n- **PolyForm Noncommercial** for education, research, and other non-commercial use\n- **PolyForm Small Business** for qualifying small commercial operators\n- **Commercial license** for larger commercial deployments\n\nSee [LICENSE](LICENSE) and [LICENSE-COMMERCIAL.md](LICENSE-COMMERCIAL.md).\n\n## Contact And Contributions\n\n- **Commercial / deployment inquiries:** [p30planets@gmail.com](mailto:p30planets@gmail.com)\n- **GitHub issues:** [bug reports and feature requests](https://github.com/alireza787b/mavsdk_drone_show/issues)\n- **Contributing guide:** [CONTRIBUTING.md](CONTRIBUTING.md)\n\nContributors should start feature branches from `main`. Use short-lived feature or client branches for work-in-progress, then merge back to `main` only after SITL/hardware validation.\n\n## Safety Note\n\nReal-drone deployment requires appropriate flight-test discipline, regulatory compliance, and failsafe validation. Treat SITL success as a prerequisite, not as proof of real-world readiness.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falireza787b%2Fmavsdk_drone_show","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falireza787b%2Fmavsdk_drone_show","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falireza787b%2Fmavsdk_drone_show/lists"}