Invent: You couldn’t make it up!

Ryan North, the author of How to Invent Everything, offers a humorous yet practical guide to rebuilding civilization from scratch. If you’re looking to invent things effectively, here are some key principles inspired by his approach:

1. Identify the Problem First

  • Great inventions solve real problems. Before inventing, ask:
    • What pain point does this address?
    • Is there a simpler solution?
  • Example: The wheel wasn’t invented until humans needed to move heavy things efficiently.

2. Steal (or Borrow) Ideas

  • Most inventions are improvements on existing concepts.
  • Example: The printing press combined wine presses (screw mechanism) and movable type (already used in China).

3. Test and Iterate

  • Prototype quickly, fail fast, and refine.
  • Example: Thomas Edison tested thousands of filament materials before finding the right one for the light bulb.

4. Leverage Interdisciplinary Thinking

  • Combine knowledge from different fields.
  • Example: GPS required advances in physics (relativity), engineering (satellites), and computing.

5. Document Everything

  • Write down failures and successes—this accelerates progress.
  • Example: Leonardo da Vinci’s notebooks preserved ideas centuries ahead of their time.

6. Work Within Constraints

  • Scarcity fuels creativity.
  • Example: The Apollo program achieved the moon landing with 1960s computing power.

7. Consider Unintended Consequences

  • Every invention has side effects (e.g., social media → misinformation).
  • Ask: How could this be misused?

8. Make It Scalable

  • Can your invention be mass-produced or widely adopted?
  • Example: The steam engine became revolutionary only when standardized.

9. Collaborate

  • Innovation thrives in networks. Share ideas and build on others’ work.
  • Example: Open-source software (Linux, Wikipedia) relies on collaboration.

10. Have Fun

  • Playfulness leads to breakthroughs (e.g., Post-it Notes came from a failed adhesive experiment).

For more, check out How to Invent Everything: A Survival Guide for the Stranded Time Traveler—it’s a hilarious deep dive into the fundamentals of civilization’s greatest inventions!

graph TD

    %% ENTRY POINT
    Start["Start here: Can you remember what you had for lunch yesterday?"]
    Start -->|Yes| RDG1["Have you read this magazine before?"]
    Start -->|No| MC1["You are probably a Neanderthal."]

    RDG1 -->|Yes| FAN1["You are a fan. Likely 2020s."]
    RDG1 -->|No| SMRT1["Do you have a smartphone?"]

    SMRT1 -->|Yes| TIME1["You are in the 2007–2025 CE range."]
    SMRT1 -->|No| INT1["Are you using the internet?"]

    INT1 -->|Yes| TIME2["You are between 1990–2007 CE."]
    INT1 -->|No| TECH1["Are there floppy disks in your workspace?"]

    TECH1 -->|Yes| TIME3["You are probably in the 1980s or early 1990s CE."]
    TECH1 -->|No| PROTEST1["Are you protesting about nuclear weapons?"]

    PROTEST1 -->|Yes| TIME4["You are likely in the 1960s–1980s CE."]
    PROTEST1 -->|No| BEATLE1["Are the Beatles still together?"]

    BEATLE1 -->|Yes| TIME5["You are in the 1960s CE."]
    BEATLE1 -->|No| WW2["Has World War II ended?"]

    WW2 -->|Yes| TIME6["You are in the late 1940s–1950s CE."]
    WW2 -->|No| WAR1["Are you in a world war?"]

    WAR1 -->|Yes| TIME7["You are in the 1914–1945 CE era."]
    WAR1 -->|No| RADIO1["Do you own a radio?"]

    RADIO1 -->|Yes| TIME8["You are in the early 1900s CE."]
    RADIO1 -->|No| STEAM1["Are you using steam power?"]

    STEAM1 -->|Yes| TIME9["You are in the 1800s CE."]
    STEAM1 -->|No| IND1["Has the industrial revolution happened?"]

    IND1 -->|Yes| TIME10["You are in the late 1700s CE."]
    IND1 -->|No| PRINT1["Do books exist?"]

    PRINT1 -->|Yes| TIME11["You are in the 1500s–1600s CE."]
    PRINT1 -->|No| WRITING1["Do you write things down?"]

    WRITING1 -->|Yes| TIME12["You are in the classical age (e.g. Rome, Greece)."]
    WRITING1 -->|No| AGRI1["Do you farm crops?"]

    AGRI1 -->|Yes| TIME13["You are in the Neolithic period."]
    AGRI1 -->|No| FIRE1["Do you use fire?"]

    FIRE1 -->|Yes| TIME14["You are a hunter-gatherer (Paleolithic)."]
    FIRE1 -->|No| TIME15["You are pre-human."]

    %% EARLY HUMAN BRANCH (Right Page)

    TIME14 --> NEAND1["Is everyone you know Homo sapiens?"]
    NEAND1 -->|Yes| JUSTHUMANS["JUST HUMANS"]
    NEAND1 -->|No| BOTH["BOTH"]
    NEAND1 -->|Only Neanderthals| JUSTNEANDS["JUST NEANDERTHALS"]

    JUSTHUMANS --> HSAPIENS1["You are in the period after 39,000 BCE."]
    BOTH --> HSAPIENS2["You are in the period 55,000 to 39,000 BCE."]
    JUSTNEANDS --> NEANDONLY["You are between 200,000 BCE and 55,000 BCE."]

    %% Constellation flow
    TIME14 --> CONST1["Cool, it's night now. Look up: which stars form a pattern you recognise?"]

    CONST1 --> URSA["Big Dipper/Ursa Major"] --> CONSTDATE1["You're around 30,000 BCE."]
    CONST1 --> ORION["Orion"] --> CONSTDATE2["You're around 32,000 BCE."]
    CONST1 --> PLEIADES["Pleiades"] --> CONSTDATE3["You're around 17,000 BCE."]
    CONST1 --> CROSS["Southern Cross"] --> CONSTDATE4["You're around 5,000 BCE."]
    CONST1 --> DONTR["I don't recognise any of them"] --> CONSTCHECK["There is a warning: either you're somewhere with cloud cover or not yet human."]

    %% EARLIER THAN FIRE
    TIME15 --> TOOLS1["Have you made tools by hitting rocks together?"]
    TOOLS1 -->|Yes| STONE1["You are in the Lower Palaeolithic."]
    TOOLS1 -->|No| HOMINID1["Are you definitely a hominid?"]

    HOMINID1 -->|Yes| STONE2["You are an early hominin, maybe Australopithecus."]
    HOMINID1 -->|No| LIFE1["Are you alive?"]

    LIFE1 -->|Yes| EVOLVE1["You are a non-human animal or early life form."]
    LIFE1 -->|No| NONLIVING["You are a rock. A timeless rock."]

    STONE1 --> TOOLTYPE["How long since your stone tools stopped being symmetrical?"]

    TOOLTYPE -->|0.5 million years| C_EARLY["C-Early"]
    TOOLTYPE -->|1.2 million years| C_LAM["C-LAM"]
    TOOLTYPE -->|2.3 million years| C_Oldowan["C-Oldowan"]
    TOOLTYPE -->|3.3 million years| C_Lomekwi["C-Lomekwi"]
    TOOLTYPE -->|More than 3.3 million years| PRETOOLS["You predate the earliest known tools. You're pre-technological."]

    C_EARLY --> GEOLOC
    C_LAM --> GEOLOC
    C_Oldowan --> GEOLOC
    C_Lomekwi --> GEOLOC

    GEOLOC["Where (roughly) are you?"] --> Africa
    GEOLOC --> Europe
    GEOLOC --> Asia
    GEOLOC --> Australia
    GEOLOC --> Americas
    GEOLOC --> NoData["No data"]

    Africa --> CONTEXT1["You are likely a hominin active in Africa. Possibly Homo habilis."]
    Europe --> CONTEXT2["You are likely a Homo erectus or similar species in Europe."]
    Asia --> CONTEXT3["You may be a Denisovan or Homo erectus."]
    Australia --> CONTEXT4["You are out of place in time – humans arrived much later."]
    Americas --> CONTEXT5["You are way too early for the Americas."]
    NoData --> CONTEXT6["You are in a location with no fossil record yet."]

output as svg:graph TD

%% ENTRY POINT
Start["Start here: Can you remember what you had for lunch yesterday?"]
Start -->|Yes| RDG1["Have you read this magazine before?"]
Start -->|No| MC1["You are probably a Neanderthal."]

RDG1 -->|Yes| FAN1["You are a fan. Likely 2020s."]
RDG1 -->|No| SMRT1["Do you have a smartphone?"]

SMRT1 -->|Yes| TIME1["You are in the 2007–2025 CE range."]
SMRT1 -->|No| INT1["Are you using the internet?"]

INT1 -->|Yes| TIME2["You are between 1990–2007 CE."]
INT1 -->|No| TECH1["Are there floppy disks in your workspace?"]

TECH1 -->|Yes| TIME3["You are probably in the 1980s or early 1990s CE."]
TECH1 -->|No| PROTEST1["Are you protesting about nuclear weapons?"]

PROTEST1 -->|Yes| TIME4["You are likely in the 1960s–1980s CE."]
PROTEST1 -->|No| BEATLE1["Are the Beatles still together?"]

BEATLE1 -->|Yes| TIME5["You are in the 1960s CE."]
BEATLE1 -->|No| WW2["Has World War II ended?"]

WW2 -->|Yes| TIME6["You are in the late 1940s–1950s CE."]
WW2 -->|No| WAR1["Are you in a world war?"]

WAR1 -->|Yes| TIME7["You are in the 1914–1945 CE era."]
WAR1 -->|No| RADIO1["Do you own a radio?"]

RADIO1 -->|Yes| TIME8["You are in the early 1900s CE."]
RADIO1 -->|No| STEAM1["Are you using steam power?"]

STEAM1 -->|Yes| TIME9["You are in the 1800s CE."]
STEAM1 -->|No| IND1["Has the industrial revolution happened?"]

IND1 -->|Yes| TIME10["You are in the late 1700s CE."]
IND1 -->|No| PRINT1["Do books exist?"]

PRINT1 -->|Yes| TIME11["You are in the 1500s–1600s CE."]
PRINT1 -->|No| WRITING1["Do you write things down?"]

WRITING1 -->|Yes| TIME12["You are in the classical age (e.g. Rome, Greece)."]
WRITING1 -->|No| AGRI1["Do you farm crops?"]

AGRI1 -->|Yes| TIME13["You are in the Neolithic period."]
AGRI1 -->|No| FIRE1["Do you use fire?"]

FIRE1 -->|Yes| TIME14["You are a hunter-gatherer (Paleolithic)."]
FIRE1 -->|No| TIME15["You are pre-human."]

%% EARLY HUMAN BRANCH (Right Page)

TIME14 --> NEAND1["Is everyone you know Homo sapiens?"]
NEAND1 -->|Yes| JUSTHUMANS["JUST HUMANS"]
NEAND1 -->|No| BOTH["BOTH"]
NEAND1 -->|Only Neanderthals| JUSTNEANDS["JUST NEANDERTHALS"]

JUSTHUMANS --> HSAPIENS1["You are in the period after 39,000 BCE."]
BOTH --> HSAPIENS2["You are in the period 55,000 to 39,000 BCE."]
JUSTNEANDS --> NEANDONLY["You are between 200,000 BCE and 55,000 BCE."]

%% Constellation flow
TIME14 --> CONST1["Cool, it's night now. Look up: which stars form a pattern you recognise?"]

CONST1 --> URSA["Big Dipper/Ursa Major"] --> CONSTDATE1["You're around 30,000 BCE."]
CONST1 --> ORION["Orion"] --> CONSTDATE2["You're around 32,000 BCE."]
CONST1 --> PLEIADES["Pleiades"] --> CONSTDATE3["You're around 17,000 BCE."]
CONST1 --> CROSS["Southern Cross"] --> CONSTDATE4["You're around 5,000 BCE."]
CONST1 --> DONTR["I don't recognise any of them"] --> CONSTCHECK["There is a warning: either you're somewhere with cloud cover or not yet human."]

%% EARLIER THAN FIRE
TIME15 --> TOOLS1["Have you made tools by hitting rocks together?"]
TOOLS1 -->|Yes| STONE1["You are in the Lower Palaeolithic."]
TOOLS1 -->|No| HOMINID1["Are you definitely a hominid?"]

HOMINID1 -->|Yes| STONE2["You are an early hominin, maybe Australopithecus."]
HOMINID1 -->|No| LIFE1["Are you alive?"]

LIFE1 -->|Yes| EVOLVE1["You are a non-human animal or early life form."]
LIFE1 -->|No| NONLIVING["You are a rock. A timeless rock."]

STONE1 --> TOOLTYPE["How long since your stone tools stopped being symmetrical?"]

TOOLTYPE -->|0.5 million years| C_EARLY["C-Early"]
TOOLTYPE -->|1.2 million years| C_LAM["C-LAM"]
TOOLTYPE -->|2.3 million years| C_Oldowan["C-Oldowan"]
TOOLTYPE -->|3.3 million years| C_Lomekwi["C-Lomekwi"]
TOOLTYPE -->|More than 3.3 million years| PRETOOLS["You predate the earliest known tools. You're pre-technological."]

C_EARLY --> GEOLOC
C_LAM --> GEOLOC
C_Oldowan --> GEOLOC
C_Lomekwi --> GEOLOC

GEOLOC["Where (roughly) are you?"] --> Africa
GEOLOC --> Europe
GEOLOC --> Asia
GEOLOC --> Australia
GEOLOC --> Americas
GEOLOC --> NoData["No data"]

Africa --> CONTEXT1["You are likely a hominin active in Africa. Possibly Homo habilis."]
Europe --> CONTEXT2["You are likely a Homo erectus or similar species in Europe."]
Asia --> CONTEXT3["You may be a Denisovan or Homo erectus."]
Australia --> CONTEXT4["You are out of place in time – humans arrived much later."]
Americas --> CONTEXT5["You are way too early for the Americas."]
NoData --> CONTEXT6["You are in a location with no fossil record yet."]


Start here: Can you remember what you had for lunch yesterday?


Have you read this magazine before?


You are probably a Neanderthal.


You are a fan. Likely 2020s.


Do you have a smartphone?

For creating complex flowcharts like yours, here are the best tools to generate them as SVG:

1. Mermaid.js (Best for Code-Based Flowcharts)

Your diagram is already written in Mermaid syntax—this is the easiest way to generate an SVG automatically.

How to use:

  1. Online Editor:
  1. Programmatically (Node.js):
   npm install @mermaid-js/mermaid-cli
   mmdc -i flowchart.mmd -o flowchart.svg

2. Graphviz (For Advanced Layout Control)

If you need precise control over node positioning, use DOT language (Graphviz).

Example DOT code:

digraph G {
  "Start" -> "RDG1" [label="Yes"]
  "Start" -> "MC1" [label="No"]
  "RDG1" -> "FAN1" [label="Yes"]
  "RDG1" -> "SMRT1" [label="No"]
  // ... rest of your flow
}

Convert to SVG:

dot -Tsvg flowchart.dot -o flowchart.svg

3. Draw.io (Free & Interactive)

  • Best for manual tweaking
  • Supports Mermaid import (newer versions)
  • Export directly to SVG

🔗 https://app.diagrams.net/


4. Inkscape (Manual SVG Editing)

If you need to edit the SVG afterward, use Inkscape (free/open-source).

🔗 https://inkscape.org/


Recommendation:

  • Use Mermaid (since your chart is already in Mermaid syntax).
  • If layout issues arise, try Graphviz for more control.
  • For manual adjustments, Draw.io or Inkscape.

Would you like me to generate the full SVG for you using one of these methods?

Comments

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.