The 3D companion tracks the orbit-raising spiral by assuming a circular orbit at every instant and analytically differentiating the specific orbital energy ε = −μ/(2a) for continuous tangential thrust. This 2D simulator instead makes no circular assumption: it integrates the raw Newtonian equations of motion for position r = (x, y) and velocity v = (vx, vy) directly in the inertial frame, with thrust applied along the instantaneous velocity direction every step:
d r/dt = v
d v/dt = −μ r/|r|³ + (F/m)·(v/|v|)
ṁ = −F / (I_sp · g₀)
Each step is advanced with a classical 4th-order Runge-Kutta integrator (RK4), with the sub-step size scaled to a small fraction of the current orbital period so the fast circular motion stays numerically stable even while the semi-major axis itself grows over simulated weeks. After every step the code also extracts the osculating orbit elements directly from the instantaneous state — the same way real orbit-determination software does — using the vis-viva energy and the specific angular momentum h = x·vy − y·vx:
ε = |v|²/2 − μ/r a = −μ/(2ε)
e = √(1 + 2εh²/μ²) T = 2π√(a³/μ)
In parallel, the same analytic da/dt = 2(F/m)√(a³/μ) formula the 3D view relies on is integrated forward from the identical starting orbit. Because low-thrust orbit-raising only works at all when the orbit stays very nearly circular (e stays tiny), the two independent methods — one from raw forces in Cartesian coordinates, one from an energy-rate shortcut — should track each other closely. The live "RK4 vs analytic Δa" readout is exactly that check: it turns the 3D simulator's assumption into a number you can watch, rather than take on faith.
- Thrust — engine force in millinewtons; higher thrust raises the orbit faster and also increases the (still small) eccentricity excited per orbit.
- Isp — exhaust velocity in units of g₀; higher Isp means less propellant burned per unit of Δv.
- Wet mass — total spacecraft mass including propellant; a lighter craft accelerates outward faster for the same thrust.
- Time acceleration — simulated days per real second; the RK4 sub-step count is recomputed every frame to stay accurate regardless of how fast time is running.