Apache 2.0 · pre-release · CNCF Sandbox candidate

The fleet orchestration layer has no neutral standard yet.

Swarmada is a vendor-neutral, Kubernetes-native control plane for coordinating fleets of heterogeneous robots — the way Kubernetes coordinates containers. Declare the fleet's desired state as custom resources; Swarmada reconciles robots from any manufacturer toward it, under one standardized API.

# three commands, one control plane
kind create cluster --name swarmada-dev
make install   # generate and apply the CRDs
make run       # run the control plane against your kubecontext

Where Swarmada sits in the stack

The robotics software stack already has neutral, open reference points at most layers. One tier does not.

Application programming Intrinsic Flowstate
Fleet orchestration no vendor-neutral, cloud-native standard — Swarmada
Physics simulation Newton (Linux Foundation)
Perception & navigation ROS 2
Hardware & model runtime NVIDIA Isaac / GR00T

A facility running automation today typically operates robots from three to five manufacturers at once, each with its own dashboard, fleet API, and update toolchain — with no single source of truth for fleet state. Open RMF is the closest existing project to this layer, but it is now controlled by a single vendor. Swarmada is built as an independent, Apache-2.0 project aimed at CNCF Sandbox, not a vendor's roadmap.

How it works

Operators declare intent as Kubernetes custom resources; controllers reconcile the fleet toward it. A per-manufacturer Fleet Adapter translates one standardized gRPC contract into each vendor's native API, so adding a robot family is additive rather than a change to the core.

KubernetesSwarmada
NodeRobot / RobotClass
Pod / DeploymentFleetTask
NamespaceFleetZone
Rolling updateFirmwareRollout / ModelRollout
kubectlswarmctl

Declare the fleet, not the choreography

A zone, a robot, and a task — the same three primitives that run in the project's simulation scenarios.

apiVersion: swarmada.io/v1
kind: FleetZone
metadata:
  name: warehouse-a
spec:
  description: "Receiving and staging area — east wing"
  waypoints:
    - name: charging-bay
      x: 1.1
      yPos: 1.1
---
apiVersion: swarmada.io/v1
kind: Robot
metadata:
  name: sim-robot-001
  namespace: warehouse-a
spec:
  manufacturer: Simulated
  model: SimBot-v1
  fleetAdapterEndpoint: "sim-robot-001.warehouse-a.svc:9090"
  zone: warehouse-a
---
apiVersion: swarmada.io/v1
kind: FleetTask
metadata:
  name: deliver-pallet-001
  namespace: warehouse-a
spec:
  type: Navigate
  zone: warehouse-a
  destination: staging-shelf-a
  priority: 70
  requiredCapabilities:
    - navigation

kubectl apply -f creates the zone, admits the robots, and the task controller assigns work to whichever robot meets the required capabilities. The full sample runs end-to-end in config/samples.

Status

Pre-release. Public claims track the code, not the roadmap.

API

All thirteen CRDs are defined and generate under swarmada.io/v1.

Controllers

Reconciliation is implemented for Robot and FleetTask; the remaining CRDs are specified with controllers in progress.

Adapters

A ROS 2 Fleet Adapter is validated in simulation. The Fleet Adapter conformance suite is follow-on work.

The architecture is documented as designed; this list is the authoritative statement of what runs today. See the full Status section in the repo README.

Get involved

Swarmada is developed in the open under Apache 2.0. Contributions, Fleet Adapter implementations, and design-partner conversations are welcome.