Performance & cost
This session
- Delivery time · median
- —
- Live model compute
- —
- Live input tokens
- 0
- Est. cost · USD
- $0.00
Bypass examples to measure live inference. Uses your quota.
Measurement details · 0 successful requests
- Successful requests
- 0
Run an example for free to see its measurements.
Model compute is the average per measured request. Delivery time is the median browser time for successful requests, including queue, network, and retries. Cached delivery speed is not inference speed. Model compute can exceed browser time when one request processes many inputs.
Tokens come from response headers. Inference costs use $0.04 per million input tokens, before plan credits. The estimate includes live and recorded tokens at the same rate; cached examples are not charged again. Missing usage is unavailable or a partial total (≥). Demo resets keep these totals; reload to start a new session.
Hit Run and follow the radar.
Build with the SDKTypeScript · Python · dm1
One request from this demo. Copy it into your app.
Uses your MS_API_KEY and quota. Keep the key on your server.
npm install @cloudraker/milliseconds
export MS_API_KEY="your-api-key"import { DecisionMachine } from "@cloudraker/milliseconds";
// Run on your server; reads MS_API_KEY from the environment.
const dm = new DecisionMachine();
const { result, usage } = await dm.classify(
[
"Separation lost in 50 seconds. Traffic crossing from the left, 1600 ft below and descending, dead ahead, 7.8 NM, closest approach 2.6 NM in 72 s; it must give way. Traffic crossing from the left, 300 ft below and descending, ahead-left, 11.1 NM, closest approach 0.5 NM in 109 s; it must give way. This arrival is at 5900 ft descending to 4000, cleared no lower than 3000 ft, heading 209 at 212 kt.",
"Separation lost in 50 seconds. Traffic crossing from the right, 1600 ft above and descending, ahead-right, 7.8 NM, closest approach 2.6 NM in 72 s; it has priority and is flying its own route with no vector. This arrival is at 4300 ft descending to 4000, cleared no lower than 1500 ft, heading 331 at 210 kt.",
"Separation lost in 75 seconds. Traffic crossing from the right, 300 ft above and descending, ahead-right, 11.1 NM, closest approach 0.5 NM in 109 s; it has priority and is flying its own route with no vector. This arrival is at 5600 ft descending to 4000, cleared no lower than 3000 ft, heading 331 at 210 kt.",
"Separation lost in 44 seconds. Traffic crossing from the right, co-altitude and descending, ahead-right, 7.2 NM, closest approach 2.1 NM in 75 s; it must give way. This arrival is at 7700 ft descending to 7000, cleared no lower than 3000 ft, heading 021 at 250 kt.",
"Separation lost in 44 seconds. Traffic crossing from the left, co-altitude and descending, ahead-left, 7.2 NM, closest approach 2.1 NM in 75 s; it has priority and is flying its own route with no vector. This arrival is at 7600 ft descending to 7000, cleared no lower than 3000 ft, heading 298 at 250 kt."
],
{
"none": "The traffic has priority and is already turning, climbing or descending away.",
"vector": "The traffic crosses from the left or from the right, or it is head-on.",
"level": "The traffic is co-altitude and level with this aircraft, or just above or below it.",
"spacing": "The traffic is same direction, intruder ahead, in trail on the same track.",
"resume": "This aircraft is off route on an old vector and needs its own navigation."
}
).withUsage();
console.log(result);
console.log({ inputTokens: usage.inputTokens, modelMs: usage.inferenceMs });import { DecisionMachine } from "@cloudraker/milliseconds";
// Run on your server; reads MS_API_KEY from the environment.
const dm = new DecisionMachine();
const { result, usage } = await dm.rate(
[
"Separation lost in 50 seconds. Traffic crossing from the left, 1600 ft below and descending, dead ahead, 7.8 NM, closest approach 2.6 NM in 72 s; it must give way. Traffic crossing from the left, 300 ft below and descending, ahead-left, 11.1 NM, closest approach 0.5 NM in 109 s; it must give way. This arrival is at 5900 ft descending to 4000, cleared no lower than 3000 ft, heading 209 at 212 kt.",
"Separation lost in 50 seconds. Traffic crossing from the right, 1600 ft above and descending, ahead-right, 7.8 NM, closest approach 2.6 NM in 72 s; it has priority and is flying its own route with no vector. This arrival is at 4300 ft descending to 4000, cleared no lower than 1500 ft, heading 331 at 210 kt.",
"Separation lost in 75 seconds. Traffic crossing from the right, 300 ft above and descending, ahead-right, 11.1 NM, closest approach 0.5 NM in 109 s; it has priority and is flying its own route with no vector. This arrival is at 5600 ft descending to 4000, cleared no lower than 3000 ft, heading 331 at 210 kt.",
"Separation lost in 44 seconds. Traffic crossing from the right, co-altitude and descending, ahead-right, 7.2 NM, closest approach 2.1 NM in 75 s; it must give way. This arrival is at 7700 ft descending to 7000, cleared no lower than 3000 ft, heading 021 at 250 kt.",
"Separation lost in 44 seconds. Traffic crossing from the left, co-altitude and descending, ahead-left, 7.2 NM, closest approach 2.1 NM in 75 s; it has priority and is flying its own route with no vector. This arrival is at 7600 ft descending to 7000, cleared no lower than 3000 ft, heading 298 at 250 kt."
],
[
"Separation holds for the next 120 seconds, or nothing is converging at all",
"Separation is lost in 75 to 120 seconds, so it is worth watching but not acting",
"Separation is lost in 30 to 75 seconds, so a clearance has to go out now",
"Separation is lost in under 30 seconds, and the aircraft are already too close"
]
).withUsage();
console.log(result);
console.log({ inputTokens: usage.inputTokens, modelMs: usage.inferenceMs });import { DecisionMachine } from "@cloudraker/milliseconds";
// Run on your server; reads MS_API_KEY from the environment.
const dm = new DecisionMachine();
const { result, usage } = await dm.yesNo(
[
"Separation lost in 50 seconds. Traffic crossing from the left, 1600 ft below and descending, dead ahead, 7.8 NM, closest approach 2.6 NM in 72 s; it must give way. Traffic crossing from the left, 300 ft below and descending, ahead-left, 11.1 NM, closest approach 0.5 NM in 109 s; it must give way. This arrival is at 5900 ft descending to 4000, cleared no lower than 3000 ft, heading 209 at 212 kt.",
"Separation lost in 50 seconds. Traffic crossing from the right, 1600 ft above and descending, ahead-right, 7.8 NM, closest approach 2.6 NM in 72 s; it has priority and is flying its own route with no vector. This arrival is at 4300 ft descending to 4000, cleared no lower than 1500 ft, heading 331 at 210 kt.",
"Separation lost in 75 seconds. Traffic crossing from the right, 300 ft above and descending, ahead-right, 11.1 NM, closest approach 0.5 NM in 109 s; it has priority and is flying its own route with no vector. This arrival is at 5600 ft descending to 4000, cleared no lower than 3000 ft, heading 331 at 210 kt.",
"Separation lost in 44 seconds. Traffic crossing from the right, co-altitude and descending, ahead-right, 7.2 NM, closest approach 2.1 NM in 75 s; it must give way. This arrival is at 7700 ft descending to 7000, cleared no lower than 3000 ft, heading 021 at 250 kt.",
"Separation lost in 44 seconds. Traffic crossing from the left, co-altitude and descending, ahead-left, 7.2 NM, closest approach 2.1 NM in 75 s; it has priority and is flying its own route with no vector. This arrival is at 7600 ft descending to 7000, cleared no lower than 3000 ft, heading 298 at 250 kt."
],
"This aircraft is clear of all traffic and ready for the next controller.",
{
"when_true": "The text says nothing is converging with this aircraft for 120 seconds.",
"when_false": "The text gives the seconds at which separation with traffic is lost."
}
).withUsage();
console.log(result);
console.log({ inputTokens: usage.inputTokens, modelMs: usage.inferenceMs });pip install cloudraker-milliseconds
export MS_API_KEY="your-api-key"from milliseconds import DecisionMachine
# Reads MS_API_KEY from the environment.
dm = DecisionMachine()
result = dm.classify(
[
"Separation lost in 50 seconds. Traffic crossing from the left, 1600 ft below and descending, dead ahead, 7.8 NM, closest approach 2.6 NM in 72 s; it must give way. Traffic crossing from the left, 300 ft below and descending, ahead-left, 11.1 NM, closest approach 0.5 NM in 109 s; it must give way. This arrival is at 5900 ft descending to 4000, cleared no lower than 3000 ft, heading 209 at 212 kt.",
"Separation lost in 50 seconds. Traffic crossing from the right, 1600 ft above and descending, ahead-right, 7.8 NM, closest approach 2.6 NM in 72 s; it has priority and is flying its own route with no vector. This arrival is at 4300 ft descending to 4000, cleared no lower than 1500 ft, heading 331 at 210 kt.",
"Separation lost in 75 seconds. Traffic crossing from the right, 300 ft above and descending, ahead-right, 11.1 NM, closest approach 0.5 NM in 109 s; it has priority and is flying its own route with no vector. This arrival is at 5600 ft descending to 4000, cleared no lower than 3000 ft, heading 331 at 210 kt.",
"Separation lost in 44 seconds. Traffic crossing from the right, co-altitude and descending, ahead-right, 7.2 NM, closest approach 2.1 NM in 75 s; it must give way. This arrival is at 7700 ft descending to 7000, cleared no lower than 3000 ft, heading 021 at 250 kt.",
"Separation lost in 44 seconds. Traffic crossing from the left, co-altitude and descending, ahead-left, 7.2 NM, closest approach 2.1 NM in 75 s; it has priority and is flying its own route with no vector. This arrival is at 7600 ft descending to 7000, cleared no lower than 3000 ft, heading 298 at 250 kt."
],
{
"none": "The traffic has priority and is already turning, climbing or descending away.",
"vector": "The traffic crosses from the left or from the right, or it is head-on.",
"level": "The traffic is co-altitude and level with this aircraft, or just above or below it.",
"spacing": "The traffic is same direction, intruder ahead, in trail on the same track.",
"resume": "This aircraft is off route on an old vector and needs its own navigation."
}
)
print(result)from milliseconds import DecisionMachine
# Reads MS_API_KEY from the environment.
dm = DecisionMachine()
result = dm.rate(
[
"Separation lost in 50 seconds. Traffic crossing from the left, 1600 ft below and descending, dead ahead, 7.8 NM, closest approach 2.6 NM in 72 s; it must give way. Traffic crossing from the left, 300 ft below and descending, ahead-left, 11.1 NM, closest approach 0.5 NM in 109 s; it must give way. This arrival is at 5900 ft descending to 4000, cleared no lower than 3000 ft, heading 209 at 212 kt.",
"Separation lost in 50 seconds. Traffic crossing from the right, 1600 ft above and descending, ahead-right, 7.8 NM, closest approach 2.6 NM in 72 s; it has priority and is flying its own route with no vector. This arrival is at 4300 ft descending to 4000, cleared no lower than 1500 ft, heading 331 at 210 kt.",
"Separation lost in 75 seconds. Traffic crossing from the right, 300 ft above and descending, ahead-right, 11.1 NM, closest approach 0.5 NM in 109 s; it has priority and is flying its own route with no vector. This arrival is at 5600 ft descending to 4000, cleared no lower than 3000 ft, heading 331 at 210 kt.",
"Separation lost in 44 seconds. Traffic crossing from the right, co-altitude and descending, ahead-right, 7.2 NM, closest approach 2.1 NM in 75 s; it must give way. This arrival is at 7700 ft descending to 7000, cleared no lower than 3000 ft, heading 021 at 250 kt.",
"Separation lost in 44 seconds. Traffic crossing from the left, co-altitude and descending, ahead-left, 7.2 NM, closest approach 2.1 NM in 75 s; it has priority and is flying its own route with no vector. This arrival is at 7600 ft descending to 7000, cleared no lower than 3000 ft, heading 298 at 250 kt."
],
[
"Separation holds for the next 120 seconds, or nothing is converging at all",
"Separation is lost in 75 to 120 seconds, so it is worth watching but not acting",
"Separation is lost in 30 to 75 seconds, so a clearance has to go out now",
"Separation is lost in under 30 seconds, and the aircraft are already too close"
]
)
print(result)from milliseconds import DecisionMachine
# Reads MS_API_KEY from the environment.
dm = DecisionMachine()
result = dm.yes_no(
[
"Separation lost in 50 seconds. Traffic crossing from the left, 1600 ft below and descending, dead ahead, 7.8 NM, closest approach 2.6 NM in 72 s; it must give way. Traffic crossing from the left, 300 ft below and descending, ahead-left, 11.1 NM, closest approach 0.5 NM in 109 s; it must give way. This arrival is at 5900 ft descending to 4000, cleared no lower than 3000 ft, heading 209 at 212 kt.",
"Separation lost in 50 seconds. Traffic crossing from the right, 1600 ft above and descending, ahead-right, 7.8 NM, closest approach 2.6 NM in 72 s; it has priority and is flying its own route with no vector. This arrival is at 4300 ft descending to 4000, cleared no lower than 1500 ft, heading 331 at 210 kt.",
"Separation lost in 75 seconds. Traffic crossing from the right, 300 ft above and descending, ahead-right, 11.1 NM, closest approach 0.5 NM in 109 s; it has priority and is flying its own route with no vector. This arrival is at 5600 ft descending to 4000, cleared no lower than 3000 ft, heading 331 at 210 kt.",
"Separation lost in 44 seconds. Traffic crossing from the right, co-altitude and descending, ahead-right, 7.2 NM, closest approach 2.1 NM in 75 s; it must give way. This arrival is at 7700 ft descending to 7000, cleared no lower than 3000 ft, heading 021 at 250 kt.",
"Separation lost in 44 seconds. Traffic crossing from the left, co-altitude and descending, ahead-left, 7.2 NM, closest approach 2.1 NM in 75 s; it has priority and is flying its own route with no vector. This arrival is at 7600 ft descending to 7000, cleared no lower than 3000 ft, heading 298 at 250 kt."
],
"This aircraft is clear of all traffic and ready for the next controller.",
when_true="The text says nothing is converging with this aircraft for 120 seconds.",
when_false="The text gives the seconds at which separation with traffic is lost."
)
print(result)npm install -g @cloudraker/milliseconds
export MS_API_KEY="your-api-key"# Reads MS_API_KEY. JSON on stdin supplies the complete request.
dm1 classify --json --usage <<'DM1_REQUEST'
{
"texts": [
"Separation lost in 50 seconds. Traffic crossing from the left, 1600 ft below and descending, dead ahead, 7.8 NM, closest approach 2.6 NM in 72 s; it must give way. Traffic crossing from the left, 300 ft below and descending, ahead-left, 11.1 NM, closest approach 0.5 NM in 109 s; it must give way. This arrival is at 5900 ft descending to 4000, cleared no lower than 3000 ft, heading 209 at 212 kt.",
"Separation lost in 50 seconds. Traffic crossing from the right, 1600 ft above and descending, ahead-right, 7.8 NM, closest approach 2.6 NM in 72 s; it has priority and is flying its own route with no vector. This arrival is at 4300 ft descending to 4000, cleared no lower than 1500 ft, heading 331 at 210 kt.",
"Separation lost in 75 seconds. Traffic crossing from the right, 300 ft above and descending, ahead-right, 11.1 NM, closest approach 0.5 NM in 109 s; it has priority and is flying its own route with no vector. This arrival is at 5600 ft descending to 4000, cleared no lower than 3000 ft, heading 331 at 210 kt.",
"Separation lost in 44 seconds. Traffic crossing from the right, co-altitude and descending, ahead-right, 7.2 NM, closest approach 2.1 NM in 75 s; it must give way. This arrival is at 7700 ft descending to 7000, cleared no lower than 3000 ft, heading 021 at 250 kt.",
"Separation lost in 44 seconds. Traffic crossing from the left, co-altitude and descending, ahead-left, 7.2 NM, closest approach 2.1 NM in 75 s; it has priority and is flying its own route with no vector. This arrival is at 7600 ft descending to 7000, cleared no lower than 3000 ft, heading 298 at 250 kt."
],
"labels": {
"none": "The traffic has priority and is already turning, climbing or descending away.",
"vector": "The traffic crosses from the left or from the right, or it is head-on.",
"level": "The traffic is co-altitude and level with this aircraft, or just above or below it.",
"spacing": "The traffic is same direction, intruder ahead, in trail on the same track.",
"resume": "This aircraft is off route on an old vector and needs its own navigation."
}
}
DM1_REQUEST# Reads MS_API_KEY. JSON on stdin supplies the complete request.
dm1 rate --json --usage <<'DM1_REQUEST'
{
"texts": [
"Separation lost in 50 seconds. Traffic crossing from the left, 1600 ft below and descending, dead ahead, 7.8 NM, closest approach 2.6 NM in 72 s; it must give way. Traffic crossing from the left, 300 ft below and descending, ahead-left, 11.1 NM, closest approach 0.5 NM in 109 s; it must give way. This arrival is at 5900 ft descending to 4000, cleared no lower than 3000 ft, heading 209 at 212 kt.",
"Separation lost in 50 seconds. Traffic crossing from the right, 1600 ft above and descending, ahead-right, 7.8 NM, closest approach 2.6 NM in 72 s; it has priority and is flying its own route with no vector. This arrival is at 4300 ft descending to 4000, cleared no lower than 1500 ft, heading 331 at 210 kt.",
"Separation lost in 75 seconds. Traffic crossing from the right, 300 ft above and descending, ahead-right, 11.1 NM, closest approach 0.5 NM in 109 s; it has priority and is flying its own route with no vector. This arrival is at 5600 ft descending to 4000, cleared no lower than 3000 ft, heading 331 at 210 kt.",
"Separation lost in 44 seconds. Traffic crossing from the right, co-altitude and descending, ahead-right, 7.2 NM, closest approach 2.1 NM in 75 s; it must give way. This arrival is at 7700 ft descending to 7000, cleared no lower than 3000 ft, heading 021 at 250 kt.",
"Separation lost in 44 seconds. Traffic crossing from the left, co-altitude and descending, ahead-left, 7.2 NM, closest approach 2.1 NM in 75 s; it has priority and is flying its own route with no vector. This arrival is at 7600 ft descending to 7000, cleared no lower than 3000 ft, heading 298 at 250 kt."
],
"scale": [
"Separation holds for the next 120 seconds, or nothing is converging at all",
"Separation is lost in 75 to 120 seconds, so it is worth watching but not acting",
"Separation is lost in 30 to 75 seconds, so a clearance has to go out now",
"Separation is lost in under 30 seconds, and the aircraft are already too close"
]
}
DM1_REQUEST# Reads MS_API_KEY. JSON on stdin supplies the complete request.
dm1 yes-no --json --usage <<'DM1_REQUEST'
{
"texts": [
"Separation lost in 50 seconds. Traffic crossing from the left, 1600 ft below and descending, dead ahead, 7.8 NM, closest approach 2.6 NM in 72 s; it must give way. Traffic crossing from the left, 300 ft below and descending, ahead-left, 11.1 NM, closest approach 0.5 NM in 109 s; it must give way. This arrival is at 5900 ft descending to 4000, cleared no lower than 3000 ft, heading 209 at 212 kt.",
"Separation lost in 50 seconds. Traffic crossing from the right, 1600 ft above and descending, ahead-right, 7.8 NM, closest approach 2.6 NM in 72 s; it has priority and is flying its own route with no vector. This arrival is at 4300 ft descending to 4000, cleared no lower than 1500 ft, heading 331 at 210 kt.",
"Separation lost in 75 seconds. Traffic crossing from the right, 300 ft above and descending, ahead-right, 11.1 NM, closest approach 0.5 NM in 109 s; it has priority and is flying its own route with no vector. This arrival is at 5600 ft descending to 4000, cleared no lower than 3000 ft, heading 331 at 210 kt.",
"Separation lost in 44 seconds. Traffic crossing from the right, co-altitude and descending, ahead-right, 7.2 NM, closest approach 2.1 NM in 75 s; it must give way. This arrival is at 7700 ft descending to 7000, cleared no lower than 3000 ft, heading 021 at 250 kt.",
"Separation lost in 44 seconds. Traffic crossing from the left, co-altitude and descending, ahead-left, 7.2 NM, closest approach 2.1 NM in 75 s; it has priority and is flying its own route with no vector. This arrival is at 7600 ft descending to 7000, cleared no lower than 3000 ft, heading 298 at 250 kt."
],
"statement": "This aircraft is clear of all traffic and ready for the next controller.",
"when_true": "The text says nothing is converging with this aircraft for 120 seconds.",
"when_false": "The text gives the seconds at which separation with traffic is lost."
}
DM1_REQUESTUnder the hood How it works & limitations
API calls/classify/rate/yes-no
How it works
Local simulation code predicts conflicts. The model selects an instruction for each aircraft that needs attention, and the simulator applies it while tracking separation and arrivals.
Demo scope
The aircraft and airspace are fictional. Separation rules, physics and traffic are simplified for the demo. The controller can make unsafe choices and is not suitable for real aviation.
Inspired by the work of dabit3.