# Photosynthesis: how a leaf turns sunlight into sugar

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

- 38 steps across 5 layers
- Persona: The plant, Leaf cell
- Technology / systems: The Sun, Chloroplast

## 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`.

## Photosynthesis: how a leaf turns sunlight into sugar

Lanes:
- The Sun: technology / system (id `sun`)
- The plant: person / role (id `plant`)
- Leaf cell: person / role (id `leaf`)
- Chloroplast: technology / system (id `chl`)

Steps, in the order they run:

1. **Sunlight streams toward Earth** [start; The Sun; id `p1`]
   - then Roots drink water up from the soil
2. **Roots drink water up from the soil** [task; The plant; id `p2`]
   - then Leaf opens its stomata to breathe in CO2
3. **Leaf opens its stomata to breathe in CO2** [task; The plant; id `p3`]
   - then Enough water and CO2 on hand?
4. **Enough water and CO2 on hand?** [decision; Leaf cell; id `p4`]
   - if "Yes" go to Capture the light with chlorophyll; if "No" go to Close the stomata to stop losing water
5. **Capture the light with chlorophyll** [subprocess; Chloroplast; id `p5`], opens the detail layer "The light reactions"
   - then Build sugar from CO2 in the Calvin cycle
6. **Build sugar from CO2 in the Calvin cycle** [subprocess; Chloroplast; id `p6`], opens the detail layer "The Calvin cycle"
   - then More sugar than the plant needs right now?
7. **More sugar than the plant needs right now?** [decision; Leaf cell; id `p7`]
   - if "Yes" go to Store the extra as starch; if "No" go to Burn sugar now for growth and repair
8. **Store the extra as starch** [task; Leaf cell; id `p8`]
   - then Exhale oxygen through the stomata
9. **Exhale oxygen through the stomata** [task; The plant; id `p10`]
   - then A green, growing plant quietly feeding the planet
10. **A green, growing plant quietly feeding the planet** [end; The plant; id `p11`]
11. **Burn sugar now for growth and repair** [task; Leaf cell; id `p9`]
   - then Exhale oxygen through the stomata
12. **Close the stomata to stop losing water** [task; The plant; id `p4a`]
   - then Wait for rain or cooler air
13. **Wait for rain or cooler air** [task; The plant; id `p4b`]
   - then Leaf opens its stomata to breathe in CO2

```mermaid
flowchart LR
  subgraph l_sun["The Sun"]
    n_p1(["Sunlight streams toward Earth"])
  end
  subgraph l_plant["The plant"]
    n_p2["Roots drink water up from the soil"]
    n_p3["Leaf opens its stomata to breathe in CO2"]
    n_p4a["Close the stomata to stop losing water"]
    n_p4b["Wait for rain or cooler air"]
    n_p10["Exhale oxygen through the stomata"]
    n_p11(["A green, growing plant quietly feeding the planet"])
  end
  subgraph l_leaf["Leaf cell"]
    n_p4{"Enough water and CO2 on hand?"}
    n_p7{"More sugar than the plant needs right now?"}
    n_p8["Store the extra as starch"]
    n_p9["Burn sugar now for growth and repair"]
  end
  subgraph l_chl["Chloroplast"]
    n_p5[["Capture the light with chlorophyll"]]
    n_p6[["Build sugar from CO2 in the Calvin cycle"]]
  end
  n_p1 --> n_p2
  n_p2 --> n_p3
  n_p3 --> n_p4
  n_p4 -->|"Yes"| n_p5
  n_p4 -->|"No"| n_p4a
  n_p4a --> n_p4b
  n_p4b --> n_p3
  n_p5 --> n_p6
  n_p6 --> n_p7
  n_p7 -->|"Yes"| n_p8
  n_p7 -->|"No"| n_p9
  n_p8 --> n_p10
  n_p9 --> n_p10
  n_p10 --> n_p11
```

### Carbon fixation (detail of step "CO2 meets a 5-carbon sugar called RuBP")

Lanes:
- Chloroplast: technology / system (id `chl`)

Steps, in the order they run:

1. **Rubisco, the most common enzyme on Earth, grabs a molecule** [start; Chloroplast; id `f1`]
   - then Was it really CO2?
2. **Was it really CO2?** [decision; Chloroplast; id `f2`]
   - if "Yes" go to A 6-carbon intermediate forms and instantly splits in two; if "No" go to It grabbed oxygen by mistake: photorespiration wastes energy
3. **A 6-carbon intermediate forms and instantly splits in two** [task; Chloroplast; id `f3`]
   - then Two 3-carbon molecules ready for the cycle
4. **Two 3-carbon molecules ready for the cycle** [end; Chloroplast; id `f4`]
5. **It grabbed oxygen by mistake: photorespiration wastes energy** [task; Chloroplast; id `f2a`]
   - then Release it and try again
6. **Release it and try again** [task; Chloroplast; id `f2b`]
   - then Rubisco, the most common enzyme on Earth, grabs a molecule

```mermaid
flowchart LR
  subgraph l_chl["Chloroplast"]
    n_f1(["Rubisco, the most common enzyme on Earth, grabs a molecule"])
    n_f2{"Was it really CO2?"}
    n_f2a["It grabbed oxygen by mistake: photorespiration wastes energy"]
    n_f2b["Release it and try again"]
    n_f3["A 6-carbon intermediate forms and instantly splits in two"]
    n_f4(["Two 3-carbon molecules ready for the cycle"])
  end
  n_f1 --> n_f2
  n_f2 -->|"Yes"| n_f3
  n_f2 -->|"No"| n_f2a
  n_f2a --> n_f2b
  n_f2b --> n_f1
  n_f3 --> n_f4
```

### The electron transport chain (detail of step "Electrons slide down the transport chain")

Lanes:
- Chloroplast: technology / system (id `chl`)

Steps, in the order they run:

1. **Electron enters Photosystem II** [start; Chloroplast; id `t1`]
   - then Plastoquinone ferries it onward
2. **Plastoquinone ferries it onward** [task; Chloroplast; id `t2`]
   - then Hydrogen ions pumped into the thylakoid space
3. **Hydrogen ions pumped into the thylakoid space** [task; Chloroplast; id `t3`]
   - then Enough ion pressure built up?
4. **Enough ion pressure built up?** [decision; Chloroplast; id `t4`]
   - if "Yes" go to Ions rush out through ATP synthase, spinning it like a turbine; if "No — keep pumping" go to Hydrogen ions pumped into the thylakoid space
5. **Ions rush out through ATP synthase, spinning it like a turbine** [task; Chloroplast; id `t5`]
   - then Photosystem I re-energizes the electron
6. **Photosystem I re-energizes the electron** [task; Chloroplast; id `t6`]
   - then NADP+ catches it and becomes NADPH
7. **NADP+ catches it and becomes NADPH** [end; Chloroplast; id `t7`]

```mermaid
flowchart LR
  subgraph l_chl["Chloroplast"]
    n_t1(["Electron enters Photosystem II"])
    n_t2["Plastoquinone ferries it onward"]
    n_t3["Hydrogen ions pumped into the thylakoid space"]
    n_t4{"Enough ion pressure built up?"}
    n_t5["Ions rush out through ATP synthase, spinning it like a turbine"]
    n_t6["Photosystem I re-energizes the electron"]
    n_t7(["NADP+ catches it and becomes NADPH"])
  end
  n_t1 --> n_t2
  n_t2 --> n_t3
  n_t3 --> n_t4
  n_t4 -->|"Yes"| n_t5
  n_t4 -->|"No — keep pumping"| n_t3
  n_t5 --> n_t6
  n_t6 --> n_t7
```

### The light reactions (detail of step "Capture the light with chlorophyll")

Lanes:
- The Sun: technology / system (id `sun`)
- Chloroplast: technology / system (id `chl`)

Steps, in the order they run:

1. **A photon hits a chlorophyll molecule** [start; The Sun; id `l1`]
   - then Chlorophyll is excited and an electron jumps free
2. **Chlorophyll is excited and an electron jumps free** [task; Chloroplast; id `l2`]
   - then Water splits: oxygen floats off, hydrogen stays
3. **Water splits: oxygen floats off, hydrogen stays** [task; Chloroplast; id `l3`]
   - then Electrons slide down the transport chain
4. **Electrons slide down the transport chain** [subprocess; Chloroplast; id `l4`], opens the detail layer "The electron transport chain"
   - then Energy stored as ATP and NADPH, the cell's batteries
5. **Energy stored as ATP and NADPH, the cell's batteries** [task; Chloroplast; id `l5`]
   - then Batteries charged and ready for the Calvin cycle
6. **Batteries charged and ready for the Calvin cycle** [end; Chloroplast; id `l6`]

```mermaid
flowchart LR
  subgraph l_sun["The Sun"]
    n_l1(["A photon hits a chlorophyll molecule"])
  end
  subgraph l_chl["Chloroplast"]
    n_l2["Chlorophyll is excited and an electron jumps free"]
    n_l3["Water splits: oxygen floats off, hydrogen stays"]
    n_l4[["Electrons slide down the transport chain"]]
    n_l5["Energy stored as ATP and NADPH, the cell's batteries"]
    n_l6(["Batteries charged and ready for the Calvin cycle"])
  end
  n_l1 --> n_l2
  n_l2 --> n_l3
  n_l3 --> n_l4
  n_l4 --> n_l5
  n_l5 --> n_l6
```

### The Calvin cycle (detail of step "Build sugar from CO2 in the Calvin cycle")

Lanes:
- Chloroplast: technology / system (id `chl`)

Steps, in the order they run:

1. **CO2 meets a 5-carbon sugar called RuBP** [subprocess; Chloroplast; id `c1`], opens the detail layer "Carbon fixation"
   - then Spend ATP and NADPH to rearrange the carbons
2. **Spend ATP and NADPH to rearrange the carbons** [task; Chloroplast; id `c2`]
   - then Pull out one 3-carbon sugar for every 3 CO2
3. **Pull out one 3-carbon sugar for every 3 CO2** [task; Chloroplast; id `c3`]
   - then Use the rest to rebuild RuBP
4. **Use the rest to rebuild RuBP** [task; Chloroplast; id `c4`]
   - then Another turn of the cycle?
5. **Another turn of the cycle?** [decision; Chloroplast; id `c5`]
   - if "Yes" go to CO2 meets a 5-carbon sugar called RuBP; if "No" go to Two 3-carbon sugars join into glucose
6. **Two 3-carbon sugars join into glucose** [end; Chloroplast; id `c6`]

```mermaid
flowchart LR
  subgraph l_chl["Chloroplast"]
    n_c1[["CO2 meets a 5-carbon sugar called RuBP"]]
    n_c2["Spend ATP and NADPH to rearrange the carbons"]
    n_c3["Pull out one 3-carbon sugar for every 3 CO2"]
    n_c4["Use the rest to rebuild RuBP"]
    n_c5{"Another turn of the cycle?"}
    n_c6(["Two 3-carbon sugars join into glucose"])
  end
  n_c1 --> n_c2
  n_c2 --> n_c3
  n_c3 --> n_c4
  n_c4 --> n_c5
  n_c5 -->|"Yes"| n_c1
  n_c5 -->|"No"| n_c6
```

## Full data (JSON)

```json
{
  "title": "Photosynthesis: how a leaf turns sunlight into sugar",
  "maps": {
    "m_fix": {
      "id": "m_fix",
      "lanes": [
        {
          "id": "chl",
          "name": "Chloroplast",
          "type": "system"
        }
      ],
      "steps": [
        {
          "id": "f1",
          "kind": "start",
          "lane": "chl",
          "next": [
            {
              "to": "f2"
            }
          ],
          "uses": [],
          "label": "Rubisco, the most common enzyme on Earth, grabs a molecule"
        },
        {
          "id": "f2",
          "kind": "decision",
          "lane": "chl",
          "next": [
            {
              "to": "f3",
              "label": "Yes"
            },
            {
              "to": "f2a",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Was it really CO2?"
        },
        {
          "id": "f2a",
          "kind": "task",
          "lane": "chl",
          "next": [
            {
              "to": "f2b"
            }
          ],
          "uses": [],
          "label": "It grabbed oxygen by mistake: photorespiration wastes energy"
        },
        {
          "id": "f2b",
          "kind": "task",
          "lane": "chl",
          "next": [
            {
              "to": "f1"
            }
          ],
          "uses": [],
          "label": "Release it and try again"
        },
        {
          "id": "f3",
          "kind": "task",
          "lane": "chl",
          "next": [
            {
              "to": "f4"
            }
          ],
          "uses": [],
          "label": "A 6-carbon intermediate forms and instantly splits in two"
        },
        {
          "id": "f4",
          "kind": "end",
          "lane": "chl",
          "next": [],
          "uses": [],
          "label": "Two 3-carbon molecules ready for the cycle"
        }
      ],
      "title": "Carbon fixation",
      "parent": {
        "map": "m_calvin",
        "step": "c1"
      }
    },
    "m_root": {
      "id": "m_root",
      "lanes": [
        {
          "id": "sun",
          "name": "The Sun",
          "type": "system"
        },
        {
          "id": "plant",
          "name": "The plant",
          "type": "person"
        },
        {
          "id": "leaf",
          "name": "Leaf cell",
          "type": "person"
        },
        {
          "id": "chl",
          "name": "Chloroplast",
          "type": "system"
        }
      ],
      "steps": [
        {
          "id": "p1",
          "kind": "start",
          "lane": "sun",
          "next": [
            {
              "to": "p2"
            }
          ],
          "uses": [],
          "label": "Sunlight streams toward Earth"
        },
        {
          "id": "p2",
          "kind": "task",
          "lane": "plant",
          "next": [
            {
              "to": "p3"
            }
          ],
          "uses": [],
          "label": "Roots drink water up from the soil"
        },
        {
          "id": "p3",
          "kind": "task",
          "lane": "plant",
          "next": [
            {
              "to": "p4"
            }
          ],
          "uses": [],
          "label": "Leaf opens its stomata to breathe in CO2"
        },
        {
          "id": "p4",
          "kind": "decision",
          "lane": "leaf",
          "next": [
            {
              "to": "p5",
              "label": "Yes"
            },
            {
              "to": "p4a",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Enough water and CO2 on hand?"
        },
        {
          "id": "p4a",
          "kind": "task",
          "lane": "plant",
          "next": [
            {
              "to": "p4b"
            }
          ],
          "uses": [],
          "label": "Close the stomata to stop losing water"
        },
        {
          "id": "p4b",
          "kind": "task",
          "lane": "plant",
          "next": [
            {
              "to": "p3"
            }
          ],
          "uses": [],
          "label": "Wait for rain or cooler air"
        },
        {
          "id": "p5",
          "kind": "subprocess",
          "lane": "chl",
          "next": [
            {
              "to": "p6"
            }
          ],
          "uses": [],
          "child": "m_light",
          "label": "Capture the light with chlorophyll"
        },
        {
          "id": "p6",
          "kind": "subprocess",
          "lane": "chl",
          "next": [
            {
              "to": "p7"
            }
          ],
          "uses": [],
          "child": "m_calvin",
          "label": "Build sugar from CO2 in the Calvin cycle"
        },
        {
          "id": "p7",
          "kind": "decision",
          "lane": "leaf",
          "next": [
            {
              "to": "p8",
              "label": "Yes"
            },
            {
              "to": "p9",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "More sugar than the plant needs right now?"
        },
        {
          "id": "p8",
          "kind": "task",
          "lane": "leaf",
          "next": [
            {
              "to": "p10"
            }
          ],
          "uses": [],
          "label": "Store the extra as starch"
        },
        {
          "id": "p9",
          "kind": "task",
          "lane": "leaf",
          "next": [
            {
              "to": "p10"
            }
          ],
          "uses": [],
          "label": "Burn sugar now for growth and repair"
        },
        {
          "id": "p10",
          "kind": "task",
          "lane": "plant",
          "next": [
            {
              "to": "p11"
            }
          ],
          "uses": [],
          "label": "Exhale oxygen through the stomata"
        },
        {
          "id": "p11",
          "kind": "end",
          "lane": "plant",
          "next": [],
          "uses": [],
          "label": "A green, growing plant quietly feeding the planet"
        }
      ],
      "title": "Photosynthesis: how a leaf turns sunlight into sugar",
      "parent": null
    },
    "m_chain": {
      "id": "m_chain",
      "lanes": [
        {
          "id": "chl",
          "name": "Chloroplast",
          "type": "system"
        }
      ],
      "steps": [
        {
          "id": "t1",
          "kind": "start",
          "lane": "chl",
          "next": [
            {
              "to": "t2"
            }
          ],
          "uses": [],
          "label": "Electron enters Photosystem II"
        },
        {
          "id": "t2",
          "kind": "task",
          "lane": "chl",
          "next": [
            {
              "to": "t3"
            }
          ],
          "uses": [],
          "label": "Plastoquinone ferries it onward"
        },
        {
          "id": "t3",
          "kind": "task",
          "lane": "chl",
          "next": [
            {
              "to": "t4"
            }
          ],
          "uses": [],
          "label": "Hydrogen ions pumped into the thylakoid space"
        },
        {
          "id": "t4",
          "kind": "decision",
          "lane": "chl",
          "next": [
            {
              "to": "t5",
              "label": "Yes"
            },
            {
              "to": "t3",
              "label": "No — keep pumping"
            }
          ],
          "uses": [],
          "label": "Enough ion pressure built up?"
        },
        {
          "id": "t5",
          "kind": "task",
          "lane": "chl",
          "next": [
            {
              "to": "t6"
            }
          ],
          "uses": [],
          "label": "Ions rush out through ATP synthase, spinning it like a turbine"
        },
        {
          "id": "t6",
          "kind": "task",
          "lane": "chl",
          "next": [
            {
              "to": "t7"
            }
          ],
          "uses": [],
          "label": "Photosystem I re-energizes the electron"
        },
        {
          "id": "t7",
          "kind": "end",
          "lane": "chl",
          "next": [],
          "uses": [],
          "label": "NADP+ catches it and becomes NADPH"
        }
      ],
      "title": "The electron transport chain",
      "parent": {
        "map": "m_light",
        "step": "l4"
      }
    },
    "m_light": {
      "id": "m_light",
      "lanes": [
        {
          "id": "sun",
          "name": "The Sun",
          "type": "system"
        },
        {
          "id": "chl",
          "name": "Chloroplast",
          "type": "system"
        }
      ],
      "steps": [
        {
          "id": "l1",
          "kind": "start",
          "lane": "sun",
          "next": [
            {
              "to": "l2"
            }
          ],
          "uses": [],
          "label": "A photon hits a chlorophyll molecule"
        },
        {
          "id": "l2",
          "kind": "task",
          "lane": "chl",
          "next": [
            {
              "to": "l3"
            }
          ],
          "uses": [],
          "label": "Chlorophyll is excited and an electron jumps free"
        },
        {
          "id": "l3",
          "kind": "task",
          "lane": "chl",
          "next": [
            {
              "to": "l4"
            }
          ],
          "uses": [],
          "label": "Water splits: oxygen floats off, hydrogen stays"
        },
        {
          "id": "l4",
          "kind": "subprocess",
          "lane": "chl",
          "next": [
            {
              "to": "l5"
            }
          ],
          "uses": [],
          "child": "m_chain",
          "label": "Electrons slide down the transport chain"
        },
        {
          "id": "l5",
          "kind": "task",
          "lane": "chl",
          "next": [
            {
              "to": "l6"
            }
          ],
          "uses": [],
          "label": "Energy stored as ATP and NADPH, the cell's batteries"
        },
        {
          "id": "l6",
          "kind": "end",
          "lane": "chl",
          "next": [],
          "uses": [],
          "label": "Batteries charged and ready for the Calvin cycle"
        }
      ],
      "title": "The light reactions",
      "parent": {
        "map": "m_root",
        "step": "p5"
      }
    },
    "m_calvin": {
      "id": "m_calvin",
      "lanes": [
        {
          "id": "chl",
          "name": "Chloroplast",
          "type": "system"
        }
      ],
      "steps": [
        {
          "id": "c1",
          "kind": "subprocess",
          "lane": "chl",
          "next": [
            {
              "to": "c2"
            }
          ],
          "uses": [],
          "child": "m_fix",
          "label": "CO2 meets a 5-carbon sugar called RuBP"
        },
        {
          "id": "c2",
          "kind": "task",
          "lane": "chl",
          "next": [
            {
              "to": "c3"
            }
          ],
          "uses": [],
          "label": "Spend ATP and NADPH to rearrange the carbons"
        },
        {
          "id": "c3",
          "kind": "task",
          "lane": "chl",
          "next": [
            {
              "to": "c4"
            }
          ],
          "uses": [],
          "label": "Pull out one 3-carbon sugar for every 3 CO2"
        },
        {
          "id": "c4",
          "kind": "task",
          "lane": "chl",
          "next": [
            {
              "to": "c5"
            }
          ],
          "uses": [],
          "label": "Use the rest to rebuild RuBP"
        },
        {
          "id": "c5",
          "kind": "decision",
          "lane": "chl",
          "next": [
            {
              "to": "c1",
              "label": "Yes"
            },
            {
              "to": "c6",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Another turn of the cycle?"
        },
        {
          "id": "c6",
          "kind": "end",
          "lane": "chl",
          "next": [],
          "uses": [],
          "label": "Two 3-carbon sugars join into glucose"
        }
      ],
      "title": "The Calvin cycle",
      "parent": {
        "map": "m_root",
        "step": "p6"
      }
    }
  }
}
```
