Skip to Content
Getting StartedQuick start

Quick start

What you will accomplish

By the end of this page you will have generated a 60-satellite Walker Delta constellation, propagated it for six hours, and produced a CZML file that animates on a 3D globe.

Expect 20 to 40 minutes, most of it waiting for the first compile.

Prerequisites

RequirementWhyCheck
Rust toolchainThe engine that does the physicscargo --version
Node.jsOnly for the 3D viewer, not for the enginenode --version
A local copy of the workspaceSource is built from a checkoutls Cargo.toml

Install Rust from rustup.rs  and Node.js from nodejs.org . Accept the defaults for both, then open a new terminal so the changes take effect.

Steps

Build the engine

From the root of the workspace:

cargo build

The first build downloads and compiles every dependency and takes several minutes with a large amount of scrolling output. That is expected. When your prompt returns with no error, the engine is ready.

Subsequent builds are seconds, not minutes.

Generate a constellation

A Walker Delta is defined by how many orbital planes you want, how many satellites go in each plane, how high they fly, and how tilted the orbits are.

orbitforge constellation walker \ --name demo --planes 6 --sats-per-plane 10 \ --altitude-km 550 --inclination-deg 53 --fov-deg 45 \ --output demo.json
Generated 'demo' with 60 satellites (6 planes x 10 per plane) -> demo.json

What you just asked for:

Flags used above. The full set is in the CLI reference.
ParameterTypeUnitDefaultRequiredDescription
--planesintegercountYesNumber of orbital planes, the "rings" the satellites travel in.
--sats-per-planeintegercountYesSatellites evenly spaced within each plane.
--altitude-kmfloatkmYesHeight above the Earth ellipsoid. 550 km is a typical low Earth orbit.
--inclination-degfloatdegYesOrbit tilt. 0 deg is equatorial, 90 deg is polar. 53 deg favors mid latitudes.
--fov-degfloatdeg45NoPayload field of view, used later for coverage footprints.
--outputpathn/aYesWhere to write the constellation definition.

Propagate it

Generating a constellation only places satellites at an initial instant. Propagating advances them through time and records where they go.

orbitforge simulate \ --constellation demo.json --duration-hours 6 --step-seconds 60 \ --czml demo.czml
Simulated 60 satellites over 6.0 h at 60 s steps (361 samples each) using two_body. Wrote CZML -> demo.czml

361 samples is 6 hours at 60-second steps, inclusive of both endpoints.

two_body is the default propagation model: a point-mass Earth with no oblateness, drag, or third-body effects. It is fast and adequate for a first look. It is not adequate for a design review. Choosing a fidelity level is covered in the propagation guides.

Watch it orbit

Start the viewer from the apps/orbitforge-web directory:

npm install npm run dev

Open the URL it prints, then load demo.czml. You should see 60 satellites in six distinct planes, with trails, moving against a 3D Earth.

Verification

You succeeded if all four are true:

  1. demo.json exists and is non-empty.
  2. The simulate command reported 60 satellites and 361 samples each.
  3. demo.czml exists and is substantially larger than demo.json.
  4. The globe shows six evenly spaced planes, not a single ring or a random cloud.

If the satellites form one ring rather than six planes, --planes was probably passed as 1.

Interpreting the result

The six planes are spaced evenly in right ascension of the ascending node, the angle where each orbit crosses the equator going north. Within a plane the ten satellites are spaced evenly in true anomaly, their position around the ring. That even spread is what makes a Walker pattern useful: coverage gaps are distributed rather than concentrated.

At 550 km the orbital period is roughly 96 minutes, so six hours is close to four revolutions. You should see each satellite return near its starting point slightly displaced, because the Earth rotates underneath.

Troubleshooting

SymptomCauseFix
command not found: orbitforgeThe binary is not on your PATHRun it as cargo run -p orbitforge-cli -- followed by the same arguments
cargo build fails on a missing linkerNo C toolchainOn macOS run xcode-select --install
Simulate reports 0 samples--duration-hours smaller than --step-secondsIncrease duration or reduce the step
Globe renders but nothing movesThe viewer clock is outside the scenario windowReset the viewer clock to the scenario start epoch

Next steps

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