AUTONOMY & SIMULATION

UMBRA

Software for writing drone-swarm autonomy and flying it against real flight simulation — one Python function from first line to full flight, replayable to the byte.

FEATURE-COMPLETE

UMBRA is a platform for authoring swarm-autonomy algorithms and testing them honestly. An operator writes a single decision function; the platform sandboxes it, flies it against deterministic simulation, and records every consequential moment durably enough to replay the run exactly.

The contract

The whole authoring surface is one function: decide_actions(state) returns a list of drone commands. The platform screens the code (AST screening, namespace restriction, subprocess isolation) and executes it against a deterministic 10 Hz simulation. The same submission with the same seed produces a byte-identical run.

The sandbox is honest. Fault reports map line-for-line onto the author’s editor. Every refused command surfaces in the feed with a machine-readable reason — all refusal reasons are a served, test-pinned documentation surface. Runs are evaluated across five dimensions: speed, accuracy, safety, efficiency, adaptability. The in-platform reference documentation is generated from the live contract, so it can never drift from what the validator enforces.

The flight model

The command vocabulary is MAVLink-flavoured so skills transfer to real autopilots — every action is served with its conceptual MAVLink counterpart. Flight patterns are engine-side autopilot programs: orbit a point with the nose pinned, upload and fly validated waypoint routes untended, station-keep on a teammate at a world-frame offset. The lost-link failsafe outranks any pattern.

The physics is deliberately unforgiving. Over-limit speed commands clamp like a real autopilot. Battery draw follows a U-shaped multirotor power curve with best endurance near 56% of maximum speed. The camera is a real 110° forward cone. Perception arrives as noisy, possibly deceptive sensor contacts — never ground truth. Inside GPS denial the reported position is the spoofed estimate, and a trust flag says so. Link state is a real mesh-relay constraint. Electronic-warfare scenarios cover jamming, spoofing, suppression and GPS meaconing.

Three substrates

Every run executes by default on a deterministic, GPU-free kinematic world. The same agent code can be switched, per run, onto AirSim in Unreal Engine — spoken to over raw msgpack-RPC — or onto PX4 software-in-the-loop via MAVLink, with zero substrate-specific code.

Evaluation always runs on the deterministic engine. The visual worlds are renderers of the durable event log, never the authority. Disputes are settled by re-running the run and comparing signatures.

The record

The platform is event-sourced end to end: every command, movement, violation and score change is persisted before it is applied or broadcast, which makes replay exact and every result auditable.

It speaks the real world’s protocols — Cursor-on-Target to the TAK ecosystem and SAPIENT (BSI Flex 335 v2) — and deploys to the cloud from a single Terraform stack.

The state of work

Feature-complete and running in private cloud staging, with the current posture hardening rather than feature growth. The forward intent is standalone software for writing autonomy algorithms and testing air simulation for drones. Availability: [TBC].

This page derives from the UMBRA engineering documentation (2026).

Bring us an irreversible decision, a system that has to work, or a capability that does not yet exist.

hello@greylinesystems.uk LINKEDIN

CONTACT