Skip to content

Quickstart

This guide shows how to run OrbitFabric locally from the current repository baseline.

OrbitFabric is a model-first Mission Data Fabric for small spacecraft.

The current released baseline is:

v1.0.0 - Stable Mission Data Contract

v1.0.0 stabilizes a deliberately narrow Core surface around the Mission Model, validation, linting, scenario evidence, machine-readable JSON reports, Core-owned structured surfaces, release compatibility governance and the extensibility boundary.

OrbitFabric is not a flight software framework, not a ground segment and not a spacecraft dynamics simulator.

Generated runtime-facing contract bindings are not flight software.

Generated ground integration artifacts are not ground software.

Core-owned structured surfaces are not plugin APIs, graph engines or Studio-specific APIs.


1. Requirements

OrbitFabric currently requires:

Python 3.11 or newer
Git

The generated C++17 host-build smoke validation additionally requires:

CMake
A C++17-capable compiler

The CI validates Python 3.11 and Python 3.12.


2. Clone the repository

git clone https://github.com/FAROTECH/orbitfabric.git
cd orbitfabric

3. Create a virtual environment

python3 -m venv .venv
source .venv/bin/activate

On Windows PowerShell:

python -m venv .venv
.venv\Scripts\Activate.ps1

4. Install OrbitFabric for local development

python -m pip install --upgrade pip
python -m pip install -e ".[dev]"

5. Verify the CLI

orbitfabric --version
orbitfabric --help

Expected current package version:

orbitfabric 1.0.0

6. Run core checks

ruff check .
pytest
mkdocs build --strict

All checks should pass.


7. Inspect the demo Mission Model

orbitfabric inspect mission examples/demo-3u/mission/

Expected result:

Result: PASSED

8. Validate demo scenarios without executing them

orbitfabric validate scenario examples/demo-3u/scenarios/battery_low_during_payload.yaml
orbitfabric validate scenario examples/demo-3u/scenarios/payload_data_flow_evidence.yaml

Expected result:

Result: PASSED

9. Run Mission Model lint

orbitfabric lint examples/demo-3u/mission/

Expected result:

Result: PASSED

Generate a JSON lint report:

orbitfabric lint examples/demo-3u/mission/ \
  --json generated/reports/lint_report.json

10. Export Core-owned structured surfaces

orbitfabric export model-summary examples/demo-3u/mission/ \
  --json generated/reports/model_summary.json

orbitfabric export entity-index examples/demo-3u/mission/ \
  --json generated/reports/entity_index.json

orbitfabric export relationship-manifest examples/demo-3u/mission/ \
  --json generated/reports/relationship_manifest.json

Generated output:

generated/reports/model_summary.json
generated/reports/entity_index.json
generated/reports/relationship_manifest.json

These surfaces answer:

model_summary.json          -> What contract domains are present?
entity_index.json           -> What contract entities are defined?
relationship_manifest.json  -> How are indexed contract entities related?

They are Core-owned, read-only and derived from the validated Mission Model.

They do not expose plugin execution, graph engines, Studio-specific APIs, runtime behavior or ground behavior.


11. Review v1.0 references

Key references include:

Stability and Compatibility Contract
Mission Model Stability Contract
CLI Contract v1 Preview
Generated Surfaces Stability
Extensibility Boundary Contract
v1.0 Stable Surface Decision
v1.0 Demo Evidence Chain
Golden Output and Regression Confidence Policy
v1.0 Compatibility and Migration Notes
Lint Rule Code Stability
JSON Report Compatibility
Scenario Evidence Stability
Release Compatibility Policy

These references classify existing surfaces, define the extensibility boundary, record the v1.0 stable posture and explain what is stable, preview, disposable, internal or out of scope.

They do not introduce new Mission Model semantics, CLI behavior beyond version reporting, JSON report fields, generated surfaces, lint diagnostics, scenario behavior, migration tooling, runtime behavior, ground behavior, plugin discovery, plugin loading, plugin execution or tool-specific integrations.


12. Generate mission documentation

orbitfabric gen docs examples/demo-3u/mission/

Generate only the data-flow evidence reference:

orbitfabric gen data-flow examples/demo-3u/mission/ \
  --output-file generated/docs/data_flow.md

Generated mission documentation is derived from the validated Mission Model.

Do not edit generated files manually.


13. Generate runtime-facing contract bindings

orbitfabric gen runtime examples/demo-3u/mission/

The generated C++17 files are runtime-facing contract bindings.

They expose IDs, metadata, command argument structs, abstract adapter interfaces and a host-build smoke target.

They do not implement onboard behavior.


14. Validate the generated C++17 host-build smoke target

cmake -S generated/runtime/cpp17 -B generated/runtime/cpp17/build
cmake --build generated/runtime/cpp17/build

Expected result:

build passed

This confirms that the generated contract-binding surface is syntactically valid and buildable as C++17 on the host.

It does not validate flight behavior.


15. Generate ground integration artifacts

orbitfabric gen ground examples/demo-3u/mission/

The generated ground files are ground-facing contract exports.

They are intended for engineering review, scripts and downstream integration work.

They do not implement a live ground segment, decoder, telemetry archive, database, operator console or command uplink service.


16. Run demo scenarios

orbitfabric sim examples/demo-3u/scenarios/battery_low_during_payload.yaml
orbitfabric sim examples/demo-3u/scenarios/payload_data_flow_evidence.yaml

Expected result:

Result: PASSED

Generate JSON reports and timeline logs:

orbitfabric sim examples/demo-3u/scenarios/battery_low_during_payload.yaml \
  --json generated/reports/battery_low_during_payload_report.json \
  --log generated/logs/battery_low_during_payload.log

orbitfabric sim examples/demo-3u/scenarios/payload_data_flow_evidence.yaml \
  --json generated/reports/payload_data_flow_evidence_report.json \
  --log generated/logs/payload_data_flow_evidence.log

The data-flow evidence report traces the declared contract path:

command -> data product -> storage intent -> downlink intent -> downlink flow -> contact window

17. What this proves

The current demo proves that OrbitFabric can:

  • load a multi-file YAML Mission Model;
  • validate Mission Model structure;
  • run semantic lint rules;
  • generate documentation;
  • inspect a Mission Model summary;
  • export Core-owned structured surfaces;
  • validate scenarios without executing them;
  • execute deterministic host-side scenario evidence;
  • record contract-level data-flow evidence;
  • generate runtime-facing contract bindings;
  • validate generated C++17 bindings with a host-build smoke target;
  • generate ground-facing contract artifacts;
  • protect selected Core-owned structured surface fields with golden signatures.

18. What this does not prove

The current demo does not prove:

  • flight readiness;
  • real-time behavior;
  • hardware integration;
  • real onboard storage execution;
  • real downlink execution;
  • real contact scheduling;
  • orbit propagation;
  • RF link budget simulation;
  • CCSDS, PUS or CFDP compliance;
  • compatibility with cFS, F Prime, Yamcs or OpenC3;
  • XTCE compliance;
  • binary decoder behavior;
  • command uplink behavior;
  • telemetry archive behavior;
  • database behavior;
  • operator console behavior;
  • command dispatch runtime behavior;
  • telemetry polling runtime behavior;
  • HAL or RTOS integration;
  • relationship graph behavior;
  • dependency graph behavior;
  • plugin API behavior;
  • plugin discovery behavior;
  • plugin loading behavior;
  • plugin execution behavior;
  • qualification for operational spacecraft use.

Those are intentionally outside the current scope.