« home

Physics Mindmap

A mindmap showing the main branches of physics, including Classical Mechanics, Quantum Mechanics, Relativity, Statistical Mechanics, High-Energy Physics, and Cosmology. Each branch is further divided into subcategories.


Physics Mindmap

  Download

PNGPDFSVG

  Code

  physics-mindmap.tex (50 lines)

\documentclass[tikz, svgnames]{standalone}

\usetikzlibrary{mindmap}

\begin{document}
\begin{tikzpicture}[
    mindmap, every node/.style=concept, concept color=orange, text=white,
    level 1/.append style={level distance=5cm, sibling angle=60, font=\large},
    level 2/.append style={level distance=3cm, sibling angle=45}
  ]

  \node{\textbf{\huge{Physics}}} [clockwise from=0]
  child [concept color=Gold, text=black] {
      node {Classical\\Mechanics} [clockwise from=60]
      child { node {Lagrangian \& Hamiltonian}}
      child { node {Chaos Theory}}
      child { node {Gases \& Fluids}}
      child { node {Electro\-dynamics}}
    }
  child [concept color=DarkBlue] {
      node {Quantum Mechanics} [counterclockwise from=250]
      child { node {Atomic Physics}}
      child { node {Molecular Physics}}
      child { node {Chemistry}}
    }
  child [concept color=teal] {
      node {Relativity} [clockwise from=270]
      child { node {Special}}
      child { node {General}}
    }
  child [concept color=red] {
      node {Statistical Mechanics} [counterclockwise from=140]
      child { node {Thermo\-dynamics}}
      child { node {Kinetic Gas Theory}}
      child { node {Condensed Matter}}
    }
  child [concept color=purple] {
      node {High-Energy} [counterclockwise from=80]
      child { node {Quantum Field Theory}}
      child { node {Particle Physics}}
      child { node {Nuclear Physics}}
    }
  child [concept color=DarkGreen] {
      node {Cosmology} [counterclockwise from=40]
      child { node {Astronomy}}
      child { node {Early Universe}}
    };
\end{tikzpicture}
\end{document}

  physics-mindmap.typ (66 lines)

#import "@preview/cetz:0.4.1": canvas, draw
#import draw: circle, content, line, on-layer

#set page(width: auto, height: auto, margin: 8pt)
#set text(weight: "bold")

#let node(pos, txt, color: orange, black-text: false, size: 1.0) = {
  circle(pos, radius: size, fill: color, stroke: 2pt + white)
  content(pos, text(
    fill: if black-text { black } else { white },
    size: if size > 1.2 { 11pt } else if size > 1.0 { 9pt } else { 8pt },
    weight: "bold",
    align(center, txt),
  ))
}

#let connect(from, to, color) = on-layer(-1, line(from, to, stroke: 3pt + color))

#canvas({
  let center = (0, 0)
  node(center, [Physics], size: 1.5)

  for (idx, (title, color, is-black, subs)) in (
    (
      [Classical\ Mechanics],
      rgb("#FFD700"),
      true,
      (
        ([Lagrange\ Hamilton], -48deg),
        ([Chaos\ Theory], -16deg),
        ([Gases\ & Fluids], 16deg),
        ([Electro\ dynamics], 48deg),
      ),
    ),
    (
      [High-Energy],
      purple,
      false,
      (([Particle\ Physics], 30deg), ([Quantum\ Field\ Theory], 70deg), ([Nuclear\ Physics], 110deg)),
    ),
    ([Cosmology], rgb("#006400"), false, (([Astronomy], 140deg), ([Early\ Universe], 100deg))),
    (
      [Statistical\ Mechanics],
      red,
      false,
      (([Thermo\ dynamics], 140deg), ([Kinetic\ Gas\ Theory], 180deg), ([Condensed\ Matter], 220deg)),
    ),
    ([Relativity], teal, false, (([Special], 270deg), ([General], 210deg))),
    (
      [Quantum\ Mechanics],
      rgb("#00008B"),
      false,
      (([Atomic\ Physics], 250deg), ([Molecular\ Physics], 290deg), ([Chemistry], 330deg)),
    ),
  ).enumerate() {
    let pos = (calc.cos(idx * 60deg) * 3.75, calc.sin(idx * 60deg) * 3.75)
    node(pos, title, color: color, black-text: is-black, size: 1.2)
    connect(center, pos, color)
    for (sub-title, angle) in subs {
      let sub-pos = (pos.at(0) + calc.cos(angle) * 3, pos.at(1) + calc.sin(angle) * 3)
      node(sub-pos, sub-title, color: color, black-text: is-black, size: 0.8)
      connect(pos, sub-pos, color)
    }
  }
})