Contents

Course 12 · Flight

Bringing the booster home

Boostback, return to the launch site or a ship downrange, and the propellant a reusable stage has to hold back to do either.

On the default mission Aster's first stage shuts down 141 seconds after liftoff. It is 69 km up and 77 km downrange, moving at 2,372 m/s over the ground and still climbing at 1,188 m/s. Its nine engines have burned 369 t of propellant; 26.7 t that they could still burn are left in its tanks, on purpose. A second later it separates, and the upper stage goes on to orbit without it.

Left to itself the booster would coast over the top at 152 km and come down six minutes later, 731 km downrange, hitting the sea at 300 m/s. The simulator can fly exactly that: give the booster a program that does nothing but hold it tail-first, and that is what happens. Everything a reusable booster does after staging is about changing that ending, and every way of changing it has to be paid for before staging, in propellant the booster did not burn on the way up.

This lesson is about the three ways a first stage can end — thrown away, landed on a ship downrange, or flown back to where it started — what each one costs, and how the propellant held back for the return turns into payload that does not go to orbit.

What recovery costs

A kilogram of propellant held back for the return is a kilogram the booster carries all the way up without burning. It is dead weight in the first stage's rocket equation, so the booster reaches staging lower and slower, and the upper stage has to make up the difference out of its own propellant — the propellant that would otherwise have lifted payload. Hold back more, and the booster stages sooner still.

The simulator can measure the exchange directly. Fly the reference program on the default mission, raise the payload until the upper stage can no longer reach a 200 km circular orbit and still keep the 2.4 t it needs to come home itself, and read off the limit. With Aster's booster:

The boosterStagingKeptPayload
ExpendedT+152 s, 2,680 m/s1.5 t10.0 t
To the drone shipT+141 s, 2,324 m/s25.6 t6.8 t
Back to the launch siteT+127 s, 1,847 m/s61.9 t2.9 t

Staging is the time of main-engine cutoff and the booster's speed over the ground; kept is the propellant it still could burn; the payloads are the limits, to the nearest tenth of a tonne. The expended booster stages 80 km up, the drone-ship one 68 km, the returning one 54 km.

The first row is the same booster, legs and fins included, with a program that burns it to depletion and lets it go. Landing on the ship costs 3.2 t of payload, a third of it. Flying home costs 7.1 t, more than two thirds. Both work out to about an eighth of a kilogram of payload for every kilogram of propellant held back. The recovery hardware itself is cheaper than it looks: the Aster Expendable preset is the same stack without its booster's 1.5 t of legs and 1.0 t of grid fins, and on the same mission it lifts about 10.3 t, only 0.3 t more.

The preset carries 1.5 t, a number from the simulator's first version and well inside all three. That margin is why every mode of recovery flies on the default mission, and why the table above had to raise the payload to find the edges.

The vehicle workbench shows the same trade before anything flies. Its Δv budget holds back, on every stage with legs, the propellant for a return of fixed size — 1.8 km/s for a booster, 650 m/s for an upper stage — and draws it as a hatched band labelled held for return. For Aster that is 21.2 t in the booster and 2.2 t in the upper stage, and the band reads 0.99 km/s: of the stack's 11.11 km/s, 10.12 are left for the climb, against the 9.4 km/s the workbench allows for reaching orbit. The booster's share of the band is 0.42 km/s. It is a design check, not a flight plan: how much a flight really holds back is the program's decision, made at staging.

One thing the budget is not is the design field Landing reserve on a stage with legs. That field (landingReserve, 5–60 % of the stage's propellant, 10 % by default) says how much propellant the legs are built to land with: it sizes their crush cores, and a larger reserve makes the legs heavier. On real launch sites the simulator builds the legs for the empty stage plus 2 % unless the design sets the reserve explicitly. The Hopper sets 50 %, because a short hop lands with half its load; a booster that has flown a full return lands nearly empty.

The arc after staging

At separation the booster is a projectile. Nothing about the next six minutes is decided by anything but its speed, its height and, much later, the air. On the default mission it separates at 70.5 km, moving at 2,055 m/s downrange and climbing at 1,183 m/s, on a path 30° above the horizontal. It goes over the top at 152 km, 355 km downrange, two and a quarter minutes later, and it keeps most of its horizontal speed the whole way down, because there is almost no air to take it. Only below about 40 km, in its last minute or so, does the air start to slow it.

Everything the booster can do about where it lands, it has to do with its engines. A burn against the direction of travel shortens the arc; a burn in it lengthens it. The drone ship is stationed 620 km downrange, and the booster's natural arc ends 111 km beyond it, which is not an accident: a boostback can only shorten the range, so the program stages the booster long, with propellant in hand for every kilometre it will have to take back. Fly back to the launch site and the whole 2 km/s of downrange speed has to be undone, and then some.

Three ways to end a first stage

Figure · three ways to end a first stage

THE BOOSTER
0501001502000200400600800ALTITUDE · KMDOWNRANGE · KMDRONE SHIPNO BURNS · 731 KM
T+525 s
PHASE
Landed
ALTITUDE
0.0 km
DOWNRANGE
620 km
GROUND SPEED
0 m/s
PROPELLANT LEFT
0.4 t
RETURN Δv SO FAR
1,944 m/s
Downrange against altitude for Aster's first stage on the default mission, flown by the reference program and recorded in the playground; the altitude axis is stretched about three times. Orange where engines are lit: the climb from the pad, then each burn of the return. The dashed line is the same booster with a program that only holds it tail-first — no burns at all. The expended stage is Aster Expendable's, which has no legs, fins or program to fly it home. Move the time to follow the stage.

Thrown away

An expendable booster needs no program. Aster Expendable has no legs, no grid fins and nothing to fly its first stage once it separates, and the reference program burns that stage almost to depletion. It shuts down at T+154 s, 86 km up and 2,839 m/s over the ground; separated, it tumbles over the top at 198 km and falls back into the air nearly 1,000 km downrange at close to 3 km/s. Nothing holds it pointed into the flow, and at 38 km, with 25 kPa of dynamic pressure on a stage turned 10° off the wind, it breaks up. That is the cheapest ending there is. Every other one is bought with the table above.

The drone ship

The reference program stages a recoverable booster once what it has left is what the return needs from there: 5.5 % of its load for the landing and the shortest entry burn, plus 0.011 % of its load for every kilometre its ballistic impact lies beyond the ship. On the default mission that comes to 26.7 t, 111 km past the ship. Then, in booster(fc):

  1. Flip. The engines are off, so the cold-gas thrusters turn the stage engines-first. They cannot turn it against air that still pushes back, so the program holds it nose-first until the dynamic pressure is under 400 Pa. The grid fins deploy now, so that every plan from here includes their drag.
  2. Boostback. At T+197 s, 122 km up and still climbing, three engines burn for 14 s against the direction of travel: 4.6 t, 266 m/s. This is a trim, not a return. It stops when the planned landing — coast, entry burn, landing burn, all predicted by fc.predict({ entryBurn, landingBurn }) — would end 400 m beyond the ship; the entry burn, which only ever shortens the range, takes care of the rest.
  3. Coast. Over the top at 145 km, 315 km downrange, T+269 s.
  4. Entry burn. At 55 km on the way down, three engines for 20 s: 18.1 t, 1,357 m/s, from 2.20 km/s to 0.96 km/s. It is the return's main range corrector, cut when the planned stop point is on the ship, and it keeps the booster out of loads it could not survive — Coming back through the atmosphere is about why.
  5. Descent. From 35 km the grid fins steer the falling stage, walking the planned landing point onto the deck.
  6. Landing burn. One engine at 90 %, lit 1.5 km up at 225 m/s, for 14 s: 3.6 t, 321 m/s. Touchdown at T+518 s, 0.68 m/s down and 0.78 m/s sideways, 1.8 m from the centre of the deck: bullseye, with 0.4 t of usable propellant left.

The whole return costs 1.94 km/s and 26.2 t, and more than two thirds of it is the entry burn.

Back to the launch site

With the mission's profile set to Return to launch site, the program makes two changes before staging. It holds the ascent steeper than 38° once past max-Q, so that the booster stages higher and with less speed to undo, and it stages at 15.5 % of the load: T+127 s, 54 km up, 52 km downrange, 1,860 m/s over the ground, with 61.6 t aboard.

The flip is slower. Air at 54 km still holds the stage, and it is 26 s before the propellant has settled and the booster lights three engines at minimum throttle, letting the engines' gimbal swing it round; it goes to full thrust once it points within 15° of home, 8° above the horizon. By then it has drifted out to 92 km. The boostback lasts 59 s and uses 46.1 t, three quarters of all it kept: 2,186 m/s, turning 1,528 m/s outbound into 598 m/s homebound while the stage is still climbing. It goes over the top at 142 km, already on its way back, and falls almost straight down onto the landing zone, 65° below the horizon at 55 km. The air thickens around it faster on so steep a fall, so the entry burn is shorter and stops slower: 12 s, 10.9 t, 872 m/s, cut at 662 m/s. The landing burn takes 3.8 t more. It touches down at T+514 s, 5.5 m from the centre of Landing Zone 1, graded good.

The return costs 3.39 km/s and 60.8 t. The same stage, left alone, would have come down 467 km out to sea.

How big should a boostback be? It is sometimes said to cost about twice the horizontal staging speed: cancel it, then fly home as fast. For Aster that would be 3.1 km/s, and the booster pays 2.19. It does not need to come home as fast as it left, only fast enough to cover the distance in the time it has before it lands. A flat-Earth, airless estimate makes that precise. A stage at height , climbing at , has

before it reaches the ground, and to arrive back at the pad from a distance it needs a homebound speed of . An instantaneous boostback at the moment of staging, with horizontal speed , therefore costs

At staging on the default mission — m/s, km, km, m/s — s and km/s. By the time the flip is over the stage is at 92 km and 79 km up, and the same formula gives 1.93 km/s. The last 0.26 km/s go on the burn itself: a minute of thrust, pointed a little above the horizon to hold the stage up, while it is still drifting away.

The return, backwards

The propellant a booster must hold back is not the sum of its burns. Every burn is paid for with propellant that the burns before it had to carry. Work it from the ground up: the stage lands at 28.7 t; the landing burn's 321 m/s at an effective 280 s of specific impulse needs times that, 32.3 t, at the end of the entry burn; the entry burn's 1,357 m/s at 311 s needs 1.560 times that, 50.3 t, when it starts; and the boostback's 266 m/s makes it 54.9 t at separation. The booster really separated at 55.3 t.

Figure · the return, paid for backwards

RETURN
266 m/s
1,357 m/s
321 m/s
FLOWN 55.3 t
020406080100

MASS AT SEPARATION · t

Stage 28.3 tKept 0.4 tLanding burn 3.6 tEntry burn 18.1 tBoostback 4.6 t
HELD BACK AT SEPARATION
26.6 t
SHARE OF THE LOAD
6.7 %
RETURN Δv
1,944 m/s
BOOSTBACK ALONE
4.6 t
PAYLOAD GIVEN UP, ≈ ⅛ PER KG
3.3 t
The mass of Aster's booster at separation, built up from the ground: the stage as it lands, then the propellant for the landing burn, then the entry burn that has to carry it, then the boostback that has to carry both. Each burn's propellant grows with everything after it. The presets are the Δv of each burn as the reference program flew the default mission; “flown” marks the booster's real mass at separation in that flight, which also carried the RCS gas for the flip and a little margin.

Choose Return to site and the boostback's 2.19 km/s multiplies everything it has to carry by 2.05: 45 t for the boostback alone, where the drone ship's whole return took 26.6 t. That is the exponential of the rocket equation at work on the return the way it works on the climb, and it is why flying back is so much dearer than the extra 1.45 km/s of Δv suggests. Choose Ship, no entry burn — the flight of the previous lesson, where the booster let the air do the braking — and the same return needs only 11.7 t. The entry burn is the drone-ship return's biggest cost, and what it mostly buys is structural margin.

The last burn

Every return ends in the same place: a landing burn that has to arrive at zero speed and zero height together. The booster cannot hover. One Merlin 1D at its 40 % minimum gives 293 kN at sea level, and Aster's booster touches down at 28.7 t, which weighs 281 kN: at its gentlest, the engine still lifts 1.04 times the stage. A booster that stopped above the deck would climb away; one that waited too long would hit it. The reference program keeps only 300 kg of propellant for the end: whatever it keeps is weight the burn must stop, and the legs are built for the empty stage plus 2 % of its load, 8 t. It plans the burn with fc.predict({ landingBurn }) at 90 % throttle and flies it closed-loop on fc.stopPoint(); Powered descent guidance derives why the window is so narrow, and Coming back down walks through the program's burn.

The hop demo is the same problem without the rest of the return. The Hopper climbs on its one engine to 19.7 km, falls tail-first on its grid fins, and lights its landing burn less than 400 m above Landing Zone 1, falling at 151 m/s. Its legs are built to land with half its 24 t of propellant, because a hop uses only about half, and with 11 t still aboard when it lights, its engine at minimum lifts 1.74 times its weight: there is no hovering at all. The burn lasts 4.7 s and uses 1.1 t; it touches down at 1.40 m/s, 2.5 m from the centre.

The hop demo's landing burn, recorded in the playground from the chase camera, down to touchdown on Landing Zone 1.

When the return does not fit: Vandenberg

Returning to the launch site from Vandenberg, Aster cannot put 1.5 t in orbit. The physics audit flew it on twenty weather seeds, in random and live weather: none of the forty missions succeeded. The booster landed on all forty. The upper stage failed on all forty.

The reason is the direction of the launch. Vandenberg launches polar orbits, due south, and the Earth's rotation, 383 m/s eastward at the pad, is then across the launch direction instead of along it. The booster flies the same return-to-site profile as from Starbase and stages at the same 15.5 %, with almost the same speed over the ground, 1,862 m/s against 1,857 — but its speed in space, the one the orbit is made of, is 1,902 m/s against 2,219 from Starbase. The upper stage has to find those 317 m/s itself. It burns down to the 2.4 t it keeps for coming home and cuts off at 200 km, at 7,689 m/s, still short of orbit. The payload is released on a path that re-enters, and the stage, waiting for a pass over home it will never reach, falls back and burns up.

On the audit's figures, flown on to orbit with no reserve at all, the upper stage arrives with 1.87–2.09 t: not enough for its de-orbit and landing, about 400 m/s short. The booster lands with 1–2 t to spare, too little to give the upper stage those 400 m/s. The audit records two ways out: a lighter payload, or a drone ship off Vandenberg, which on Starbase's numbers would let the booster keep 36 t less. The first is easy to measure. On the default seed the upper stage reaches its orbit with its reserve intact carrying 0.9 t, and not carrying 1.1 t: about 1 t is the most Aster can carry from Vandenberg and still bring its booster home. From Starbase the same profile carries 2.9 t.

In Vivapse

A separated stage is flown by booster(fc), a second function in the same program, called fifty times a second with that stage's own fc. The reference program is src/programs/full-mission.js. It recovers a booster that has legs and at most nine engines; a bigger booster, like Colossus's, it expends on purpose with fc.expend(reason), which the loss report then records quietly as intended. fc.mission.profile says whether the mission is 'rtls', and fc.mission.boosterTarget names the platform, 'SHIP' or 'LZ-1'. fc.setPlane({ target: fc.mission.boosterTarget }) makes forward mean towards home, so that error and crossrange in every prediction are the misses to null.

The numbers of this lesson are constants just above the booster's code: RETURN_NEED = 0.055 and RETURN_PER_KM = 0.00011 set the drone-ship staging, RTLS_RESERVE_REAL = 0.155 and RTLS_GAMMA = 38 the return to site; FLIP_MAX_Q = 400 holds the flip; BOOSTBACK_AIM_REAL = 400 leaves the boostback's planned stop point long, and RTLS_PITCH = 8 raises the return-to-site boostback above the horizon; EB_PLAN and EB_PLAN_RTLS are the entry burns the plans assume, to 1,150 and 850 m/s; LANDING_KEEP = 0.00075 is the 300 kg the landing leaves. The workbench's return budget is RETURN_BOOSTER = 1800 and RETURN_UPPER = 650 in src/engine/readiness.ts, and the legs' reserve is in src/sim/parts.ts and src/sim/contact.ts.

What the program does not have is a plan for the whole return in advance. Each burn is found by a predictor — fc.predict() coasts the point-mass stage forward through the air, with any burns it is given — and the program closes the loop by predicting again, several times a second. The predictors have no lift; the fins are left to trim what they miss. The weakness the audit found is at the very end: in the last 60 m the booster's sideways correction can leave it moving 2.5–4 m/s across the deck, and 9 of 80 drone-ship landings in its matrix were graded hard for it.

Try it

Choose the Aster preset and the Full mission — orbit & return from anywhere example on the default mission, and lock the weather seed at 7 in the Mission panel. Launch and watch the booster's lines in the console:

booster → flip | alt 70.6 km | v 2370 m/s
booster → boostback | alt 122.0 km | v 2154 m/s
booster → coast | alt 130.2 km | v 1850 m/s
booster → entryBurn | alt 55.0 km | v 2199 m/s
entry burn cut at 962 m/s: planned stop 0.37 km along, -0.00 km across, landing leaves 344 kg (on target)
booster → landingBurn | alt 1.5 km | v 225 m/s

Now set the profile to Return to launch site and fly the same seed. The booster separates fourteen seconds earlier, at 55 km, and its boostback lasts 59 s instead of 14: booster → boostback | alt 79.0 km | v 1726 m/s, then booster → coast | alt 121.7 km | v 858 m/s. Its entry burn stops at 662 m/s, and it lands on Landing Zone 1.

Then find the edges of the table. On the orbital profile, raise the payload in the Vehicle panel to 6.5 t: the upper stage still makes its 200 km orbit, with 0.3 t to spare above its landing reserve. At 7 t it reaches the reserve first and stops in a lower, oval orbit, 158 by 196 km; at 7.5 t it stops short of orbit altogether. On Return to launch site the same edge is between 2.5 and 3 t. Last, move the launch site to Vandenberg with the profile still Return to launch site and the payload back at 1.5 t: the booster comes home, and the upper stage does not reach orbit. Lower the payload to 0.9 t, and it does.

What carries forward

Every return in this lesson ended in a burn that could not hover and could not wait. Powered descent guidance is about that burn: the ignition window, what the throttle buys, and the guidance laws that fly it. The booster's entry burn, and why the air it avoids is so dangerous, is the subject of Coming back through the atmosphere. And the staging that decides how much a booster has to spend is the subject of Why rockets are built in stages.