One env step is one advisor step: 300 s (150 s for v6), 150 substeps of 2 s, RK4 inside each substep. External forces and torques are evaluated once per substep and held (zero-order hold) across its RK4 stages. Gravity is re-evaluated at every RK4 stage.
Timing constants
Quantity
Default
Where
advisor step (env step)
300 s (v6: 150 s; override advisor_s)
SimParams.advisor_step_s, env ctor
substep (force/torque evaluation)
2 s (override inner_dt)
SimParams.dt_s
RK4 step
2 s (≤ dt_s)
integrator.rk4_step_s
slew clip per step
45° (v3), 40° (v4+)
SimParams.max_slew_rad
epoch
JD 2461060.5 = 2026-01-15 00:00 UTC
env.EPOCH_JD, SimParams.epoch_jd
hard stop
geodetic altitude < 80 km (plant); env terminal altitudes are per variant
api.cpp
step cost
≈1.23 ms (v10 standard physics)
CHANGELOG_v2.7
Frames
Frame
Definition in code
N (inertial)
Earth-centred, z = rotation axis. Earth-fixed is reached by a z-rotation of IAU-1982 GMST (dcm_EN), with no precession, nutation or polar motion. The analytic Sun and Moon are given in the mean equator of date and used as N. SPICE returns J2000 (see limits).
E (Earth-fixed)
r_E = dcm_EN(gmst) r_N, used for gravity SH, WMM and MSIS longitude
B (body)
MRP σ_BN, C_BN = mrp_to_dcm(σ). Panels, rods and the inertia are in B.
F (flow)
e₁ = v_rel, e₃ = orbit normal (or ⟂B for flowB, ⟂Sun for flowS), e₂ = e₃ × e₁. Used when cmd_frame ≠ inertial.
L (LVLH)
dcm_LN: z = −r̂, y = −ĥ, x = y × z
StepOut (what Simulator.step returns)
Key
Meaning
r, v, sigma, omega, t
state at the end of the step (N frame, MRP shadow set, body rates)
altitude_km, sma_m
Bowring geodetic height; vis-viva semi-major axis
eclipse, sun_B, B_B
shadow flag at the end, Sun and field in body axes
Cd, Cl
last-substep coefficients on A_ref (half the total panel area if one_sided_ref)
drag_N
mean along-track drag magnitude (N)
dE_actual, dE_baseline, dE_drag, dE_lift
specific orbital-energy change (J/kg) from aero + SRP + ERP, from the min-drag counterfactual, and the drag and lift parts