Skip to content

Repository files navigation

OrbitOps Lab

A reproducible experimental framework for constrained Earth-observation scheduling.

Python 3.12+ Typed Tests License: MIT

Open the hosted research interface

From target geometry to a validated schedule, every decision remains reproducible, inspectable, and backed by the same simulation core.

OrbitOps Mission Control showing a Cesium globe and Q-learning mission configuration

Research objective

Satellite scheduling demos often stop at a score. OrbitOps Lab keeps the whole evidence chain visible: a solver proposes task assignments, the discrete-event simulator reconstructs resource state, and the validator independently checks time windows, overlap, slew, energy, and storage constraints.

The algorithms, simulator, constraint system, benchmark harness, and linear Q-learning loop are implemented from scratch. Third-party libraries provide general infrastructure and 3D rendering—not the scheduling answers reported by the project.

Explore Optimize Verify
CesiumJS/WGS84 target geometry and observation sequence 10 baseline, exact, stochastic-search, and learning solvers One shared simulator, explainable violations, and reproducible artifacts
Visibility-aware mission Gantt chart Seeded budgets and convergence traces Energy/storage envelopes and feasibility verdicts
Q-learning objective, epsilon, and TD-error curves Branch-and-bound optimality on small instances Golden, property, unit, and integration tests

Experimental evidence

OrbitOps scheduling evidence dashboard with Gantt, resource envelope, and Q-learning curves

  • 3D mission geometry: an interactive CesiumJS globe places every WGS84 target on NASA Blue Marble imagery, highlights selected observations, draws the scheduled target sequence, and provides an explicitly notional orbit-context track. It requires no Cesium ion token, retains a Natural Earth fallback, and sends no scenario data to a hosted scheduler.
  • Mission Gantt: every target receives a row containing all committed visibility windows, the selected observation interval, and its preceding slew.
  • Resource envelope: energy remaining and storage consumed are replayed from the authoritative simulator after each observation.
  • Learning diagnostics: Q-learning runs expose policy objective, exploration decay, and normalized mean absolute temporal-difference error by episode.
  • Honest boundary: the globe is a mission-context view. High-fidelity orbit propagation is deliberately outside v0.1 and is never implied by the display.

Quick start

python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e '.[dev]'

orbitops lab --scenarios scenarios

Open http://127.0.0.1:8000. The Web Lab starts with the committed demonstration scenario and a seeded 250-episode Q-learning run, so the 3D mission view, Gantt, resource envelope, and training curves are visible immediately.

The GitHub Pages interface provides a serverless reproducibility view. It contains 30 build-time results covering the three committed scenarios and ten solvers at seed 42 and evaluation budget 250. The hosted controls select these recorded artifacts; local execution remains the authoritative mode for arbitrary seeds, budgets, and new scenarios.

The same domain core is available from the command line:

orbitops validate scenarios/examples/demo.json
orbitops solve scenarios/examples/demo.json --solver genetic --seed 42 --evaluation-budget 500
orbitops solve scenarios/tiny/tiny-conflict.json --solver branch-and-bound
orbitops benchmark configs/benchmark-smoke.toml --output runs/benchmark-smoke
orbitops train scenarios/examples/demo.json --model-output runs/demo-policy.json --episodes 250
pytest

Solver portfolio

Family Implementations Evidence
Baseline random feasible, value, value density, deadline, global insertion Deterministic contracts and feasibility replay
Exact exhaustive search, branch-and-bound Optimality on bounded tiny scenarios
Search multi-start local search, genetic algorithm Seeded evaluation budgets and convergence traces
Learning scenario-bound linear Q-learning Versioned policy JSON, training trace, fingerprint-checked replay

The objective is lexicographic: maximize total priority value, then completed task count, then minimize total slew time. Every solver returns decisions through the same contract and is scored by the same independent simulation path.

Reproducibility contract

  • Immutable, versioned Pydantic models at package boundaries.
  • Canonical Scenario, Schedule, and learned-policy JSON Schemas.
  • Seeded stochastic solvers, benchmark campaigns, and learning experiments.
  • Reproducibility fingerprints for reports and scenario-bound policies.
  • Strict mypy, Ruff, unit, integration, property, and golden-test coverage.
  • Standalone benchmark reports that contain no plotting-framework dependency.

Repository map

packages/orbitops/
├── domain/          # immutable contracts and lexicographic objective
├── simulation/      # transitions, event replay, resources, validation
├── solvers/         # baseline, exact, search, and Q-learning solvers
├── learning/        # environment, trainer, policy artifact
├── benchmarking/    # scenario generation, campaigns, aggregation
├── reporting/       # standalone HTML benchmark evidence
└── web/             # local API and interactive mission lab

scenarios/           # committed reproducible inputs
schemas/             # versioned JSON contracts
tests/               # unit, integration, property, and golden tests
docs/                # formulation, algorithms, architecture, and evidence

Scope and documentation

v0.1 models one agile satellite, multiple observation targets, offline planning, precomputed visibility windows, attitude slew, energy, and storage. Downlink planning, multi-satellite coordination, high-resolution terrain, time-varying weather layers, and high-fidelity orbit propagation are deliberate future extensions.

Start with the problem formulation, then see the simulation model, algorithms, benchmarking, visual reports, Web Lab, and reinforcement learning.

Release scope: v0.1 includes the reproducible mission core, 10 solvers, benchmark reports, Cesium mission context, validated Gantt and resource views, and scenario-bound Q-learning diagnostics.

About

A reproducible scheduling laboratory for agile Earth-observation satellites.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages