# How Apollo 13 got home after an explosion in space

> A process map exported from forks.world (https://forks.world). Author: Brian. Source: https://forks.world/p/cmv221yfs000ci206afkxth99
> 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

- 18 steps across 2 layers
- Persona: Three astronauts, Mission Control, Engineers on the ground
- Technology / systems: Spacecraft

## Pain points

Where this process hurts, worst first:

- **Breathing air is turning toxic: the filters do not fit** (How Apollo 13 got home after an explosion in space; critical): Carbon dioxide was building toward a deadly level
- **Freezing cold and little water for days** (How Apollo 13 got home after an explosion in space; painful): Temperatures near freezing and almost no drinking water

## 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 Apollo 13 got home after an explosion in space

Lanes:
- Three astronauts: person / role (id `crew`)
- Mission Control: person / role (id `houston`)
- Spacecraft: technology / system (id `module`)
- Engineers on the ground: person / role (id `engineers`)

Steps, in the order they run:

1. **Heading to the Moon, they are asked to stir the oxygen tanks** [start; Three astronauts; id `a1`]
   - then A damaged wire sparks inside tank 2 and the tank explodes
2. **A damaged wire sparks inside tank 2 and the tank explodes** [task; Spacecraft; id `a2`]
   - then "Houston, we've had a problem"
3. **"Houston, we've had a problem"** [task; Three astronauts; id `a3`]
   - then Is the command module losing power and oxygen?
4. **Is the command module losing power and oxygen?** [decision; Mission Control; id `a4`]
   - if "Yes" go to Abort the Moon landing and use the lunar module as a lifeboat; if "No" go to Check the data again
5. **Abort the Moon landing and use the lunar module as a lifeboat** [task; Mission Control; id `a5`]
   - then Power down the command module to save battery
6. **Power down the command module to save battery** [task; Three astronauts; id `a6`]
   - then Use the Moon lander engine to put the ship on a path home
7. **Use the Moon lander engine to put the ship on a path home** [task; Spacecraft; id `a7`]
   - then Breathing air is turning toxic: the filters do not fit
8. **Breathing air is turning toxic: the filters do not fit** [task; Three astronauts; id `a8`] ⚠ PAIN POINT (critical): Carbon dioxide was building toward a deadly level
   - then Build an adapter from socks, tape and plastic that the crew can copy on the spot
9. **Build an adapter from socks, tape and plastic that the crew can copy on the spot** [subprocess; Engineers on the ground; id `a9`], opens the detail layer "The air filter made from spare parts"
   - then Freezing cold and little water for days
10. **Freezing cold and little water for days** [task; Three astronauts; id `a10`] ⚠ PAIN POINT (painful): Temperatures near freezing and almost no drinking water
   - then Write a new procedure to restart the command module, never done this way
11. **Write a new procedure to restart the command module, never done this way** [task; Engineers on the ground; id `a11`]
   - then Release the damaged service module and see the damage
12. **Release the damaged service module and see the damage** [task; Three astronauts; id `a12`]
   - then Reenter the atmosphere and splash down safely
13. **Reenter the atmosphere and splash down safely** [end; Spacecraft; id `a13`]
14. **Check the data again** [task; Mission Control; id `a4a`]
   - then Is the command module losing power and oxygen?

```mermaid
flowchart LR
  subgraph l_crew["Three astronauts"]
    n_a1(["Heading to the Moon, they are asked to stir the oxygen tanks"])
    n_a3["'Houston, we've had a problem'"]
    n_a6["Power down the command module to save battery"]
    n_a8["Breathing air is turning toxic: the filters do not fit"]
    n_a10["Freezing cold and little water for days"]
    n_a12["Release the damaged service module and see the damage"]
  end
  subgraph l_houston["Mission Control"]
    n_a4{"Is the command module losing power and oxygen?"}
    n_a4a["Check the data again"]
    n_a5["Abort the Moon landing and use the lunar module as a lifeboat"]
  end
  subgraph l_module["Spacecraft"]
    n_a2["A damaged wire sparks inside tank 2 and the tank explodes"]
    n_a7["Use the Moon lander engine to put the ship on a path home"]
    n_a13(["Reenter the atmosphere and splash down safely"])
  end
  subgraph l_engineers["Engineers on the ground"]
    n_a9[["Build an adapter from socks, tape and plastic that the crew can copy on the spot"]]
    n_a11["Write a new procedure to restart the command module, never done this way"]
  end
  n_a1 --> n_a2
  n_a2 --> n_a3
  n_a3 --> n_a4
  n_a4 -->|"Yes"| n_a5
  n_a4 -->|"No"| n_a4a
  n_a4a --> n_a4
  n_a5 --> n_a6
  n_a6 --> n_a7
  n_a7 --> n_a8
  n_a8 --> n_a9
  n_a9 --> n_a10
  n_a10 --> n_a11
  n_a11 --> n_a12
  n_a12 --> n_a13
```

### The air filter made from spare parts (detail of step "Build an adapter from socks, tape and plastic that the crew can copy on the spot")

Lanes:
- Three astronauts: person / role (id `crew`)
- Engineers on the ground: person / role (id `engineers`)

Steps, in the order they run:

1. **Round filters in one ship, square filters in the other** [start; Engineers on the ground; id `s1`]
   - then List every item the crew has onboard
2. **List every item the crew has onboard** [task; Engineers on the ground; id `s2`]
   - then Design an adapter from those items and read the steps over the radio
3. **Design an adapter from those items and read the steps over the radio** [task; Engineers on the ground; id `s3`]
   - then Build it and the air clears
4. **Build it and the air clears** [end; Three astronauts; id `s4`]

```mermaid
flowchart LR
  subgraph l_crew["Three astronauts"]
    n_s4(["Build it and the air clears"])
  end
  subgraph l_engineers["Engineers on the ground"]
    n_s1(["Round filters in one ship, square filters in the other"])
    n_s2["List every item the crew has onboard"]
    n_s3["Design an adapter from those items and read the steps over the radio"]
  end
  n_s1 --> n_s2
  n_s2 --> n_s3
  n_s3 --> n_s4
```

## Full data (JSON)

```json
{
  "title": "How Apollo 13 got home after an explosion in space",
  "maps": {
    "m_root": {
      "id": "m_root",
      "lanes": [
        {
          "id": "crew",
          "name": "Three astronauts",
          "type": "person"
        },
        {
          "id": "houston",
          "name": "Mission Control",
          "type": "person"
        },
        {
          "id": "module",
          "name": "Spacecraft",
          "type": "system"
        },
        {
          "id": "engineers",
          "name": "Engineers on the ground",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "a1",
          "kind": "start",
          "lane": "crew",
          "next": [
            {
              "to": "a2"
            }
          ],
          "uses": [],
          "label": "Heading to the Moon, they are asked to stir the oxygen tanks"
        },
        {
          "id": "a2",
          "kind": "task",
          "lane": "module",
          "next": [
            {
              "to": "a3"
            }
          ],
          "uses": [],
          "label": "A damaged wire sparks inside tank 2 and the tank explodes"
        },
        {
          "id": "a3",
          "kind": "task",
          "lane": "crew",
          "next": [
            {
              "to": "a4"
            }
          ],
          "uses": [],
          "label": "\"Houston, we've had a problem\""
        },
        {
          "id": "a4",
          "kind": "decision",
          "lane": "houston",
          "next": [
            {
              "to": "a5",
              "label": "Yes"
            },
            {
              "to": "a4a",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Is the command module losing power and oxygen?"
        },
        {
          "id": "a4a",
          "kind": "task",
          "lane": "houston",
          "next": [
            {
              "to": "a4"
            }
          ],
          "uses": [],
          "label": "Check the data again"
        },
        {
          "id": "a5",
          "kind": "task",
          "lane": "houston",
          "next": [
            {
              "to": "a6"
            }
          ],
          "uses": [],
          "label": "Abort the Moon landing and use the lunar module as a lifeboat"
        },
        {
          "id": "a6",
          "kind": "task",
          "lane": "crew",
          "next": [
            {
              "to": "a7"
            }
          ],
          "uses": [],
          "label": "Power down the command module to save battery"
        },
        {
          "id": "a7",
          "kind": "task",
          "lane": "module",
          "next": [
            {
              "to": "a8"
            }
          ],
          "uses": [],
          "label": "Use the Moon lander engine to put the ship on a path home"
        },
        {
          "id": "a8",
          "kind": "task",
          "lane": "crew",
          "next": [
            {
              "to": "a9"
            }
          ],
          "pain": {
            "note": "Carbon dioxide was building toward a deadly level",
            "level": 3
          },
          "uses": [],
          "label": "Breathing air is turning toxic: the filters do not fit"
        },
        {
          "id": "a9",
          "kind": "subprocess",
          "lane": "engineers",
          "next": [
            {
              "to": "a10"
            }
          ],
          "uses": [],
          "child": "m_scrubber",
          "label": "Build an adapter from socks, tape and plastic that the crew can copy on the spot"
        },
        {
          "id": "a10",
          "kind": "task",
          "lane": "crew",
          "next": [
            {
              "to": "a11"
            }
          ],
          "pain": {
            "note": "Temperatures near freezing and almost no drinking water",
            "level": 2
          },
          "uses": [],
          "label": "Freezing cold and little water for days"
        },
        {
          "id": "a11",
          "kind": "task",
          "lane": "engineers",
          "next": [
            {
              "to": "a12"
            }
          ],
          "uses": [],
          "label": "Write a new procedure to restart the command module, never done this way"
        },
        {
          "id": "a12",
          "kind": "task",
          "lane": "crew",
          "next": [
            {
              "to": "a13"
            }
          ],
          "uses": [],
          "label": "Release the damaged service module and see the damage"
        },
        {
          "id": "a13",
          "kind": "end",
          "lane": "module",
          "next": [],
          "uses": [],
          "label": "Reenter the atmosphere and splash down safely"
        }
      ],
      "title": "How Apollo 13 got home after an explosion in space",
      "parent": null
    },
    "m_scrubber": {
      "id": "m_scrubber",
      "lanes": [
        {
          "id": "crew",
          "name": "Three astronauts",
          "type": "person"
        },
        {
          "id": "engineers",
          "name": "Engineers on the ground",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "s1",
          "kind": "start",
          "lane": "engineers",
          "next": [
            {
              "to": "s2"
            }
          ],
          "uses": [],
          "label": "Round filters in one ship, square filters in the other"
        },
        {
          "id": "s2",
          "kind": "task",
          "lane": "engineers",
          "next": [
            {
              "to": "s3"
            }
          ],
          "uses": [],
          "label": "List every item the crew has onboard"
        },
        {
          "id": "s3",
          "kind": "task",
          "lane": "engineers",
          "next": [
            {
              "to": "s4"
            }
          ],
          "uses": [],
          "label": "Design an adapter from those items and read the steps over the radio"
        },
        {
          "id": "s4",
          "kind": "end",
          "lane": "crew",
          "next": [],
          "uses": [],
          "label": "Build it and the air clears"
        }
      ],
      "title": "The air filter made from spare parts",
      "parent": {
        "map": "m_root",
        "step": "a9"
      }
    }
  }
}
```
