Live / Operator Agent - on-satellite execution is live Read announcement →
Orbital Runtime · Scheduler

CAE. Constraint-aware execution planning.

The first API for orbital compute scheduling. POST a satellite and a workload, get back a physically-accurate plan that respects power, thermal, comms, and orbital windows - or an explicit reason it can't be done.

One request

POST a workload. Get a feasible plan.

rotastellar-cae
$ curl https://api.rotastellar.com/v1/plan \
    -H "Content-Type: application/json" \
    -d '{
      "satellite_id": "25544",
      "preset_id": "onboard-ml-inference"
    }'

# CAE returns a constraint-aware plan
{
  "satellite": { "name": "ISS (ZARYA)", "altitude_km": 408 },
  "preset": { "id": "onboard-ml-inference", "steps": 4 },
  "orbital_environment": { "eclipse_fraction": 0.35 },
  "plan": { "total_duration_s": 2700, "windows_used": 8, "status": "scheduled" },
  "error_budget": { "delivery_confidence": 0.98 }
}
The problem

You can't downlink your way out of orbit.

A satellite can generate on the order of 1 TB/day, while a single ground-station pass moves roughly 7.5 GB. You can't send it all home - so the compute has to happen where the data is, inside power, thermal, and link budgets that change every minute. CAE turns that into a planning problem and solves it.

How it works

Four-phase planning, from real orbital mechanics.

01 · Orbital environmentSGP4

Resolve the windows

Propagate the satellite with SGP4 and resolve illumination, eclipse, thermal margin, and ground-station and inter-satellite-link geometry into time-varying envelopes.

02 · Placementwhere

Place every step

Assign each workload step to a node - on-satellite, ground, or deferred - given its compute, memory, and I/O requirements.

03 · Data transferbudget

Close the data budget

Schedule uploads and downloads into contact windows under the link budget, or reject a workload that can't close it.

04 · Schedulingwhen

Lay it on a timeline

Place the steps where every envelope is satisfied simultaneously - or return the first constraint that cannot be met.

Multi-objective

Not one plan. A frontier of them.

CAE doesn't just hand back a single answer. It explores the trade-off between delivery confidence and the energy a plan costs, and returns the Pareto frontier, so you pick the point that fits your mission, not ours.

1.00 0.90 0.80 120 180 240 energy cost (kJ) delivery confidence
Pareto-optimal dominated selected · 0.98 conf · 180 kJ
Real physics, not toy models

Six workload presets.

Presets capture real orbital compute patterns, so you describe what you want to run and CAE handles the orbital mechanics. Pass a preset_id in your plan request, or define a custom_job.

onboard-ml-inferenceCapture, preprocess, run inference on-board, and encrypt the result.
split-learningDownlink features and uplink weights - training split across ground and orbit.
earth-observation-qaCapture, assess quality, and selectively downlink what's worth the budget.
federated-learningTrain locally on each node, then aggregate the model.
resilient-store-forwardCapture, store, and downlink across multiple passes with redundancy.
orbital-aware-imagingAdapt imaging to eclipse and thermal windows.
API

Endpoints.

POST /v1/planBuild a feasible execution plan for a satellite and a preset or custom job.
GET  /v1/presetsList the workload presets and their parameters.
GET  /v1/plan/:idRetrieve a stored plan, or its /events stream.
POST /v1/hazardsPredict eclipse, SAA, and thermal hazards with checkpoints.
POST /v1/constellation/planMulti-satellite DAG planning with inter-satellite-link routing.
Get started

Put your first workload in orbit.

Tell us what you want to run and the satellite you want to run it on. We'll come back with a feasible plan - or an honest reason it can't be done yet.