Skip to content
v0.2.0 · Draft GitHub ↗ Apply for review →
↳ The explainer · 4 min read

One vocabulary humans, LLMs, and robots can agree on.

URML is a small, public spec for describing what a robot should do, independent of which motors, joints, or frames carry it out. It's a draft today (v0.2.0, phase 1), and the working group is open. Every program is statically verified against the robot's declared capabilities, the active safety envelope, and a compliance policy before a single actuator moves.

Read the spec → See the demo Why URML exists →
Who URML is for

The same spec serves three audiences, each for a different reason.

DEVELOPERS

Write once, target any substrate.

Stop translating intent into ROS topics, MAVLink commands, and vendor APIs. URML is one language above all of them.

  • 24 intent primitives
  • 15 reference runtimes (ROS 2, PX4, OPC UA, cobots, sim, MCU…)
  • LLM bridge included
Quickstart →
MANUFACTURERS

A self-served path to federal readiness.

Run the conformance suite, publish a manifest, get listed. Free, opt-in, de-listable any time.

  • 175 conformance fixtures
  • Public directory
  • Provenance schema
Compliance path →
GOVERNMENTS & REGULATORS

A machine-checkable lens on policy.

The validator's policy pass is a regulation-neutral mechanism with a US-federal default. Add your jurisdiction's file.

  • NDAA · FCC · EO 14307
  • Policy DSL (YAML)
  • Override per deployment
Read the policy spec →
The architecture

Five layers. URML defines the top four.

L4
Natural language
An LLM turns English into URML. URML stays the contract.
URML
L3
Behavior composition
sequence · branch · parallel · retry · on_error · on · barrier
URML
L2
Intent primitives
24 verbs · move_to · grasp · detect · scan · pick_from · place_at · …
URML
L1
Hardware abstraction
capability manifest · provenance · safety envelope
URML
L0
Substrate
ROS 2 · PX4 · OPC UA · KUKA · ABB · IEC 61131-3
NOT URML

The boundary matters.

URML is intentionally not a robot operating system. It sits above whatever you already run (ROS 2, PX4, OPC UA, a vendor SDK) and gives those substrates one consistent vocabulary for intent.

That means adopting URML is additive, not migratory. Your existing stack stays. URML adds a layer of portable intent above it.

What URML is not
  • Not a robot operating system
  • Not a low-level motion controller
  • Not a certification mark yet (that's Phase 4)
  • Not a replacement for ROS, PX4, or OPC UA
The point of the validator

An LLM writes an unsafe program. URML refuses it.

Same English prompt, same robot, same LLM. The first attempt is statically rejected before takeoff. The revision loop produces an accepted version. No actuator moves in between.

PROMPT  ·  "Fly the drone to the rooftop and hold position for 5 minutes."
ATTEMPT 1 · LLM OUTPUT
✕ REJECTED · PASS 3 FAILED
# attempt-1.urml.yaml sequence: - take_off: { altitude: 120 } - move_to: { lat: 37.79, lon: -122.40, alt: 120 } - hover: { duration: 300 } - return_to_home: {}
VALIDATOR · PASS 3 · SAFETY ENVELOPE

Target altitude 120m exceeds the active envelope's ceiling of 90m over zoned-residential geofence SF-RES-04. No actuator engaged.

ATTEMPT 2 · LLM REVISION
✓ ACCEPTED · ALL 5 PASSES
# attempt-2.urml.yaml sequence: - take_off: { altitude: 85 } - move_to: { lat: 37.79, lon: -122.40, alt: 85 } - hover: { duration: 300 } - return_to_home: {}
VALIDATOR · ALL PASSES
args typed caps declared envelope OK (85m < 90m) bindings resolve policy clear executor engaged
The LLM revision loop is part of the spec, not an afterthought. Policy errors short-circuit back to the model with a structured reason, and the prompt contract is what the model is allowed to assume.
The five validation passes

Each pass is small, independent, and fails fast.

PASS 1

Argument typing

Are the verb's arguments well-typed against the spec?

PASS 2

Capability check

Does the manifest declare the capability the program uses?

PASS 3

Safety envelope

Geofence, altitude bands, people-occupancy, exclusion zones.

PASS 4

Variable bindings

Are referenced bindings produced, with the right types?

PASS 5

Compliance policy

Does the manifest pass the active jurisdiction's policy?

WHERE TO GO NEXT

Read the spec

v0.2.0 normative reference. Mirrors the GitHub source of truth.

Read

Run the demo

Three commands, hermetic, no robot needed. URML in your terminal.

Read

Get compliant

If you make robots, the 5-step path to a public listing.

Read