Skip to Content
ReferenceCLIsimulate

orbitforge simulate

Synopsis

orbitforge simulate --constellation <PATH> [OPTIONS]

Description

Advances every satellite in a constellation through time on a fixed step and writes the resulting timeline to the requested export formats.

This is the command that turns a static constellation definition into a trajectory. Coverage, link, and eclipse analysis all consume its output, so the propagation model chosen here determines the fidelity of everything downstream.

Options

Core options. Values shown are the shipped defaults.
ParameterTypeUnitDefaultRequiredDescription
--constellationpathn/aYesPath to a constellation JSON file, from `constellation walker`, `import-tle`, `import-ephem`, or `design`.
--startstringRFC 3339 UTC2026-01-01T00:00:00ZNoScenario start epoch. When propagating imported TLEs, set this to the reference epoch the import reported.
--duration-hoursfloath6NoLength of the propagation window.
--step-secondsfloats60NoFixed output step. Sample count is duration divided by step, plus one for the closing endpoint.
--modelenumn/atwo-bodyNoPropagation model: `two-body`, `j2`, `sgp4`, `numerical`, or `ephemeris`. See the table below.
--gravitystringn/aj4NoGravity field for the numerical model: `two-body`, `j2`, `j3`, `j4`, or a spherical-harmonic field as `egm96:DxO`, for example `egm96:16x16`. Degree and order up to 36.
--drag-cdamfloatm^2/kgNoEnables drag with this ballistic term, Cd times A over m. Omitted means no drag.
--atmosphereenumn/aexponentialNoDensity model for drag: `exponential`, or `harris-priester` for a table-driven profile with a diurnal bulge.
--srp-cramfloatm^2/kgNoEnables cannonball solar radiation pressure with this radiation term, Cr times A over m.
--third-bodystringn/aNoComma-separated third bodies, a subset of `sun`, `moon`, and planet names such as `venus` or `jupiter`.
--czmlpathn/aNoWrite a CZML document for the 3D globe viewer.

Run orbitforge simulate --help for the complete list, including integrator selection and the remaining export paths.

Propagation models

--modelForces includedRequires
two-bodyPoint-mass Earth onlyNothing
j2Two-body plus secular J2: nodal regression and apsidal rotationNothing
sgp4SGP4/SDP4 from each satellite’s source TLESatellites imported from TLE
numericalCowell integration with the configured gravity field, drag, solar radiation pressure, and third bodiesNothing; force terms are opt-in
ephemerisInterpolation of an imported ephemeris tableSatellites imported from OEM or SP3, and a window inside the table span

sgp4 is only valid for TLE-imported satellites, and ephemeris only within the span the imported table covers. Selecting either on a constellation produced by constellation walker fails rather than silently substituting a different model.

Worked examples

Baseline two-body run

orbitforge constellation walker \ --name demo --planes 6 --sats-per-plane 10 \ --altitude-km 550 --inclination-deg 53 --fov-deg 45 \ --output demo.json orbitforge simulate \ --constellation demo.json --duration-hours 6 --step-seconds 60 \ --czml demo.czml
Generated 'demo' with 60 satellites (6 planes x 10 per plane) -> demo.json Simulated 60 satellites over 6.0 h at 60 s steps (361 samples each) using two_body. Wrote CZML -> demo.czml

The sample count is 361, which is 360 steps of 60 seconds across 6 hours plus the closing endpoint.

High-fidelity numerical run

orbitforge simulate \ --constellation demo.json --duration-hours 24 --step-seconds 60 \ --model numerical --gravity j4 \ --drag-cdam 0.02 --atmosphere harris-priester \ --srp-cram 0.02 --third-body sun,moon \ --czml demo-hifi.czml

Each added force term costs run time. Drag and solar radiation pressure also require a ballistic and a radiation term that describe the actual spacecraft; a guessed value produces a confidently wrong trajectory rather than a warning.

Model basis

Exit behavior

The command exits non-zero and prints a diagnostic to standard error when the constellation file cannot be read or parsed, when a model is selected that the constellation cannot support, or when a requested export path cannot be written.

Partial output is not left behind on failure.

See also

Question? Give us feedbackDocuments Varaha Constellation Designer main (pre-release)
Last updated on