🚀 Welcome to Apoapsis

Build a rocket, fly it to orbit, and chase the contracts. Real orbital mechanics, real Tsiolkovsky physics, two moons to visit.

Builder

Click parts on the left to stack them. S0/S1/... buttons assign stages. Stage with the highest number fires first. Use the MunShip preset if you want a ready-to-fly design.

Flight — the 10 keys you need

W/S throttle   A/D pitch   Q/E yaw   Space stage

0-9 SAS modes (prograde, retrograde, target, etc.)

L autopilot (ascent on Earth — moon landing once in Mun/Minmus SOI)

M map view   N maneuver node   ,/. time warp

G deploy chute   Shift+WASDQE = RCS translate (precision docking)

First mission

Load MunShip, press LAUNCH, then hit L to let the autopilot put you in orbit. On the maneuver panel click → Mun, warp (.) until the burn window, hit 8 for SAS MANEUVER, then W to throttle up.

SAS

★ MANEUVER NODE

+0s
0
0
0
W/S Throttle   A/D Pitch   Q/E Yaw   Shift+move=RCS   SPACE Stage   0-9 SAS   M Map   N Node   G Chute   X Abort   L Autopilot   ,/. Warp   Drag/Scroll=Camera   ESC Quit

Orbit Achieved!

About Apoapsis

Apoapsis is a 3D rocket-flight simulation. Plan an ascent profile, manage staging, and reach a stable orbit around Earth — or beyond. Real Newtonian gravity (no patched conics simplification), realistic engine specifications, and atmospheric drag matter to your trajectory.

How to play

Configure your rocket: payload, stages, fuel mass. Throttle up, gravity-turn during ascent, stage at appropriate altitudes, circularize at apoapsis to lock in orbit. Three.js renders the trajectory in 3D; orbit parameters update live.

Frequently asked questions

What is apoapsis?

The highest point of an orbit — opposite of periapsis (lowest point). On Earth it's "apogee"; for the Sun it's "aphelion". The game is named after this orbital concept.

Is the physics realistic?

Yes — full Newtonian gravity (no patched-conics simplification), realistic engine ISP/thrust specs, and atmospheric drag with altitude-dependent density. Trajectory matches what Kerbal Space Program calls "Realism Overhaul" closely.

What's a good gravity-turn altitude?

Begin pitching over at ~5 km, target ~45° pitch by 20 km. Earlier pitch wastes fuel on horizontal velocity at sea level (high drag); later pitch wastes fuel fighting gravity.

Can I land on the Moon?

Single-stage to orbit and a circumlunar flyby are both achievable with the default rocket. A surface-landing mission requires a custom multi-stage build.

How the model works — the real physics

Apoapsis integrates the equations of motion numerically every tick rather than drawing an analytic conic — the trajectory you see emerges from the forces, so a badly timed burn distorts the orbit exactly as it should. Units are SI throughout (metres, kilograms, seconds, newtons). Here is the actual math the code runs.

Gravity

Gravity is inverse-square about the current primary body. Earth's gravitational parameter is built from surface gravity and radius:

Integration — semi-implicit (symplectic) Euler

Each step advances velocity first, then position with the updated velocity:

This ordering is what makes the method symplectic: unlike plain (explicit) Euler it conserves orbital energy over many revolutions, so a circular orbit stays circular instead of spiralling out from integration error.

Thrust, mass flow & the rocket equation

Engines are defined by thrust F and specific impulse Isp. Propellant burns at the mass-flow rate

Stage and total Δv budgets come straight from the Tsiolkovsky rocket equation:

Atmosphere & drag

Air density follows the International Standard Atmosphere in the troposphere and an exponential fall-off above it:

Orbital elements — vis-viva & the eccentricity vector

Live orbit readouts are derived every tick from the state vectors (position r, velocity v):

What's simplified

Within the active body's sphere of influence gravity is integrated numerically from the single primary — genuine Newtonian motion, not a precomputed two-body conic. Transitions between bodies use the standard patched-conic / SOI hand-off (only one gravitating body at a time; no n-body perturbations). The Mun and Minmus and their SOI radii are KSP-scaled toy bodies (Mun radius 300 km, SOI 1500 km, etc.), deliberately shrunk so a transfer fits in a short play session rather than matching the real Earth-Moon system.

Related games

Discussion

Sign in with GitHub to share strategies, ask questions, or report a bug.