Orbital Runtime / Orbit Scheduler

Kubernetes for
Earth + Orbit

Where should this workload run? When? At what fidelity? Orbit Scheduler makes placement decisions based on orbital position, ground station visibility, energy availability, and latency requirements.

Simulator

Q2 2026

Research Benchmarks

Q3 2026

Production Runtime

2027

Global Coverage, Smart Placement

Watch scheduling decisions happen in real-time as satellites pass over ground stations.

Ground Station Coverage Map
Satellite
Ground Station
Coverage Zone
US-WEST EU-CENT AU-EAST
llm-inference-7284 Routing
Target orbital-1
Latency 34ms (SLA: 200ms)
Energy -43% vs ground
Window 8m 23s remaining
batch-process-1892 Queued
Target Pending evaluation
Priority Low (deferrable)
Scheduling Pipeline
Intake Evaluate Route Execute

The Problem

Kubernetes, Nomad, and cloud schedulers assume always-on networks, stable power, and predictable latency. These assumptions are invalid for orbital compute.

Traditional Scheduler Orbit Scheduler
Assumes always-on connectivity Predicts ground station windows, plans handovers
Ignores power source Schedules around solar peaks and eclipses
Static latency estimates Models orbital geometry, ISL hops, propagation
Workloads fail on timeout Pre-migrates state before windows close

Capabilities

01

Orbit-Aware Placement

SGP4/SDP4 orbital propagation integrated directly into the scheduler. Knows where every node will be, when it will have connectivity, and what its energy state will be.

02

Energy-Aware Scheduling

Shift workloads to solar peaks, defer non-urgent work during eclipse, balance battery state across the constellation.

03

Latency-Aware Routing

Route inference requests based on current orbital geometry. Account for ground station visibility, ISL hops, and processing queues.

04

Predictive Handover

Pre-migrate state before communication windows close. No dropped connections, no lost work, no timeout failures.

How It Works

Python - Submit Workload
from rotastellar import OrbitScheduler

scheduler = OrbitScheduler(api_key="...")

job = scheduler.submit(
    workload="llm-inference",
    model="llama-70b",
    latency_sla_ms=200,
    priority="normal",
    prefer_orbital=True  # Prefer orbital when viable
)

print(f"Routed to: {job.placement}")
print(f"Expected latency: {job.latency_ms}ms")
print(f"Energy source: {job.energy_source}")
Scheduling Decision Output
{
  "placement": "orbital_node_1",
  "reason": "energy_surplus",
  "orbital_state": {
    "solar_angle": 67.2,
    "power_available_w": 847,
    "eclipse_in_min": 43
  },
  "latency": {
    "ground_to_orbit_ms": 12,
    "processing_ms": 156,
    "orbit_to_ground_ms": 14,
    "total_ms": 182
  },
  "fallback": "earth_us_west",
  "energy_savings_pct": 43
}

Ready to schedule across Earth and orbit?

Get early access to the Orbit Scheduler simulator.