Skip to content

Quick start

spacedc-mdao uses uv. The base install is light; capabilities live behind extras.

uv sync                                          # base (numpy/scipy/pydantic/pint/matplotlib)
uv sync --extra dev --extra mdao --extra viz     # development + optimization + dashboard
Extra Pulls in Enables
mdao openmdao, pymoo, SALib optimization, Pareto fronts, DOE, Sobol
viz plotly, panel, networkx interactive figures + dashboard
orbit skyfield ground-station access windows (needs ephemeris)
rf opensatcom Tier-1 RF link-budget backend
docs mkdocs-material, mkdocstrings this documentation site

The distribution is spacedc-mdao; the import package is orbitdc.

Compare a space design against an Earth baseline

uv run orbitdc compare \
  examples/scenarios/orbital_1mw_inference.yaml \
  examples/scenarios/earth_hyperscale_baseline.yaml --tornado

Or from Python:

import orbitdc as odc

space = odc.load_scenario("examples/scenarios/orbital_1mw_inference.yaml")
earth = odc.load_scenario("examples/scenarios/earth_hyperscale_baseline.yaml")
result = odc.compare(space, earth)

print(result.summary())
print(result.explain_binding_constraints())

Robustness across every Earth baseline

uv run orbitdc robust examples/scenarios/orbital_1mw_inference.yaml \
  examples/scenarios/earth_*.yaml

Optimize (needs the mdao extra)

uv run orbitdc optimize examples/scenarios/orbital_1mw_inference.yaml \
  --pareto lcoc,kg_per_kw

See User tiers for the full progression from one-line compares to custom catalogs and the interactive dashboard.