# How a rocket booster lands itself

> A process map exported from forks.world (https://forks.world). Author: Brian. Source: https://forks.world/p/cmv0kpuod004xjn06cgqjzaua
> It describes who does what, in what order, and with which technology. Read the plain-language sections first; the JSON at the end is the exact, complete data.

## Summary

- 17 steps across 2 layers
- Persona: Mission control
- Technology / systems: The booster, The second stage, The landing zone

## How to read this file

- A process is made of **layers**. The main layer is the top level; any step of kind `subprocess` opens a detail layer with its own lanes and steps.
- **Lanes** are either persona (people/roles) or technology (systems). Each step belongs to one lane; `using` lists tools a person uses for that step.
- Step kinds: `start`, `task`, `decision` (its arrows carry the answer as a label), `subprocess`, `end`.

## How a rocket booster lands itself

Lanes:
- Mission control: person / role (id `team`)
- The booster: technology / system (id `booster`)
- The second stage: technology / system (id `stage2`)
- The landing zone: technology / system (id `pad`)

Steps, in the order they run:

1. **Countdown and fueling** [start; Mission control; id `r1`]
   - then Liftoff: nine engines fire
2. **Liftoff: nine engines fire** [task; The booster; id `r2`]
   - then Climb to the edge of space
3. **Climb to the edge of space** [task; The booster; id `r3`]
   - then Stage separation
4. **Stage separation** [task; The booster; id `r4`]
   - then The second stage carries the payload on to orbit
5. **The second stage carries the payload on to orbit** [task; The second stage; id `r5`]
   - then Flip around and fire the boostback engines
6. **Flip around and fire the boostback engines** [subprocess; The booster; id `r6`], opens the detail layer "The boostback burn"
   - then A re-entry burn slows it down
7. **A re-entry burn slows it down** [task; The booster; id `r7`]
   - then Steer with grid fins through the atmosphere
8. **Steer with grid fins through the atmosphere** [task; The booster; id `r8`]
   - then Landing burn: one engine fires
9. **Landing burn: one engine fires** [task; The booster; id `r9`]
   - then Deploy the landing legs
10. **Deploy the landing legs** [task; The booster; id `r10`]
   - then Are conditions safe to land?
11. **Are conditions safe to land?** [decision; Mission control; id `r11`]
   - if "Yes" go to Touchdown on a droneship or a landing pad; if "No" go to Divert to the ocean
12. **Touchdown on a droneship or a landing pad** [task; The landing zone; id `r12`]
   - then Inspect and reuse the booster
13. **Inspect and reuse the booster** [end; Mission control; id `r14`]
14. **Divert to the ocean** [end; The booster; id `r13`]

```mermaid
flowchart LR
  subgraph l_team["Mission control"]
    n_r1(["Countdown and fueling"])
    n_r11{"Are conditions safe to land?"}
    n_r14(["Inspect and reuse the booster"])
  end
  subgraph l_booster["The booster"]
    n_r2["Liftoff: nine engines fire"]
    n_r3["Climb to the edge of space"]
    n_r4["Stage separation"]
    n_r6[["Flip around and fire the boostback engines"]]
    n_r7["A re-entry burn slows it down"]
    n_r8["Steer with grid fins through the atmosphere"]
    n_r9["Landing burn: one engine fires"]
    n_r10["Deploy the landing legs"]
    n_r13(["Divert to the ocean"])
  end
  subgraph l_stage2["The second stage"]
    n_r5["The second stage carries the payload on to orbit"]
  end
  subgraph l_pad["The landing zone"]
    n_r12["Touchdown on a droneship or a landing pad"]
  end
  n_r1 --> n_r2
  n_r2 --> n_r3
  n_r3 --> n_r4
  n_r4 --> n_r5
  n_r5 --> n_r6
  n_r6 --> n_r7
  n_r7 --> n_r8
  n_r8 --> n_r9
  n_r9 --> n_r10
  n_r10 --> n_r11
  n_r11 -->|"Yes"| n_r12
  n_r11 -->|"No"| n_r13
  n_r12 --> n_r14
```

### The boostback burn (detail of step "Flip around and fire the boostback engines")

Lanes:
- The booster: technology / system (id `booster`)

Steps, in the order they run:

1. **Rotate 180 degrees** [start; The booster; id `b1`]
   - then Fire to reverse direction toward the landing site
2. **Fire to reverse direction toward the landing site** [task; The booster; id `b2`]
   - then Shut down and coast
3. **Shut down and coast** [end; The booster; id `b3`]

```mermaid
flowchart LR
  subgraph l_booster["The booster"]
    n_b1(["Rotate 180 degrees"])
    n_b2["Fire to reverse direction toward the landing site"]
    n_b3(["Shut down and coast"])
  end
  n_b1 --> n_b2
  n_b2 --> n_b3
```

## Full data (JSON)

```json
{
  "title": "How a rocket booster lands itself",
  "maps": {
    "m_back": {
      "id": "m_back",
      "lanes": [
        {
          "id": "booster",
          "name": "The booster",
          "type": "system"
        }
      ],
      "steps": [
        {
          "id": "b1",
          "kind": "start",
          "lane": "booster",
          "next": [
            {
              "to": "b2"
            }
          ],
          "uses": [],
          "label": "Rotate 180 degrees"
        },
        {
          "id": "b2",
          "kind": "task",
          "lane": "booster",
          "next": [
            {
              "to": "b3"
            }
          ],
          "uses": [],
          "label": "Fire to reverse direction toward the landing site"
        },
        {
          "id": "b3",
          "kind": "end",
          "lane": "booster",
          "next": [],
          "uses": [],
          "label": "Shut down and coast"
        }
      ],
      "title": "The boostback burn",
      "parent": {
        "map": "m_root",
        "step": "r6"
      }
    },
    "m_root": {
      "id": "m_root",
      "lanes": [
        {
          "id": "team",
          "name": "Mission control",
          "type": "person"
        },
        {
          "id": "booster",
          "name": "The booster",
          "type": "system"
        },
        {
          "id": "stage2",
          "name": "The second stage",
          "type": "system"
        },
        {
          "id": "pad",
          "name": "The landing zone",
          "type": "system"
        }
      ],
      "steps": [
        {
          "id": "r1",
          "kind": "start",
          "lane": "team",
          "next": [
            {
              "to": "r2"
            }
          ],
          "uses": [],
          "label": "Countdown and fueling"
        },
        {
          "id": "r2",
          "kind": "task",
          "lane": "booster",
          "next": [
            {
              "to": "r3"
            }
          ],
          "uses": [],
          "label": "Liftoff: nine engines fire"
        },
        {
          "id": "r3",
          "kind": "task",
          "lane": "booster",
          "next": [
            {
              "to": "r4"
            }
          ],
          "uses": [],
          "label": "Climb to the edge of space"
        },
        {
          "id": "r4",
          "kind": "task",
          "lane": "booster",
          "next": [
            {
              "to": "r5"
            }
          ],
          "uses": [],
          "label": "Stage separation"
        },
        {
          "id": "r5",
          "kind": "task",
          "lane": "stage2",
          "next": [
            {
              "to": "r6"
            }
          ],
          "uses": [],
          "label": "The second stage carries the payload on to orbit"
        },
        {
          "id": "r6",
          "kind": "subprocess",
          "lane": "booster",
          "next": [
            {
              "to": "r7"
            }
          ],
          "uses": [],
          "child": "m_back",
          "label": "Flip around and fire the boostback engines"
        },
        {
          "id": "r7",
          "kind": "task",
          "lane": "booster",
          "next": [
            {
              "to": "r8"
            }
          ],
          "uses": [],
          "label": "A re-entry burn slows it down"
        },
        {
          "id": "r8",
          "kind": "task",
          "lane": "booster",
          "next": [
            {
              "to": "r9"
            }
          ],
          "uses": [],
          "label": "Steer with grid fins through the atmosphere"
        },
        {
          "id": "r9",
          "kind": "task",
          "lane": "booster",
          "next": [
            {
              "to": "r10"
            }
          ],
          "uses": [],
          "label": "Landing burn: one engine fires"
        },
        {
          "id": "r10",
          "kind": "task",
          "lane": "booster",
          "next": [
            {
              "to": "r11"
            }
          ],
          "uses": [],
          "label": "Deploy the landing legs"
        },
        {
          "id": "r11",
          "kind": "decision",
          "lane": "team",
          "next": [
            {
              "to": "r12",
              "label": "Yes"
            },
            {
              "to": "r13",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Are conditions safe to land?"
        },
        {
          "id": "r13",
          "kind": "end",
          "lane": "booster",
          "next": [],
          "uses": [],
          "label": "Divert to the ocean"
        },
        {
          "id": "r12",
          "kind": "task",
          "lane": "pad",
          "next": [
            {
              "to": "r14"
            }
          ],
          "uses": [],
          "label": "Touchdown on a droneship or a landing pad"
        },
        {
          "id": "r14",
          "kind": "end",
          "lane": "team",
          "next": [],
          "uses": [],
          "label": "Inspect and reuse the booster"
        }
      ],
      "title": "How a rocket booster lands itself",
      "parent": null
    }
  }
}
```
