The satellite starts in a circular orbit 400 km above Earth. Press Run to advance time and Stop to freeze the exact state. Stop does not set velocity to zero. While paused, drag from the satellite (or the amber arrow tip) to aim an additional velocity. Enter its magnitude in m/s, or enable drag-length control. The amber dashed line is the proposed future; the muted dashed line is the future without a burn. Press Apply Δv & run to commit. Repeat as often as you like.
The dynamics are fully 3D. The initial top view is a convenient 2D projection. Azimuth is measured from inertial +X toward +Y; elevation is measured out of the XY plane toward +Z. The XYZ boxes are equivalent direct component inputs. A mouse drag specifies a vector in the current screen plane and replaces any component pointing into the screen. Use XYZ or elevation for a general 3D burn. Prograde follows the actual velocity; radial and normal presets use the current position and orbital angular momentum. In a purely radial trajectory, the normal is undefined and a deterministic perpendicular fallback is used.
Drag the background to rotate the camera, use the scroll wheel to zoom, or choose Top / XY, 3D view, or Orbit plane. Manual zoom turns auto-fit off; Fit all turns it back on. Auto-fit includes Earth and every flown segment; including visible predictions is optional. Very distant trajectories make Earth correspondingly small—physical sizes are not distorted. The satellite symbol, velocity arrows, burn markers, and globe glow are visual annotations, not to scale.
dr/dt = vdv/dt = −μ r / |r|³At a burn: r⁺ = r⁻, v⁺ = v⁻ + Δv.Earth is a fixed sphere of radius 6,371 km, with μ = 398,600.435507 km³/s². Initial circular speed is √(μ/r). The two-body motion between burns is evaluated with a universal-variable Kepler solution and a safeguarded root solver. Small geometric sampling intervals resolve the path; collision checks locate the surface event rather than letting a time step jump through Earth.
dr/dt = v
dv/dt = −μ r / |r|³
r⁺ = r⁻
v⁺ = v⁻ + Δv
√(μ/r)
No atmosphere, drag, J₂ / oblateness, Moon, Sun, finite-duration thrust, fuel budget, or spacecraft attitude dynamics are included. This is a Newtonian Earth-only teaching sandbox, not an operational orbit predictor. In particular, low-altitude motion and very distant escape trajectories are idealizations. An impact stops the simulation at the spherical surface. Altitude below 100 km triggers a warning, not a drag model.
Every coast has its own color. Solid lines show only recorded motion; dashed lines are forecasts. Each sample stores simulation time, 3D position, and 3D velocity. Both pre-burn and post-burn states are retained at the same burn time. Drawing may use fewer points for performance, but exports keep all samples. To prevent unbounded browser memory use, the simulator pauses at 2,000,000 samples; export or reset before continuing a new mission. JSON preserves a reloadable mission and burn log. CSV contains sampled states. Closing or resetting without saving discards the session.
Undo last burn rewinds to immediately before that burn and removes the flight after it. Energy drift is measured within the current coast, normalized by a characteristic orbital energy; a burn legitimately changes orbital energy. At high time acceleration a slow computer may advance more slowly than requested rather than skip physical checks. Switching to another browser tab automatically pauses the simulation.
Start at 400 km. Stage a 500 m/s prograde burn to create an ellipse, or a 200 m/s retrograde burn to see a surface-intersecting orbit. A 3,500 m/s prograde burn creates an Earth-escape trajectory in this model. A 500 m/s normal burn tilts the orbit: use 3D view to see it. Circularize here stages the velocity change for a circular orbit at the current radius; it does not apply it until you press Apply.
Physical constants: NASA Earth Fact Sheet; JPL Astrodynamic Parameters (DE440). Background: NASA, Gravity & Mechanics. No internet connection is needed to operate the simulator.
Save before closing or resetting. JSON can be reopened here; CSV includes every recorded state, segment ID, and segment color. Units are explicit in the column headers.