# How a lightning bolt is born

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

- 27 steps across 3 layers
- Persona: Ice crystals and soft hail, The bolt
- Technology / systems: The thundercloud, Ground and tall objects, The air (an insulator)

## 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 lightning bolt is born

Lanes:
- Ice crystals and soft hail: person / role (id `ice`)
- The thundercloud: technology / system (id `cloud`)
- Ground and tall objects: technology / system (id `ground`)
- The air (an insulator): technology / system (id `air`)
- The bolt: person / role (id `bolt`)

Steps, in the order they run:

1. **Warm, wet air surges upward into a storm cloud** [start; The thundercloud; id `l1`]
   - then Ice crystals and soft hail collide
2. **Ice crystals and soft hail collide** [subprocess; Ice crystals and soft hail; id `l2`], opens the detail layer "How the cloud charges up"
   - then Cloud sorts itself: positive on top, negative at the bottom
3. **Cloud sorts itself: positive on top, negative at the bottom** [task; The thundercloud; id `l3`]
   - then The ground below turns positive, shadowing the storm
4. **The ground below turns positive, shadowing the storm** [task; Ground and tall objects; id `l4`]
   - then Strong enough to break the air down?
5. **Strong enough to break the air down?** [decision; The air (an insulator); id `l5`]
   - if "Yes" go to The stepped leader zigzags down in 50 m jumps; if "No" go to Collisions keep piling up charge
6. **The stepped leader zigzags down in 50 m jumps** [subprocess; The bolt; id `l6`], opens the detail layer "The stepped leader"
   - then Streamers reach up from trees, towers and people
7. **Streamers reach up from trees, towers and people** [task; Ground and tall objects; id `l7`]
   - then Do leader and streamer meet?
8. **Do leader and streamer meet?** [decision; The bolt; id `l8`]
   - if "Yes" go to Return stroke: the blinding flash races up at 100,000 km/s; if "No" go to Leader branches and searches for another path
9. **Return stroke: the blinding flash races up at 100,000 km/s** [task; The bolt; id `l9`]
   - then Air in the channel heats to 30,000 °C, hotter than the Sun's surface
10. **Air in the channel heats to 30,000 °C, hotter than the Sun's surface** [task; The air (an insulator); id `l10`]
   - then Superheated air explodes outward: thunder
11. **Superheated air explodes outward: thunder** [task; The air (an insulator); id `l11`]
   - then Charge left in the cloud?
12. **Charge left in the cloud?** [decision; The thundercloud; id `l12`]
   - if "Yes — another stroke" go to Return stroke: the blinding flash races up at 100,000 km/s; if "No" go to Storm recharges, or fades away
13. **Storm recharges, or fades away** [end; The thundercloud; id `l14`]
14. **Leader branches and searches for another path** [task; The bolt; id `l7a`]
   - then Do leader and streamer meet?
15. **Collisions keep piling up charge** [task; The thundercloud; id `l5a`]
   - then Strong enough to break the air down?

```mermaid
flowchart LR
  subgraph l_ice["Ice crystals and soft hail"]
    n_l2[["Ice crystals and soft hail collide"]]
  end
  subgraph l_cloud["The thundercloud"]
    n_l1(["Warm, wet air surges upward into a storm cloud"])
    n_l3["Cloud sorts itself: positive on top, negative at the bottom"]
    n_l5a["Collisions keep piling up charge"]
    n_l12{"Charge left in the cloud?"}
    n_l14(["Storm recharges, or fades away"])
  end
  subgraph l_ground["Ground and tall objects"]
    n_l4["The ground below turns positive, shadowing the storm"]
    n_l7["Streamers reach up from trees, towers and people"]
  end
  subgraph l_air["The air (an insulator)"]
    n_l5{"Strong enough to break the air down?"}
    n_l10["Air in the channel heats to 30,000 °C, hotter than the Sun's surface"]
    n_l11["Superheated air explodes outward: thunder"]
  end
  subgraph l_bolt["The bolt"]
    n_l6[["The stepped leader zigzags down in 50 m jumps"]]
    n_l8{"Do leader and streamer meet?"}
    n_l7a["Leader branches and searches for another path"]
    n_l9["Return stroke: the blinding flash races up at 100,000 km/s"]
  end
  n_l1 --> n_l2
  n_l2 --> n_l3
  n_l3 --> n_l4
  n_l4 --> n_l5
  n_l5 -->|"Yes"| n_l6
  n_l5 -->|"No"| n_l5a
  n_l5a --> n_l5
  n_l6 --> n_l7
  n_l7 --> n_l8
  n_l8 -->|"Yes"| n_l9
  n_l8 -->|"No"| n_l7a
  n_l7a --> n_l8
  n_l9 --> n_l10
  n_l10 --> n_l11
  n_l11 --> n_l12
  n_l12 -->|"Yes — another stroke"| n_l9
  n_l12 -->|"No"| n_l14
```

### How the cloud charges up (detail of step "Ice crystals and soft hail collide")

Lanes:
- Ice crystals and soft hail: person / role (id `ice`)
- The thundercloud: technology / system (id `cloud`)

Steps, in the order they run:

1. **Heavy soft hail (graupel) falls through the cloud** [start; Ice crystals and soft hail; id `c1`]
   - then It collides with rising, lighter ice crystals
2. **It collides with rising, lighter ice crystals** [task; Ice crystals and soft hail; id `c2`]
   - then Is the air warmer than about -15 °C?
3. **Is the air warmer than about -15 °C?** [decision; Ice crystals and soft hail; id `c3`]
   - if "Yes" go to Graupel picks up positive charge; if "No" go to Graupel picks up negative charge
4. **Graupel picks up positive charge** [task; Ice crystals and soft hail; id `c4`]
   - then Light crystals carry one charge up, graupel carries the other down
5. **Light crystals carry one charge up, graupel carries the other down** [end; The thundercloud; id `c6`]
6. **Graupel picks up negative charge** [task; Ice crystals and soft hail; id `c5`]
   - then Light crystals carry one charge up, graupel carries the other down

```mermaid
flowchart LR
  subgraph l_ice["Ice crystals and soft hail"]
    n_c1(["Heavy soft hail (graupel) falls through the cloud"])
    n_c2["It collides with rising, lighter ice crystals"]
    n_c3{"Is the air warmer than about -15 °C?"}
    n_c4["Graupel picks up positive charge"]
    n_c5["Graupel picks up negative charge"]
  end
  subgraph l_cloud["The thundercloud"]
    n_c6(["Light crystals carry one charge up, graupel carries the other down"])
  end
  n_c1 --> n_c2
  n_c2 --> n_c3
  n_c3 -->|"Yes"| n_c4
  n_c3 -->|"No"| n_c5
  n_c4 --> n_c6
  n_c5 --> n_c6
```

### The stepped leader (detail of step "The stepped leader zigzags down in 50 m jumps")

Lanes:
- The bolt: person / role (id `bolt`)
- The air (an insulator): technology / system (id `air`)

Steps, in the order they run:

1. **Leader pushes down a short step** [start; The bolt; id `d1`]
   - then Air ahead breaks down into plasma?
2. **Air ahead breaks down into plasma?** [decision; The air (an insulator); id `d2`]
   - if "Yes" go to Charge flows in and the leader steps forward; if "No" go to Pause for 50 microseconds and try another direction
3. **Charge flows in and the leader steps forward** [task; The bolt; id `d3`]
   - then Near the ground yet?
4. **Near the ground yet?** [decision; The bolt; id `d5`]
   - if "Yes" go to Ready to connect; if "No — step again" go to Leader pushes down a short step
5. **Ready to connect** [end; The bolt; id `d6`]
6. **Pause for 50 microseconds and try another direction** [task; The bolt; id `d4`]
   - then Leader pushes down a short step

```mermaid
flowchart LR
  subgraph l_bolt["The bolt"]
    n_d1(["Leader pushes down a short step"])
    n_d3["Charge flows in and the leader steps forward"]
    n_d4["Pause for 50 microseconds and try another direction"]
    n_d5{"Near the ground yet?"}
    n_d6(["Ready to connect"])
  end
  subgraph l_air["The air (an insulator)"]
    n_d2{"Air ahead breaks down into plasma?"}
  end
  n_d1 --> n_d2
  n_d2 -->|"Yes"| n_d3
  n_d2 -->|"No"| n_d4
  n_d3 --> n_d5
  n_d4 --> n_d1
  n_d5 -->|"Yes"| n_d6
  n_d5 -->|"No — step again"| n_d1
```

## Full data (JSON)

```json
{
  "title": "How a lightning bolt is born",
  "maps": {
    "m_root": {
      "id": "m_root",
      "lanes": [
        {
          "id": "ice",
          "name": "Ice crystals and soft hail",
          "type": "person"
        },
        {
          "id": "cloud",
          "name": "The thundercloud",
          "type": "system"
        },
        {
          "id": "ground",
          "name": "Ground and tall objects",
          "type": "system"
        },
        {
          "id": "air",
          "name": "The air (an insulator)",
          "type": "system"
        },
        {
          "id": "bolt",
          "name": "The bolt",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "l1",
          "kind": "start",
          "lane": "cloud",
          "next": [
            {
              "to": "l2"
            }
          ],
          "uses": [],
          "label": "Warm, wet air surges upward into a storm cloud"
        },
        {
          "id": "l2",
          "kind": "subprocess",
          "lane": "ice",
          "next": [
            {
              "to": "l3"
            }
          ],
          "uses": [],
          "child": "m_charge",
          "label": "Ice crystals and soft hail collide"
        },
        {
          "id": "l3",
          "kind": "task",
          "lane": "cloud",
          "next": [
            {
              "to": "l4"
            }
          ],
          "uses": [],
          "label": "Cloud sorts itself: positive on top, negative at the bottom"
        },
        {
          "id": "l4",
          "kind": "task",
          "lane": "ground",
          "next": [
            {
              "to": "l5"
            }
          ],
          "uses": [],
          "label": "The ground below turns positive, shadowing the storm"
        },
        {
          "id": "l5",
          "kind": "decision",
          "lane": "air",
          "next": [
            {
              "to": "l6",
              "label": "Yes"
            },
            {
              "to": "l5a",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Strong enough to break the air down?"
        },
        {
          "id": "l5a",
          "kind": "task",
          "lane": "cloud",
          "next": [
            {
              "to": "l5"
            }
          ],
          "uses": [],
          "label": "Collisions keep piling up charge"
        },
        {
          "id": "l6",
          "kind": "subprocess",
          "lane": "bolt",
          "next": [
            {
              "to": "l7"
            }
          ],
          "uses": [],
          "child": "m_leader",
          "label": "The stepped leader zigzags down in 50 m jumps"
        },
        {
          "id": "l7",
          "kind": "task",
          "lane": "ground",
          "next": [
            {
              "to": "l8"
            }
          ],
          "uses": [],
          "label": "Streamers reach up from trees, towers and people"
        },
        {
          "id": "l8",
          "kind": "decision",
          "lane": "bolt",
          "next": [
            {
              "to": "l9",
              "label": "Yes"
            },
            {
              "to": "l7a",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Do leader and streamer meet?"
        },
        {
          "id": "l7a",
          "kind": "task",
          "lane": "bolt",
          "next": [
            {
              "to": "l8"
            }
          ],
          "uses": [],
          "label": "Leader branches and searches for another path"
        },
        {
          "id": "l9",
          "kind": "task",
          "lane": "bolt",
          "next": [
            {
              "to": "l10"
            }
          ],
          "uses": [],
          "label": "Return stroke: the blinding flash races up at 100,000 km/s"
        },
        {
          "id": "l10",
          "kind": "task",
          "lane": "air",
          "next": [
            {
              "to": "l11"
            }
          ],
          "uses": [],
          "label": "Air in the channel heats to 30,000 °C, hotter than the Sun's surface"
        },
        {
          "id": "l11",
          "kind": "task",
          "lane": "air",
          "next": [
            {
              "to": "l12"
            }
          ],
          "uses": [],
          "label": "Superheated air explodes outward: thunder"
        },
        {
          "id": "l12",
          "kind": "decision",
          "lane": "cloud",
          "next": [
            {
              "to": "l9",
              "label": "Yes — another stroke"
            },
            {
              "to": "l14",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Charge left in the cloud?"
        },
        {
          "id": "l14",
          "kind": "end",
          "lane": "cloud",
          "next": [],
          "uses": [],
          "label": "Storm recharges, or fades away"
        }
      ],
      "title": "How a lightning bolt is born",
      "parent": null
    },
    "m_charge": {
      "id": "m_charge",
      "lanes": [
        {
          "id": "ice",
          "name": "Ice crystals and soft hail",
          "type": "person"
        },
        {
          "id": "cloud",
          "name": "The thundercloud",
          "type": "system"
        }
      ],
      "steps": [
        {
          "id": "c1",
          "kind": "start",
          "lane": "ice",
          "next": [
            {
              "to": "c2"
            }
          ],
          "uses": [],
          "label": "Heavy soft hail (graupel) falls through the cloud"
        },
        {
          "id": "c2",
          "kind": "task",
          "lane": "ice",
          "next": [
            {
              "to": "c3"
            }
          ],
          "uses": [],
          "label": "It collides with rising, lighter ice crystals"
        },
        {
          "id": "c3",
          "kind": "decision",
          "lane": "ice",
          "next": [
            {
              "to": "c4",
              "label": "Yes"
            },
            {
              "to": "c5",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Is the air warmer than about -15 °C?"
        },
        {
          "id": "c4",
          "kind": "task",
          "lane": "ice",
          "next": [
            {
              "to": "c6"
            }
          ],
          "uses": [],
          "label": "Graupel picks up positive charge"
        },
        {
          "id": "c5",
          "kind": "task",
          "lane": "ice",
          "next": [
            {
              "to": "c6"
            }
          ],
          "uses": [],
          "label": "Graupel picks up negative charge"
        },
        {
          "id": "c6",
          "kind": "end",
          "lane": "cloud",
          "next": [],
          "uses": [],
          "label": "Light crystals carry one charge up, graupel carries the other down"
        }
      ],
      "title": "How the cloud charges up",
      "parent": {
        "map": "m_root",
        "step": "l2"
      }
    },
    "m_leader": {
      "id": "m_leader",
      "lanes": [
        {
          "id": "bolt",
          "name": "The bolt",
          "type": "person"
        },
        {
          "id": "air",
          "name": "The air (an insulator)",
          "type": "system"
        }
      ],
      "steps": [
        {
          "id": "d1",
          "kind": "start",
          "lane": "bolt",
          "next": [
            {
              "to": "d2"
            }
          ],
          "uses": [],
          "label": "Leader pushes down a short step"
        },
        {
          "id": "d2",
          "kind": "decision",
          "lane": "air",
          "next": [
            {
              "to": "d3",
              "label": "Yes"
            },
            {
              "to": "d4",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Air ahead breaks down into plasma?"
        },
        {
          "id": "d3",
          "kind": "task",
          "lane": "bolt",
          "next": [
            {
              "to": "d5"
            }
          ],
          "uses": [],
          "label": "Charge flows in and the leader steps forward"
        },
        {
          "id": "d4",
          "kind": "task",
          "lane": "bolt",
          "next": [
            {
              "to": "d1"
            }
          ],
          "uses": [],
          "label": "Pause for 50 microseconds and try another direction"
        },
        {
          "id": "d5",
          "kind": "decision",
          "lane": "bolt",
          "next": [
            {
              "to": "d6",
              "label": "Yes"
            },
            {
              "to": "d1",
              "label": "No — step again"
            }
          ],
          "uses": [],
          "label": "Near the ground yet?"
        },
        {
          "id": "d6",
          "kind": "end",
          "lane": "bolt",
          "next": [],
          "uses": [],
          "label": "Ready to connect"
        }
      ],
      "title": "The stepped leader",
      "parent": {
        "map": "m_root",
        "step": "l6"
      }
    }
  }
}
```
