BeeCluster is a drone orchestration platform that manages a fleet of drones and provides virtual drone service to the application developers.

The goal of BeeCluster is to simplify the development of drone-based applications. BeeCluster achieves this goal through three key features, dynamic tasking, flexible virtual drone abstractions, and predictive optimization.

Dynamic Tasking. BeeCluster embraces dynamic task graph (DTG) as its core programming model, allowing your application to react to the environment through creating new tasks or cancelling existing tasks dynamically.

Flexible Virtual Drone Abstractions. BeeCluster provides a set of versatile abstractions mapping your virtual drones to physical drones. You can even define a virtual drone with infinite flying time with BeeCluster API!

Predictive Optimization. BeeCluster forecasts your application's future behavior and optimizes the execution of your application in a transparent way, making writing optimized applications easier.

The first two features of BeeCluster make it possible to describe almost any application logic with BeeCluster API. This representation ability makes BeeCluster API (and its internal DTG representation) a powerful interface that could be used as a standard API for platform-independent and reusable drone applications.

The third feature, predictive optimization, is built on top of BeeCluster's dynamic task graph intermediate representation. BeeCluster explores the direction of conducting application-independent optimization inside the drone orechstration platform, which holds the promise to shift the complexity of application optimization job from application developers to the backend system.