Full chapter notes of physical world class 11

Here are comprehensive notes for Physical World - Class 11 Physics (Chapter 1):

🌍 Physical World - Class 11 Physics

1. What is Physics?

Physics is a branch of natural science that deals with the study of matter, energy, and their interactions. The word "physics" comes from the Greek word "fusis" meaning nature.
Physics aims to:
  • Understand the basic laws governing natural phenomena
  • Express them in precise mathematical language
  • Unify seemingly different phenomena under common principles

2. Scope and Excitement of Physics

Two Domains of Physics:

DomainScaleExamples
MacroscopicLarge-scale (everyday to astronomical)Motion of planets, fluid dynamics, optics
MicroscopicAtomic and sub-atomic scaleQuantum mechanics, nuclear physics

Why Physics is Exciting:

  • Unification of diverse phenomena (e.g., electricity + magnetism = electromagnetism)
  • Predicts new phenomena before experimental confirmation
  • Reduction: complex systems explained by simpler laws (e.g., thermodynamics from molecular motion)

3. Physics, Technology and Society

Discovery in PhysicsTechnological Application
Laws of motion, gravitationRockets, satellites
Electromagnetic inductionElectric generators, motors
Nuclear fission/fusionNuclear reactors, bombs
X-raysMedical diagnostics
Quantum mechanicsTransistors, computers, lasers
EM wavesRadio, TV, mobile phones
Physics drives technology, and technology in turn solves societal problems (energy, healthcare, communication).

4. Fundamental Forces in Nature

There are four fundamental forces in nature:

(a) Gravitational Force

  • Acts between all objects with mass
  • Weakest of all fundamental forces
  • Range: Infinite
  • Always attractive
  • Governed by Newton's Law of Gravitation
  • Responsible for: tides, planetary orbits, galaxy formation

(b) Electromagnetic Force

  • Acts between charged particles
  • Much stronger than gravity (~10³⁢ times)
  • Range: Infinite
  • Can be attractive or repulsive
  • Governed by Maxwell's equations
  • Responsible for: chemical bonds, friction, light, electricity

(c) Strong Nuclear Force

  • Acts between nucleons (protons and neutrons) inside the nucleus
  • Strongest of all forces
  • Range: Very short (~10⁻¹⁡ m)
  • Always attractive
  • Responsible for: nuclear stability, nuclear energy

(d) Weak Nuclear Force

  • Responsible for radioactive beta decay
  • Range: Very short (~10⁻¹⁢ m)
  • Stronger than gravity but weaker than EM and strong force
  • Acts between elementary particles (quarks, leptons)

Comparison Table:

ForceRelative StrengthRangeMediating Particle
Gravitational1 (weakest)InfiniteGraviton (theoretical)
Weak Nuclear10²⁡~10⁻¹⁢ mW, Z bosons
Electromagnetic10³⁢InfinitePhoton
Strong Nuclear10³⁸ (strongest)~10⁻¹⁡ mGluons

5. Nature of Physical Laws

Physical laws have several important features:

(a) Conservation Laws

These are the most fundamental laws in physics:
  • Conservation of Energy - Total energy of an isolated system remains constant
  • Conservation of Linear Momentum - Total momentum of an isolated system is conserved
  • Conservation of Angular Momentum - Angular momentum is conserved without external torque
  • Conservation of Charge - Total electric charge in an isolated system remains constant

(b) Symmetry and Conservation Laws

(Noether's Theorem)
  • Symmetry in time β†’ Conservation of Energy
  • Symmetry in space β†’ Conservation of Linear Momentum
  • Rotational symmetry β†’ Conservation of Angular Momentum

(c) Universality of Physical Laws

  • Same laws apply everywhere in the universe
  • Laws derived from Earth experiments are valid for distant galaxies

6. Unification in Physics

Physicists try to unify forces and phenomena:
Unified TheoryForces CombinedScientist(s)
ElectromagnetismElectricity + MagnetismMaxwell
Electroweak TheoryEM + Weak NuclearGlashow, Salam, Weinberg
Grand Unified Theory (GUT)Electroweak + Strong(In progress)
Theory of Everything (TOE)All four forces(Not yet achieved)

7. Reductionism in Physics

  • Complex phenomena can be explained in terms of simpler, more fundamental laws
  • Example: All matter is made of atoms β†’ atoms made of protons, neutrons, electrons β†’ protons/neutrons made of quarks
  • Thermodynamics can be reduced to statistical mechanics of molecules

8. Important Scientists and Contributions

ScientistContribution
Galileo GalileiLaws of motion, telescope, scientific method
Isaac NewtonLaws of motion, Universal gravitation, calculus
James Clerk MaxwellElectromagnetic theory, light as EM wave
Albert EinsteinSpecial & General Relativity, photoelectric effect
Niels BohrAtomic model, quantum theory
Max PlanckQuantum theory, Planck's constant
Ernest RutherfordNuclear model of atom
Marie CurieRadioactivity
C.V. RamanRaman effect (light scattering)
S.N. BoseBose-Einstein statistics

9. Physics and Other Sciences

Physics overlaps with:
  • Chemistry β†’ Physical chemistry, quantum chemistry
  • Biology β†’ Biophysics (X-ray crystallography, NMR, lasers in medicine)
  • Mathematics β†’ Mathematical physics
  • Astronomy β†’ Astrophysics, cosmology
  • Geology β†’ Seismology, geophysics

10. Key Terms to Remember

TermMeaning
HypothesisA tentative explanation for an observation
TheoryA well-tested explanation for a broad set of observations
ModelA simplified representation of a complex system
Scientific LawA concise description of a natural phenomenon
Inductive reasoningFrom specific observations to general conclusions
Deductive reasoningFrom general principles to specific predictions

11. NCERT Key Points Summary

  1. Physics deals with the study of the basic laws of nature and their manifestation in different phenomena.
  2. There are four fundamental forces: Gravitational, Electromagnetic, Strong Nuclear, and Weak Nuclear.
  3. The strong nuclear force is the strongest and gravitational force is the weakest.
  4. Conservation laws (energy, momentum, charge) are universal.
  5. Physics and technology are deeply linked - advancement in physics leads to new technology.
  6. Reductionism and unification are two important approaches in physics.
  7. Physical laws hold universally - same laws throughout the cosmos.

12. Important One-Liners for Exams

  • Physics = Science of matter, energy, space, and time
  • Gravitational force is always attractive; EM force can be both
  • Strong nuclear force holds the nucleus together
  • Weak nuclear force is responsible for beta decay
  • Photon mediates EM force; Gluon mediates strong force
  • Noether's theorem connects symmetry to conservation laws
  • Theory of Everything (TOE) = unification of all four forces (not yet achieved)
  • C.V. Raman - only Indian to win Nobel Prize in Physics (1930)

These notes cover the complete NCERT Class 11 Chapter 1 - Physical World syllabus. Good luck with your studies! πŸ“š

Create a study guide PDF with important definitions and formulas

Reading File
Running Command

mkdir -p /tmp/workspace/physical-world-studyguide

Writing File

~/physical-world-studyguide/generate_pdf.py

from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm, mm
from reportlab.platypus import (
    SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
    HRFlowable, KeepTogether, PageBreak
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import Flowable

# ── Color Palette ──────────────────────────────────────────────────────────────
DARK_BLUE   = colors.HexColor("#1A237E")
MID_BLUE    = colors.HexColor("#1565C0")
LIGHT_BLUE  = colors.HexColor("#E3F2FD")
ACCENT      = colors.HexColor("#FF6F00")
GREEN_BG    = colors.HexColor("#E8F5E9")
GREEN_DARK  = colors.HexColor("#2E7D32")
PURPLE_BG   = colors.HexColor("#EDE7F6")
PURPLE_DARK = colors.HexColor("#4527A0")
ORANGE_BG   = colors.HexColor("#FFF3E0")
ORANGE_DARK = colors.HexColor("#E65100")
WHITE       = colors.white
LIGHT_GRAY  = colors.HexColor("#F5F5F5")
MED_GRAY    = colors.HexColor("#BDBDBD")
DARK_GRAY   = colors.HexColor("#424242")

# ── Document setup ─────────────────────────────────────────────────────────────
OUTPUT = "/tmp/workspace/physical-world-studyguide/Physical_World_Class11_StudyGuide.pdf"
doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    leftMargin=1.8*cm, rightMargin=1.8*cm,
    topMargin=2*cm, bottomMargin=2*cm,
    title="Physical World – Class 11 Study Guide",
    author="Orris AI",
)

W, H = A4
CW = W - 3.6*cm   # content width

# ── Styles ─────────────────────────────────────────────────────────────────────
base = getSampleStyleSheet()

def style(name, **kw):
    s = ParagraphStyle(name, **kw)
    return s

TITLE_S = style("Title_S", fontName="Helvetica-Bold", fontSize=26,
                textColor=WHITE, alignment=TA_CENTER, leading=32)
SUBTITLE_S = style("Subtitle_S", fontName="Helvetica", fontSize=13,
                   textColor=colors.HexColor("#BBDEFB"), alignment=TA_CENTER, leading=18)
BADGE_S = style("Badge_S", fontName="Helvetica-Bold", fontSize=10,
                textColor=WHITE, alignment=TA_CENTER)

SECTION_S = style("Section_S", fontName="Helvetica-Bold", fontSize=14,
                  textColor=WHITE, alignment=TA_LEFT, leading=20, leftIndent=6)
SUBSECTION_S = style("Subsection_S", fontName="Helvetica-Bold", fontSize=11,
                     textColor=MID_BLUE, leading=16)
BODY_S = style("Body_S", fontName="Helvetica", fontSize=10,
               textColor=DARK_GRAY, leading=15, alignment=TA_JUSTIFY)
BODY_B = style("Body_B", fontName="Helvetica-Bold", fontSize=10,
               textColor=DARK_GRAY, leading=15)
BULLET_S = style("Bullet_S", fontName="Helvetica", fontSize=10,
                 textColor=DARK_GRAY, leading=14,
                 leftIndent=14, bulletIndent=4,
                 bulletFontName="Helvetica", bulletFontSize=10)
DEF_TERM = style("Def_Term", fontName="Helvetica-Bold", fontSize=10,
                 textColor=DARK_BLUE, leading=15)
DEF_BODY = style("Def_Body", fontName="Helvetica", fontSize=10,
                 textColor=DARK_GRAY, leading=14, leftIndent=10)
FORMULA_S = style("Formula_S", fontName="Courier-Bold", fontSize=11,
                  textColor=DARK_BLUE, leading=16, alignment=TA_CENTER)
FORMULA_LABEL = style("Formula_Label", fontName="Helvetica-Oblique", fontSize=9,
                      textColor=colors.HexColor("#757575"), alignment=TA_CENTER, leading=12)
CAPTION_S = style("Caption_S", fontName="Helvetica-Oblique", fontSize=8,
                  textColor=colors.HexColor("#9E9E9E"), alignment=TA_CENTER)
TH_S = style("TH_S", fontName="Helvetica-Bold", fontSize=9,
             textColor=WHITE, alignment=TA_CENTER, leading=12)
TD_S = style("TD_S", fontName="Helvetica", fontSize=9,
             textColor=DARK_GRAY, alignment=TA_CENTER, leading=12)
TD_L = style("TD_L", fontName="Helvetica", fontSize=9,
             textColor=DARK_GRAY, alignment=TA_LEFT, leading=12, leftIndent=4)
FOOTER_S = style("Footer_S", fontName="Helvetica-Oblique", fontSize=8,
                 textColor=MED_GRAY, alignment=TA_CENTER)
KEY_S = style("Key_S", fontName="Helvetica-Bold", fontSize=9,
              textColor=ACCENT, leading=14)

# ── Helper Flowables ───────────────────────────────────────────────────────────

def section_header(text, color=DARK_BLUE):
    """Colored banner for section headings."""
    data = [[Paragraph(text, SECTION_S)]]
    t = Table(data, colWidths=[CW])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), color),
        ("ROUNDEDCORNERS", [6, 6, 6, 6]),
        ("TOPPADDING", (0,0), (-1,-1), 7),
        ("BOTTOMPADDING", (0,0), (-1,-1), 7),
        ("LEFTPADDING", (0,0), (-1,-1), 10),
    ]))
    return t

def formula_box(formula, label="", bg=PURPLE_BG, border=PURPLE_DARK):
    data = []
    data.append([Paragraph(formula, FORMULA_S)])
    if label:
        data.append([Paragraph(label, FORMULA_LABEL)])
    t = Table(data, colWidths=[CW - 2*cm])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), bg),
        ("BOX", (0,0), (-1,-1), 1.5, border),
        ("TOPPADDING", (0,0), (-1,-1), 8),
        ("BOTTOMPADDING", (0,0), (-1,-1), 8),
        ("LEFTPADDING", (0,0), (-1,-1), 12),
        ("RIGHTPADDING", (0,0), (-1,-1), 12),
        ("ALIGN", (0,0), (-1,-1), "CENTER"),
    ]))
    # center the box
    outer = Table([[t]], colWidths=[CW])
    outer.setStyle(TableStyle([
        ("ALIGN", (0,0), (-1,-1), "CENTER"),
        ("TOPPADDING", (0,0), (-1,-1), 0),
        ("BOTTOMPADDING", (0,0), (-1,-1), 0),
        ("LEFTPADDING", (0,0), (-1,-1), 0),
        ("RIGHTPADDING", (0,0), (-1,-1), 0),
    ]))
    return outer

def def_block(term, definition, bg=LIGHT_BLUE):
    data = [
        [Paragraph(term, DEF_TERM)],
        [Paragraph(definition, DEF_BODY)],
    ]
    t = Table(data, colWidths=[CW])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (0,0), bg),
        ("BACKGROUND", (0,1), (0,1), WHITE),
        ("BOX", (0,0), (-1,-1), 0.8, MID_BLUE),
        ("LINEBELOW", (0,0), (0,0), 0.5, MID_BLUE),
        ("TOPPADDING", (0,0), (-1,-1), 5),
        ("BOTTOMPADDING", (0,0), (-1,-1), 5),
        ("LEFTPADDING", (0,0), (-1,-1), 8),
        ("RIGHTPADDING", (0,0), (-1,-1), 8),
    ]))
    return t

def tip_box(text, title="β˜… Key Point", bg=ORANGE_BG, border=ORANGE_DARK):
    data = [
        [Paragraph(f"<b>{title}</b>", style("tp", fontName="Helvetica-Bold",
            fontSize=9, textColor=border, leading=13))],
        [Paragraph(text, style("tb", fontName="Helvetica", fontSize=9,
            textColor=DARK_GRAY, leading=13))],
    ]
    t = Table(data, colWidths=[CW])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), bg),
        ("BOX", (0,0), (-1,-1), 1, border),
        ("LINEBELOW", (0,0), (0,0), 0.5, border),
        ("TOPPADDING", (0,0), (-1,-1), 5),
        ("BOTTOMPADDING", (0,0), (-1,-1), 5),
        ("LEFTPADDING", (0,0), (-1,-1), 10),
        ("RIGHTPADDING", (0,0), (-1,-1), 10),
    ]))
    return t

def sp(n=6):
    return Spacer(1, n)

def hr():
    return HRFlowable(width=CW, thickness=0.5, color=MED_GRAY, spaceAfter=4, spaceBefore=4)

def make_table(headers, rows, col_widths=None):
    if col_widths is None:
        col_widths = [CW / len(headers)] * len(headers)
    data = [[Paragraph(h, TH_S) for h in headers]]
    for i, row in enumerate(rows):
        data.append([Paragraph(str(c), TD_L if j == 0 else TD_S)
                     for j, c in enumerate(row)])
    t = Table(data, colWidths=col_widths, repeatRows=1)
    row_colors = []
    for i in range(1, len(rows)+1):
        bg = LIGHT_GRAY if i % 2 == 0 else WHITE
        row_colors.append(("BACKGROUND", (0,i), (-1,i), bg))
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,0), DARK_BLUE),
        ("GRID", (0,0), (-1,-1), 0.5, MED_GRAY),
        ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, LIGHT_GRAY]),
        ("TOPPADDING", (0,0), (-1,-1), 5),
        ("BOTTOMPADDING", (0,0), (-1,-1), 5),
        ("LEFTPADDING", (0,0), (-1,-1), 6),
        ("RIGHTPADDING", (0,0), (-1,-1), 6),
        ("VALIGN", (0,0), (-1,-1), "MIDDLE"),
    ] + row_colors))
    return t

# ── Page decorations (header/footer) ──────────────────────────────────────────
def on_page(canvas, doc):
    canvas.saveState()
    # top accent line
    canvas.setFillColor(DARK_BLUE)
    canvas.rect(0, H - 12*mm, W, 4*mm, fill=1, stroke=0)
    canvas.setFillColor(ACCENT)
    canvas.rect(0, H - 12*mm, 40*mm, 4*mm, fill=1, stroke=0)
    # bottom footer
    canvas.setFillColor(LIGHT_GRAY)
    canvas.rect(0, 0, W, 14*mm, fill=1, stroke=0)
    canvas.setFillColor(MED_GRAY)
    canvas.setFont("Helvetica", 8)
    canvas.drawCentredString(W/2, 5*mm,
        f"Physical World – Class 11 Physics  |  Study Guide  |  Page {doc.page}")
    canvas.setFillColor(ACCENT)
    canvas.rect(0, 13.5*mm, W, 0.5*mm, fill=1, stroke=0)
    canvas.restoreState()

def on_first_page(canvas, doc):
    on_page(canvas, doc)

# ── Cover ──────────────────────────────────────────────────────────────────────
def cover_elements():
    elems = []
    elems.append(sp(30))
    # Big title block
    cover_data = [
        [Paragraph("PHYSICAL WORLD", TITLE_S)],
        [Paragraph("Class 11 Physics β€” Chapter 1", SUBTITLE_S)],
        [sp(4)],
        [Paragraph("Study Guide: Definitions &amp; Key Concepts", SUBTITLE_S)],
    ]
    cover_t = Table(cover_data, colWidths=[CW])
    cover_t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), DARK_BLUE),
        ("TOPPADDING", (0,0), (-1,-1), 10),
        ("BOTTOMPADDING", (0,0), (-1,-1), 10),
        ("LEFTPADDING", (0,0), (-1,-1), 16),
        ("RIGHTPADDING", (0,0), (-1,-1), 16),
        ("BOX", (0,0), (-1,-1), 3, ACCENT),
    ]))
    elems.append(cover_t)
    elems.append(sp(20))

    # Topic badges
    topics = ["Scope of Physics", "4 Fundamental Forces", "Conservation Laws",
              "Key Definitions", "Important Formulas", "Quick Revision Table"]
    badge_data = []
    row = []
    for i, t in enumerate(topics):
        row.append(Paragraph(t, BADGE_S))
        if len(row) == 3:
            badge_data.append(row)
            row = []
    if row:
        while len(row) < 3:
            row.append(Paragraph("", BADGE_S))
        badge_data.append(row)
    badge_t = Table(badge_data, colWidths=[CW/3]*3)
    badge_t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), MID_BLUE),
        ("GRID", (0,0), (-1,-1), 1, WHITE),
        ("TOPPADDING", (0,0), (-1,-1), 8),
        ("BOTTOMPADDING", (0,0), (-1,-1), 8),
        ("ALIGN", (0,0), (-1,-1), "CENTER"),
    ]))
    elems.append(badge_t)
    elems.append(sp(30))
    elems.append(Paragraph(
        "CBSE | NCERT | Class XI",
        style("cv_sub", fontName="Helvetica-Oblique", fontSize=11,
              textColor=MED_GRAY, alignment=TA_CENTER)
    ))
    elems.append(PageBreak())
    return elems

# ── Build story ────────────────────────────────────────────────────────────────
story = []
story += cover_elements()

# ═══════════════════════════════════════════════════════════════
# SECTION 1 β€” KEY DEFINITIONS
# ═══════════════════════════════════════════════════════════════
story.append(section_header("1.  KEY DEFINITIONS"))
story.append(sp(10))

definitions = [
    ("Physics",
     "The branch of natural science that deals with the study of matter, energy, space, time, "
     "and their mutual interactions. The word 'physics' comes from the Greek fusis meaning nature."),
    ("Hypothesis",
     "A tentative, testable explanation put forward for an observation before it has been "
     "rigorously tested. It is the starting point of scientific inquiry."),
    ("Theory",
     "A well-substantiated explanation for a broad set of observations, supported by repeated "
     "experimental evidence. More reliable than a hypothesis."),
    ("Scientific Law",
     "A concise, universally valid statement (often mathematical) describing a natural phenomenon. "
     "E.g., Newton's Law of Gravitation, Coulomb's Law."),
    ("Model",
     "A simplified, often mathematical or pictorial, representation of a complex physical system "
     "used to predict its behaviour. E.g., Bohr's atomic model."),
    ("Natural Philosophy",
     "The older name for physics; the philosophical study of nature and the physical universe "
     "that was dominant before modern experimental science."),
    ("Macroscopic Domain",
     "The domain of physics dealing with objects of everyday size up to astronomical scales β€” "
     "from millimetres to light-years. Governed by classical physics."),
    ("Microscopic Domain",
     "The domain of physics dealing with atomic and sub-atomic particles (~10⁻¹⁰ m and smaller). "
     "Governed by quantum mechanics."),
    ("Reductionism",
     "The approach of explaining complex systems by analysing their simpler, more fundamental "
     "components and the laws that govern them. E.g., thermodynamics ← kinetic theory of gases."),
    ("Unification",
     "The process of showing that apparently different forces or phenomena are manifestations of "
     "a single, more fundamental force or principle. E.g., Maxwell unified electricity and magnetism."),
    ("Conservation Law",
     "A principle stating that a particular measurable quantity of an isolated system does not "
     "change over time, regardless of the processes occurring within the system."),
    ("Inductive Reasoning",
     "Moving from specific experimental observations to a general conclusion or law. "
     "Foundation of empirical science."),
    ("Deductive Reasoning",
     "Moving from a general principle or theory to specific predictions that can be tested "
     "experimentally."),
    ("Gravitational Force",
     "The universal attractive force between any two objects that have mass. It is the weakest "
     "fundamental force but has infinite range."),
    ("Electromagnetic Force",
     "The force between electrically charged particles. It can be attractive (opposite charges) "
     "or repulsive (like charges) and has infinite range."),
    ("Strong Nuclear Force",
     "The strongest fundamental force; it binds protons and neutrons (nucleons) together inside "
     "the atomic nucleus. Range: ~10⁻¹⁡ m."),
    ("Weak Nuclear Force",
     "Responsible for radioactive beta decay; weaker than EM and strong forces but stronger than "
     "gravity. Range: ~10⁻¹⁢ m."),
    ("Mediating Particle (Boson)",
     "A particle that carries (mediates) a fundamental force. Photon β†’ EM; Gluon β†’ Strong; "
     "W/Z boson β†’ Weak; Graviton (theoretical) β†’ Gravity."),
    ("Noether's Theorem",
     "Every continuous symmetry of a physical system corresponds to a conservation law. "
     "Symmetry in time ↔ Energy conservation; Space ↔ Linear momentum; Rotation ↔ Angular momentum."),
    ("Grand Unified Theory (GUT)",
     "A theoretical framework attempting to unify the strong nuclear force with the electroweak "
     "force into a single interaction. Not yet experimentally confirmed."),
    ("Theory of Everything (TOE)",
     "A hypothetical single framework unifying all four fundamental forces of nature, including "
     "gravity. Still an unsolved problem in physics."),
]

for term, defn in definitions:
    story.append(def_block(term, defn))
    story.append(sp(5))

story.append(sp(10))

# ═══════════════════════════════════════════════════════════════
# SECTION 2 β€” FUNDAMENTAL FORCES
# ═══════════════════════════════════════════════════════════════
story.append(PageBreak())
story.append(section_header("2.  THE FOUR FUNDAMENTAL FORCES", MID_BLUE))
story.append(sp(10))

story.append(tip_box(
    "Mnemonic for strength order (weakest β†’ strongest):  G – W – E – S  "
    "(Gravity < Weak Nuclear < Electromagnetic < Strong Nuclear)",
    title="πŸ’‘ Memory Tip"
))
story.append(sp(10))

forces_headers = ["Force", "Relative Strength", "Range", "Mediating Particle", "Nature"]
forces_rows = [
    ["Gravitational",    "1  (weakest)",    "Infinite",       "Graviton (theoretical)", "Always attractive"],
    ["Weak Nuclear",     "10²⁡",            "~10⁻¹⁢ m",      "W⁺, W⁻, Z⁰ bosons",     "Attractive/Repulsive"],
    ["Electromagnetic",  "10³⁢",            "Infinite",       "Photon (γ)",             "Attractive & Repulsive"],
    ["Strong Nuclear",   "10³⁸ (strongest)","~10⁻¹⁡ m",      "Gluons",                 "Always attractive"],
]
story.append(make_table(forces_headers, forces_rows,
    col_widths=[3.2*cm, 3.2*cm, 2.6*cm, 4.0*cm, 3.6*cm]))
story.append(sp(12))

# Individual force notes
force_notes = [
    ("Gravitational Force",
     "β€’ Acts between ALL objects with mass (never repulsive).\n"
     "β€’ Governs motion of planets, stars, galaxies, tides, free fall.\n"
     "β€’ Described by Newton's Law: F = Gm₁mβ‚‚/rΒ².\n"
     "β€’ Extremely weak β€” only noticeable at astronomical scales."),
    ("Electromagnetic Force",
     "β€’ Acts between charged particles; ~10³⁢ times stronger than gravity.\n"
     "β€’ Responsible for: chemical bonds, friction, normal force, light, electricity, magnetism.\n"
     "β€’ Unified by Maxwell (1865): electricity + magnetism = electromagnetism.\n"
     "β€’ Coulomb's Law: F = kq₁qβ‚‚/rΒ²."),
    ("Strong Nuclear Force",
     "β€’ Strongest known force; holds protons & neutrons together despite EM repulsion.\n"
     "β€’ Acts between quarks via gluon exchange (also between nucleons residually).\n"
     "β€’ Source of nuclear energy (fission and fusion).\n"
     "β€’ Charge-independent (acts equally on p-p, n-n, p-n pairs)."),
    ("Weak Nuclear Force",
     "β€’ Causes beta decay: n β†’ p + e⁻ + Ξ½Μ„β‚‘ (beta-minus) or p β†’ n + e⁺ + Ξ½β‚‘ (beta-plus).\n"
     "β€’ Unified with EM β†’ Electroweak force (Glashow, Salam, Weinberg β€” Nobel 1979).\n"
     "β€’ Responsible for energy production in the Sun (pp chain)."),
]
for title_txt, note in force_notes:
    story.append(KeepTogether([
        Paragraph(title_txt, SUBSECTION_S),
        sp(3),
        Paragraph(note.replace("\n", "<br/>"), BODY_S),
        sp(8),
    ]))

# ═══════════════════════════════════════════════════════════════
# SECTION 3 β€” IMPORTANT FORMULAS
# ═══════════════════════════════════════════════════════════════
story.append(PageBreak())
story.append(section_header("3.  IMPORTANT FORMULAS &amp; RELATIONS", colors.HexColor("#1B5E20")))
story.append(sp(10))

story.append(Paragraph("3.1  Newton's Law of Universal Gravitation", SUBSECTION_S))
story.append(sp(4))
story.append(formula_box(
    "F = G m₁ mβ‚‚ / rΒ²",
    "F = gravitational force (N), G = 6.674Γ—10⁻¹¹ N mΒ² kg⁻², m₁, mβ‚‚ = masses (kg), r = separation (m)",
    GREEN_BG, GREEN_DARK
))
story.append(sp(10))

story.append(Paragraph("3.2  Coulomb's Law (Electrostatic Force)", SUBSECTION_S))
story.append(sp(4))
story.append(formula_box(
    "F = k q₁ qβ‚‚ / rΒ²",
    "k = 1/(4πΡ₀) = 9Γ—10⁹ N mΒ² C⁻², q₁, qβ‚‚ = charges (C), r = separation (m)",
    GREEN_BG, GREEN_DARK
))
story.append(sp(10))

story.append(Paragraph("3.3  Conservation of Energy", SUBSECTION_S))
story.append(sp(4))
story.append(formula_box(
    "Ξ”E_total = 0     ⟹     KE + PE = constant (isolated system)",
    "Total mechanical energy is conserved in the absence of non-conservative forces.",
    PURPLE_BG, PURPLE_DARK
))
story.append(sp(10))

story.append(Paragraph("3.4  Conservation of Linear Momentum", SUBSECTION_S))
story.append(sp(4))
story.append(formula_box(
    "p = mv   ;   Ξ”p_total = 0  (no external force)",
    "p = momentum (kg m s⁻¹), m = mass (kg), v = velocity (m s⁻¹)",
    PURPLE_BG, PURPLE_DARK
))
story.append(sp(10))

story.append(Paragraph("3.5  Conservation of Angular Momentum", SUBSECTION_S))
story.append(sp(4))
story.append(formula_box(
    "L = I Ο‰   ;   Ξ”L = 0  (no external torque)",
    "L = angular momentum (kg mΒ² s⁻¹), I = moment of inertia, Ο‰ = angular velocity",
    PURPLE_BG, PURPLE_DARK
))
story.append(sp(10))

story.append(Paragraph("3.6  Einstein's Mass–Energy Equivalence", SUBSECTION_S))
story.append(sp(4))
story.append(formula_box(
    "E = m cΒ²",
    "E = energy (J), m = mass (kg), c = speed of light = 3Γ—10⁸ m s⁻¹  "
    "(Basis of nuclear energy)",
    ORANGE_BG, ORANGE_DARK
))
story.append(sp(10))

story.append(Paragraph("3.7  Planck's Quantum Relation", SUBSECTION_S))
story.append(sp(4))
story.append(formula_box(
    "E = h Ξ½",
    "E = photon energy (J), h = Planck's constant = 6.626Γ—10⁻³⁴ J s, Ξ½ = frequency (Hz)",
    ORANGE_BG, ORANGE_DARK
))
story.append(sp(10))

story.append(Paragraph("3.8  de Broglie Wavelength", SUBSECTION_S))
story.append(sp(4))
story.append(formula_box(
    "Ξ» = h / (mv)",
    "Ξ» = de Broglie wavelength (m), h = Planck's constant, m = mass, v = velocity",
    ORANGE_BG, ORANGE_DARK
))
story.append(sp(10))

story.append(tip_box(
    "The formulas above are referenced in the Physical World chapter as examples of "
    "the mathematical precision and unifying power of physics. They will be studied "
    "in detail in later chapters.",
    title="πŸ“Œ Note for Students"
))

# ═══════════════════════════════════════════════════════════════
# SECTION 4 β€” PHYSICS & TECHNOLOGY
# ═══════════════════════════════════════════════════════════════
story.append(PageBreak())
story.append(section_header("4.  PHYSICS, TECHNOLOGY &amp; SOCIETY", colors.HexColor("#880E4F")))
story.append(sp(10))

pt_headers = ["Physics Discovery", "Resulting Technology", "Societal Impact"]
pt_rows = [
    ["Laws of Motion & Gravitation",     "Rockets, Satellites, GPS",          "Navigation, space exploration"],
    ["Electromagnetic Induction",         "Electric generators, motors",        "Power generation, industry"],
    ["Maxwell's EM Theory",               "Radio, TV, Mobile phones",           "Global communication"],
    ["X-rays (RΓΆntgen, 1895)",            "Medical imaging (radiography)",      "Healthcare diagnostics"],
    ["Nuclear Fission",                   "Nuclear reactors, atomic bombs",     "Energy & defense"],
    ["Quantum Mechanics",                 "Transistors, ICs, Computers, Lasers","Digital revolution"],
    ["Superconductivity",                 "MRI machines, Maglev trains",        "Medicine, transport"],
    ["Radioactivity",                     "Radiation therapy, PET scans",       "Cancer treatment"],
]
story.append(make_table(pt_headers, pt_rows,
    col_widths=[5.0*cm, 5.0*cm, 5.0*cm + (CW - 15.0*cm)]))
story.append(sp(12))

# ═══════════════════════════════════════════════════════════════
# SECTION 5 β€” CONSERVATION LAWS
# ═══════════════════════════════════════════════════════════════
story.append(section_header("5.  CONSERVATION LAWS", colors.HexColor("#004D40")))
story.append(sp(10))

cl_headers = ["Conservation Law", "What is Conserved", "Symmetry (Noether)", "Example"]
cl_rows = [
    ["Energy",           "Total energy",              "Time translation",      "Pendulum swinging"],
    ["Linear Momentum",  "Total linear momentum",     "Space translation",     "Collisions"],
    ["Angular Momentum", "Total angular momentum",    "Rotational symmetry",   "Figure skater spin"],
    ["Electric Charge",  "Total electric charge",     "Gauge symmetry",        "Nuclear reactions"],
    ["Baryon Number",    "Number of baryons",         "β€”",                     "Nuclear decay"],
    ["Lepton Number",    "Number of leptons",         "β€”",                     "Beta decay"],
]
story.append(make_table(cl_headers, cl_rows,
    col_widths=[4.0*cm, 3.8*cm, 3.8*cm, 4.4*cm + (CW - 16.0*cm)]))
story.append(sp(12))

story.append(tip_box(
    "Conservation laws are the MOST fundamental laws in physics. They follow from "
    "symmetry principles (Noether's Theorem, 1915) and hold in ALL branches of physics β€” "
    "classical, quantum, and relativistic.",
    title="⭐ Why Conservation Laws Matter"
))

# ═══════════════════════════════════════════════════════════════
# SECTION 6 β€” NOTABLE SCIENTISTS
# ═══════════════════════════════════════════════════════════════
story.append(PageBreak())
story.append(section_header("6.  NOTABLE SCIENTISTS &amp; CONTRIBUTIONS"))
story.append(sp(10))

sci_headers = ["Scientist", "Era", "Major Contribution"]
sci_rows = [
    ["Galileo Galilei",       "1564–1642", "Scientific method, laws of motion, telescope, projectile motion"],
    ["Isaac Newton",          "1643–1727", "Laws of motion, universal gravitation, calculus, optics"],
    ["James Clerk Maxwell",   "1831–1879", "Unified EM theory; predicted EM waves; light = EM wave"],
    ["Marie Curie",           "1867–1934", "Discovery of radioactivity; isolated polonium & radium"],
    ["Max Planck",            "1858–1947", "Quantum theory; Planck's constant h; blackbody radiation"],
    ["Albert Einstein",       "1879–1955", "Special & General Relativity; photoelectric effect; E = mcΒ²"],
    ["Niels Bohr",            "1885–1962", "Atomic model; quantum theory of hydrogen spectrum"],
    ["Ernest Rutherford",     "1871–1937", "Nuclear model of atom; discovery of proton; alpha scattering"],
    ["Werner Heisenberg",     "1901–1976", "Uncertainty principle; matrix mechanics"],
    ["Erwin SchrΓΆdinger",     "1887–1961", "Wave mechanics; SchrΓΆdinger equation"],
    ["C. V. Raman",           "1888–1970", "Raman Effect (light scattering); Nobel Prize 1930 (India)"],
    ["S. N. Bose",            "1894–1974", "Bose-Einstein statistics; bosons named after him"],
    ["Abdus Salam",           "1926–1996", "Electroweak unification (with Glashow & Weinberg); Nobel 1979"],
]
story.append(make_table(sci_headers, sci_rows,
    col_widths=[4.2*cm, 2.6*cm, CW - 6.8*cm]))
story.append(sp(12))

# ═══════════════════════════════════════════════════════════════
# SECTION 7 β€” UNIFICATION IN PHYSICS
# ═══════════════════════════════════════════════════════════════
story.append(section_header("7.  UNIFICATION OF FORCES", MID_BLUE))
story.append(sp(10))

uni_headers = ["Unified Theory", "Forces Combined", "Scientists", "Status"]
uni_rows = [
    ["Electromagnetism",         "Electricity + Magnetism",          "Maxwell (1865)",                       "Confirmed βœ“"],
    ["Electroweak Theory",       "EM + Weak Nuclear",                "Glashow, Salam, Weinberg (1979)",       "Confirmed βœ“"],
    ["Grand Unified Theory (GUT)","Electroweak + Strong Nuclear",    "Various (ongoing)",                    "Unconfirmed"],
    ["Theory of Everything (TOE)","All 4 forces incl. Gravity",      "Unsolved",                             "Not achieved"],
]
story.append(make_table(uni_headers, uni_rows,
    col_widths=[4.4*cm, 4.2*cm, 4.8*cm, 2.6*cm + (CW - 16.0*cm)]))
story.append(sp(12))

# ═══════════════════════════════════════════════════════════════
# SECTION 8 β€” QUICK REVISION
# ═══════════════════════════════════════════════════════════════
story.append(PageBreak())
story.append(section_header("8.  QUICK REVISION β€” ONE-LINERS", ACCENT))
story.append(sp(10))

one_liners = [
    ("Physics", "Science of matter, energy, space, time and their interactions."),
    ("Strongest force", "Strong Nuclear Force (~10³⁸ times gravity)."),
    ("Weakest force", "Gravitational Force β€” but has infinite range."),
    ("Only attractive force", "Gravitational Force (never repulsive)."),
    ("Beta decay cause", "Weak Nuclear Force."),
    ("EM mediating particle", "Photon (Ξ³)."),
    ("Strong force mediator", "Gluons."),
    ("Who unified EM?", "James Clerk Maxwell (1865)."),
    ("Noether's Theorem", "Symmetry ↔ Conservation Law."),
    ("E = mcΒ²", "Einstein; mass-energy equivalence; basis of nuclear energy."),
    ("E = hΞ½", "Planck; energy of a photon."),
    ("India's Nobel (Physics)", "C. V. Raman, 1930 β€” Raman Effect."),
    ("Reductionism", "Complex ← simpler laws (e.g., thermo ← kinetic theory)."),
    ("TOE status", "Not yet achieved β€” open problem in physics."),
    ("Electroweak Nobel year", "1979 β€” Glashow, Salam, Weinberg."),
]

# two-column layout
left_rows = one_liners[:8]
right_rows = one_liners[8:]

def ol_cell(term, val):
    return [Paragraph(f"<b>{term}</b>", DEF_TERM),
            Paragraph(val, BODY_S)]

# Render as simple table
ol_data = []
for i in range(max(len(left_rows), len(right_rows))):
    row = []
    if i < len(left_rows):
        row += ol_cell(*left_rows[i])
    else:
        row += [Paragraph("", BODY_S), Paragraph("", BODY_S)]
    if i < len(right_rows):
        row += ol_cell(*right_rows[i])
    else:
        row += [Paragraph("", BODY_S), Paragraph("", BODY_S)]
    ol_data.append(row)

half = (CW - 8*mm) / 2
ol_t = Table(ol_data, colWidths=[3.2*cm, half - 3.2*cm, 8*mm, 3.2*cm, half - 3.2*cm])
ol_t.setStyle(TableStyle([
    ("VALIGN", (0,0), (-1,-1), "TOP"),
    ("TOPPADDING", (0,0), (-1,-1), 4),
    ("BOTTOMPADDING", (0,0), (-1,-1), 4),
    ("LINEBELOW", (0,0), (1,-1), 0.3, MED_GRAY),
    ("LINEBELOW", (3,0), (4,-1), 0.3, MED_GRAY),
    ("BACKGROUND", (0,0), (1,-1), LIGHT_GRAY),
    ("BACKGROUND", (3,0), (4,-1), LIGHT_GRAY),
    ("LINEAFTER", (1,0), (1,-1), 0.5, MID_BLUE),
]))
story.append(ol_t)
story.append(sp(16))

# ── Final tip ──────────────────────────────────────────────────────────────────
story.append(tip_box(
    "This chapter is mostly conceptual. Focus on: (1) definitions of the four forces and their "
    "properties, (2) conservation laws and Noether's theorem, (3) examples of physics-technology "
    "links, and (4) names of scientists with their contributions. "
    "No numerical problems are expected from this chapter in board exams.",
    title="🎯 Exam Strategy"
))
story.append(sp(16))
story.append(Paragraph(
    "Best of luck with your exams!  πŸ“š  β€” Orris AI Study Guide",
    style("final", fontName="Helvetica-Oblique", fontSize=10,
          textColor=MED_GRAY, alignment=TA_CENTER)
))

# ── Build ──────────────────────────────────────────────────────────────────────
doc.build(story, onFirstPage=on_first_page, onLaterPages=on_page)
print(f"PDF generated: {OUTPUT}")
Running Command

cd /tmp/workspace/physical-world-studyguide && python generate_pdf.py 2>&1

Running Command

ls -lh /tmp/workspace/physical-world-studyguide/Physical_World_Class11_StudyGuide.pdf

Your study guide PDF is ready! Here's what's included:

πŸ“„ Download your PDF:

Physical World Class11 StudyGuide

PDF Document Β· PDF


What's inside the PDF (8 sections):

SectionContent
Cover PageStyled title page with topic badges
1. Key Definitions21 important definitions (Physics, Hypothesis, Theory, Forces, Noether's Theorem, GUT, TOE, etc.)
2. Four Fundamental ForcesComparison table + individual notes on each force
3. Important FormulasNewton's gravitation, Coulomb's law, Conservation laws, E=mcΒ², E=hΞ½, de Broglie wavelength β€” all in highlighted formula boxes
4. Physics & TechnologyTable linking discoveries to technologies and societal impact
5. Conservation LawsTable with symmetry (Noether's theorem) connections
6. Notable Scientists13 scientists with eras and contributions
7. Unification of ForcesTimeline from Maxwell to TOE
8. Quick Revision15 one-liners in two-column layout + exam strategy tip
The PDF uses color-coded sections, formula boxes, alternating-row tables, and tip boxes for easy reading and revision.

Convert it in more esey language

Writing File

~/physical-world-studyguide/generate_easy_pdf.py

from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm, mm
from reportlab.platypus import (
    SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
    HRFlowable, KeepTogether, PageBreak
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY

# ── Colors ─────────────────────────────────────────────────────
DARK_BLUE   = colors.HexColor("#1A237E")
MID_BLUE    = colors.HexColor("#1565C0")
LIGHT_BLUE  = colors.HexColor("#DCEEFB")
SKY_BLUE    = colors.HexColor("#E3F2FD")
ACCENT      = colors.HexColor("#FF6F00")
GREEN_BG    = colors.HexColor("#E8F5E9")
GREEN_DARK  = colors.HexColor("#2E7D32")
PURPLE_BG   = colors.HexColor("#EDE7F6")
PURPLE_DARK = colors.HexColor("#4527A0")
ORANGE_BG   = colors.HexColor("#FFF3E0")
ORANGE_DARK = colors.HexColor("#E65100")
PINK_BG     = colors.HexColor("#FCE4EC")
PINK_DARK   = colors.HexColor("#880E4F")
YELLOW_BG   = colors.HexColor("#FFFDE7")
YELLOW_DARK = colors.HexColor("#F57F17")
WHITE       = colors.white
LIGHT_GRAY  = colors.HexColor("#F5F5F5")
MED_GRAY    = colors.HexColor("#BDBDBD")
DARK_GRAY   = colors.HexColor("#424242")

# ── Document ───────────────────────────────────────────────────
OUTPUT = "/tmp/workspace/physical-world-studyguide/Physical_World_Easy_Language.pdf"
doc = SimpleDocTemplate(
    OUTPUT, pagesize=A4,
    leftMargin=1.8*cm, rightMargin=1.8*cm,
    topMargin=2.2*cm, bottomMargin=2.2*cm,
    title="Physical World – Easy Language Study Guide",
    author="Orris AI",
)
W, H = A4
CW = W - 3.6*cm

# ── Styles ─────────────────────────────────────────────────────
def S(name, **kw):
    return ParagraphStyle(name, **kw)

TITLE_S    = S("T", fontName="Helvetica-Bold",    fontSize=28, textColor=WHITE,     alignment=TA_CENTER, leading=34)
SUB_S      = S("Su", fontName="Helvetica",        fontSize=13, textColor=colors.HexColor("#BBDEFB"), alignment=TA_CENTER, leading=18)
SEC_S      = S("Se", fontName="Helvetica-Bold",   fontSize=13, textColor=WHITE,     alignment=TA_LEFT,   leading=18, leftIndent=8)
SUBSEC_S   = S("SS", fontName="Helvetica-Bold",   fontSize=11, textColor=MID_BLUE,  leading=16)
BODY_S     = S("B",  fontName="Helvetica",        fontSize=10, textColor=DARK_GRAY, leading=16, alignment=TA_JUSTIFY)
BODY_B     = S("BB", fontName="Helvetica-Bold",   fontSize=10, textColor=DARK_GRAY, leading=16)
BULLET_S   = S("BL", fontName="Helvetica",        fontSize=10, textColor=DARK_GRAY, leading=15, leftIndent=14)
TH_S       = S("TH", fontName="Helvetica-Bold",   fontSize=9,  textColor=WHITE,     alignment=TA_CENTER, leading=12)
TD_S       = S("TD", fontName="Helvetica",        fontSize=9,  textColor=DARK_GRAY, alignment=TA_CENTER, leading=12)
TD_L       = S("TL", fontName="Helvetica",        fontSize=9,  textColor=DARK_GRAY, alignment=TA_LEFT,   leading=12, leftIndent=4)
TD_B       = S("TB", fontName="Helvetica-Bold",   fontSize=9,  textColor=DARK_GRAY, alignment=TA_LEFT,   leading=12, leftIndent=4)
EMOJI_S    = S("E",  fontName="Helvetica-Bold",   fontSize=11, textColor=DARK_BLUE, leading=16)
SMALL_S    = S("Sm", fontName="Helvetica-Oblique",fontSize=8,  textColor=MED_GRAY,  alignment=TA_CENTER, leading=11)
TERM_S     = S("Tr", fontName="Helvetica-Bold",   fontSize=10, textColor=DARK_BLUE, leading=15)
DEF_S      = S("Df", fontName="Helvetica",        fontSize=10, textColor=DARK_GRAY, leading=15, leftIndent=8)
FORMULA_S  = S("F",  fontName="Courier-Bold",     fontSize=12, textColor=DARK_BLUE, alignment=TA_CENTER, leading=18)
FLABEL_S   = S("FL", fontName="Helvetica-Oblique",fontSize=9,  textColor=colors.HexColor("#616161"), alignment=TA_CENTER, leading=12)

# ── Helpers ────────────────────────────────────────────────────
def sp(n=8): return Spacer(1, n)
def hr(): return HRFlowable(width=CW, thickness=0.4, color=MED_GRAY, spaceBefore=4, spaceAfter=4)

def sec_hdr(text, bg=DARK_BLUE):
    t = Table([[Paragraph(text, SEC_S)]], colWidths=[CW])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0),(-1,-1), bg),
        ("TOPPADDING", (0,0),(-1,-1), 8), ("BOTTOMPADDING",(0,0),(-1,-1),8),
        ("LEFTPADDING",(0,0),(-1,-1),12),
    ]))
    return t

def callout(icon, heading, body, bg=YELLOW_BG, border=YELLOW_DARK):
    """Friendly callout box with icon."""
    data = [
        [Paragraph(f"{icon}  {heading}", S("ch", fontName="Helvetica-Bold", fontSize=10,
            textColor=border, leading=14))],
        [Paragraph(body, S("cb", fontName="Helvetica", fontSize=10,
            textColor=DARK_GRAY, leading=15))],
    ]
    t = Table(data, colWidths=[CW])
    t.setStyle(TableStyle([
        ("BACKGROUND",(0,0),(-1,-1), bg),
        ("BOX",(0,0),(-1,-1), 1.2, border),
        ("LINEBELOW",(0,0),(0,0), 0.5, border),
        ("TOPPADDING",(0,0),(-1,-1),6), ("BOTTOMPADDING",(0,0),(-1,-1),6),
        ("LEFTPADDING",(0,0),(-1,-1),10), ("RIGHTPADDING",(0,0),(-1,-1),10),
    ]))
    return t

def def_card(term, simple_def, example="", bg=SKY_BLUE):
    rows = [[Paragraph(term, TERM_S)], [Paragraph(simple_def, DEF_S)]]
    if example:
        rows.append([Paragraph(f"<i>Example: {example}</i>",
            S("ex", fontName="Helvetica-Oblique", fontSize=9,
              textColor=colors.HexColor("#1565C0"), leading=13, leftIndent=8))])
    t = Table(rows, colWidths=[CW])
    t.setStyle(TableStyle([
        ("BACKGROUND",(0,0),(0,0), bg),
        ("BACKGROUND",(0,1),(-1,-1), WHITE),
        ("BOX",(0,0),(-1,-1), 0.8, MID_BLUE),
        ("LINEBELOW",(0,0),(0,0), 0.5, MID_BLUE),
        ("TOPPADDING",(0,0),(-1,-1),5), ("BOTTOMPADDING",(0,0),(-1,-1),5),
        ("LEFTPADDING",(0,0),(-1,-1),8), ("RIGHTPADDING",(0,0),(-1,-1),8),
    ]))
    return t

def formula_box(formula, label="", bg=PURPLE_BG, border=PURPLE_DARK):
    rows = [[Paragraph(formula, FORMULA_S)]]
    if label:
        rows.append([Paragraph(label, FLABEL_S)])
    inner = Table(rows, colWidths=[CW - 3*cm])
    inner.setStyle(TableStyle([
        ("BACKGROUND",(0,0),(-1,-1), bg),
        ("BOX",(0,0),(-1,-1), 1.5, border),
        ("TOPPADDING",(0,0),(-1,-1),8), ("BOTTOMPADDING",(0,0),(-1,-1),8),
        ("LEFTPADDING",(0,0),(-1,-1),12), ("RIGHTPADDING",(0,0),(-1,-1),12),
        ("ALIGN",(0,0),(-1,-1),"CENTER"),
    ]))
    outer = Table([[inner]], colWidths=[CW])
    outer.setStyle(TableStyle([
        ("ALIGN",(0,0),(-1,-1),"CENTER"),
        ("TOPPADDING",(0,0),(-1,-1),0), ("BOTTOMPADDING",(0,0),(-1,-1),0),
        ("LEFTPADDING",(0,0),(-1,-1),0), ("RIGHTPADDING",(0,0),(-1,-1),0),
    ]))
    return outer

def make_table(headers, rows, col_widths=None):
    if col_widths is None:
        col_widths = [CW/len(headers)]*len(headers)
    data = [[Paragraph(h, TH_S) for h in headers]]
    for i, row in enumerate(rows):
        data.append([Paragraph(str(c), TD_L if j==0 else TD_S) for j,c in enumerate(row)])
    t = Table(data, colWidths=col_widths, repeatRows=1)
    t.setStyle(TableStyle([
        ("BACKGROUND",(0,0),(-1,0), DARK_BLUE),
        ("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE, LIGHT_GRAY]),
        ("GRID",(0,0),(-1,-1), 0.4, MED_GRAY),
        ("TOPPADDING",(0,0),(-1,-1),5), ("BOTTOMPADDING",(0,0),(-1,-1),5),
        ("LEFTPADDING",(0,0),(-1,-1),5), ("RIGHTPADDING",(0,0),(-1,-1),5),
        ("VALIGN",(0,0),(-1,-1),"MIDDLE"),
    ]))
    return t

# ── Page decorations ───────────────────────────────────────────
def on_page(canvas, doc):
    canvas.saveState()
    canvas.setFillColor(DARK_BLUE)
    canvas.rect(0, H-11*mm, W, 3.5*mm, fill=1, stroke=0)
    canvas.setFillColor(ACCENT)
    canvas.rect(0, H-11*mm, 45*mm, 3.5*mm, fill=1, stroke=0)
    canvas.setFillColor(LIGHT_GRAY)
    canvas.rect(0, 0, W, 13*mm, fill=1, stroke=0)
    canvas.setFillColor(ACCENT)
    canvas.rect(0, 12.5*mm, W, 0.5*mm, fill=1, stroke=0)
    canvas.setFont("Helvetica", 8)
    canvas.setFillColor(colors.HexColor("#757575"))
    canvas.drawCentredString(W/2, 4.5*mm,
        f"Physical World – Class 11 Physics  |  Easy Language Study Guide  |  Page {doc.page}")
    canvas.restoreState()

# ═══════════════════════════════════════════════════════════════
# COVER
# ═══════════════════════════════════════════════════════════════
story = []
story.append(sp(25))

cover = Table([
    [Paragraph("PHYSICAL WORLD", TITLE_S)],
    [Paragraph("Class 11 Physics β€” Chapter 1", SUB_S)],
    [sp(6)],
    [Paragraph("Easy Language Study Guide", SUB_S)],
    [sp(4)],
    [Paragraph("Simple Words  β€’  Clear Examples  β€’  Quick Revision", SMALL_S)],
], colWidths=[CW])
cover.setStyle(TableStyle([
    ("BACKGROUND",(0,0),(-1,-1), DARK_BLUE),
    ("BOX",(0,0),(-1,-1), 3, ACCENT),
    ("TOPPADDING",(0,0),(-1,-1),10), ("BOTTOMPADDING",(0,0),(-1,-1),10),
    ("LEFTPADDING",(0,0),(-1,-1),16), ("RIGHTPADDING",(0,0),(-1,-1),16),
]))
story.append(cover)
story.append(sp(20))

# What's inside badges
badges = [["What is Physics?", "4 Big Forces", "Conservation Laws"],
          ["Key Definitions", "Formulas Made Easy", "Quick Revision"]]
bt = Table([[Paragraph(c, S("b", fontName="Helvetica-Bold", fontSize=10,
    textColor=WHITE, alignment=TA_CENTER)) for c in row] for row in badges],
    colWidths=[CW/3]*3)
bt.setStyle(TableStyle([
    ("BACKGROUND",(0,0),(-1,-1), MID_BLUE),
    ("GRID",(0,0),(-1,-1), 1, WHITE),
    ("TOPPADDING",(0,0),(-1,-1),9), ("BOTTOMPADDING",(0,0),(-1,-1),9),
    ("ALIGN",(0,0),(-1,-1),"CENTER"),
]))
story.append(bt)
story.append(sp(28))
story.append(Paragraph("CBSE | NCERT | Class XI  β€”  Orris AI",
    S("f", fontName="Helvetica-Oblique", fontSize=10, textColor=MED_GRAY, alignment=TA_CENTER)))
story.append(PageBreak())

# ═══════════════════════════════════════════════════════════════
# SECTION 1 β€” WHAT IS PHYSICS?
# ═══════════════════════════════════════════════════════════════
story.append(sec_hdr("1.  WHAT IS PHYSICS?  (Explained Simply)"))
story.append(sp(10))

story.append(callout("πŸ”­", "In Simple Words",
    "Physics is the subject that asks WHY and HOW things happen in nature. "
    "Why does an apple fall down? Why does light bend? How does electricity work? "
    "Physics finds the answers using experiments and maths.",
    YELLOW_BG, YELLOW_DARK))
story.append(sp(8))

story.append(Paragraph("Physics studies:", BODY_B))
story.append(sp(4))
points = [
    ("Matter", "Anything that has weight and takes up space β€” like a stone, water, air."),
    ("Energy", "The ability to do work β€” like heat, light, electricity, sound."),
    ("Forces", "Pushes and pulls β€” like gravity pulling you down, or a magnet pulling iron."),
    ("Space & Time", "Where things exist and when they happen."),
]
for term, desc in points:
    story.append(Paragraph(f"<b>β€’ {term}:</b>  {desc}", BODY_S))
    story.append(sp(3))
story.append(sp(8))

story.append(callout("πŸ’‘", "Fun Fact",
    "The word 'Physics' comes from the Greek word 'fusis' which means NATURE. "
    "So Physics = Study of Nature!",
    GREEN_BG, GREEN_DARK))
story.append(sp(10))

# Two domains
story.append(Paragraph("Two Worlds Physics Studies:", SUBSEC_S))
story.append(sp(6))
dom_t = make_table(
    ["Domain", "What It Studies", "How Big?", "Example"],
    [
        ["Macroscopic\n(Big World)",  "Things we can see and touch",         "mm to light-years",  "Planets, cars, rivers"],
        ["Microscopic\n(Tiny World)", "Atoms, electrons, quarks (too tiny!)", "10⁻¹⁰ m and smaller","Inside an atom"],
    ],
    col_widths=[3.5*cm, 5.5*cm, 3.5*cm, 4.0*cm + (CW-16.5*cm)]
)
story.append(dom_t)
story.append(sp(12))

# ═══════════════════════════════════════════════════════════════
# SECTION 2 β€” KEY DEFINITIONS (SIMPLE)
# ═══════════════════════════════════════════════════════════════
story.append(sec_hdr("2.  KEY DEFINITIONS  (In Simple Language)", MID_BLUE))
story.append(sp(10))

defs = [
    ("Hypothesis",
     "Your first guess about why something happens. You haven't proved it yet β€” it's just a smart idea you want to test.",
     "I think plants grow faster with more sunlight. (This is a hypothesis!)"),
    ("Theory",
     "When your hypothesis has been tested many many times by scientists and it always turns out to be true. A theory is very reliable.",
     "Einstein's Theory of Relativity has been tested for over 100 years!"),
    ("Scientific Law",
     "A simple rule (usually written as a formula) that ALWAYS works. It tells you WHAT happens, not WHY.",
     "Newton's Law: F = ma β€” Force = Mass Γ— Acceleration. Always works!"),
    ("Model",
     "A simple picture or idea used to explain something complex that we can't directly see.",
     "Bohr's model of atom β€” imagine electrons going around the nucleus like planets around the Sun."),
    ("Inductive Reasoning",
     "You observe something many times and then make a general rule from it.",
     "You see 100 swans β€” all are white. You conclude: 'All swans are white.' (This is inductive!)"),
    ("Deductive Reasoning",
     "You start with a general rule and predict what will happen in a specific case.",
     "All metals conduct electricity (general rule) β†’ Iron is a metal β†’ Iron conducts electricity."),
    ("Reductionism",
     "Breaking a big complex thing into smaller, simpler parts to understand it better.",
     "Understanding how a car works by studying each part: engine, tyres, brakes separately."),
    ("Unification",
     "Discovering that two things that look very different are actually the same thing deep down.",
     "Electricity and magnetism look different β€” but Maxwell showed they are the SAME force!"),
    ("Conservation Law",
     "A rule that says certain things in nature NEVER increase or decrease β€” they stay the same forever.",
     "Energy cannot be created or destroyed β€” it just changes form (heat, light, motion)."),
]

for term, defn, example in defs:
    story.append(def_card(term, defn, example))
    story.append(sp(6))

story.append(PageBreak())

# ═══════════════════════════════════════════════════════════════
# SECTION 3 β€” FOUR FUNDAMENTAL FORCES (SUPER SIMPLE)
# ═══════════════════════════════════════════════════════════════
story.append(sec_hdr("3.  THE 4 BIG FORCES OF NATURE", colors.HexColor("#1B5E20")))
story.append(sp(10))

story.append(callout("🌍", "Think of it this way...",
    "Everything that happens in the entire universe β€” from a falling leaf to an exploding star β€” "
    "is caused by just FOUR forces. That's it! Just four. Physics tries to understand all of them.",
    GREEN_BG, GREEN_DARK))
story.append(sp(10))

# Force cards
force_data = [
    ("1. Gravitational Force", "🌍",
     "The force that pulls EVERYTHING towards everything else. "
     "It's why you don't float away, why the Earth goes around the Sun, and why the Moon causes tides.",
     "WEAKEST of all 4 forces. But it works everywhere β€” even across the whole universe!",
     "Always PULLS (attractive). Never pushes. Works on everything with mass.",
     GREEN_BG, GREEN_DARK),

    ("2. Electromagnetic Force", "⚑",
     "The force between charged particles (like electrons and protons). "
     "It causes electricity, magnetism, light, chemical bonds β€” almost everything in daily life!",
     "10³⁢ times stronger than gravity. That's why a small magnet can pick up a pin against Earth's full gravity!",
     "Can PULL or PUSH (attractive AND repulsive). Works between charged particles.",
     LIGHT_BLUE, MID_BLUE),

    ("3. Strong Nuclear Force", "βš›οΈ",
     "The force that holds the centre (nucleus) of an atom together. "
     "Think about it β€” a nucleus has many protons (all positively charged). They should REPEL each other. "
     "But they don't! The strong force holds them together.",
     "STRONGEST of all 4 forces β€” 10³⁸ times stronger than gravity! But only works inside a nucleus.",
     "Only works over VERY short distances (~10⁻¹⁡ m). Always attractive between nucleons.",
     ORANGE_BG, ORANGE_DARK),

    ("4. Weak Nuclear Force", "☒️",
     "This force is responsible for radioactive decay β€” when an unstable atom breaks apart and changes. "
     "For example, a neutron can turn into a proton + electron (this is called beta decay).",
     "Stronger than gravity but weaker than EM and strong force. Works over very tiny distances.",
     "Range is ~10⁻¹⁢ m (even smaller than the strong force range).",
     PURPLE_BG, PURPLE_DARK),
]

for fname, icon, what, wow, key, bg, border in force_data:
    story.append(KeepTogether([
        Table([[Paragraph(f"{icon}  {fname}", S("fn", fontName="Helvetica-Bold",
            fontSize=11, textColor=border, leading=16))]], colWidths=[CW]),
        sp(4),
        Table([
            [Paragraph("<b>What it does:</b>", S("wh", fontName="Helvetica-Bold",
                fontSize=9, textColor=DARK_GRAY, leading=13)),
             Paragraph(what, S("wd", fontName="Helvetica", fontSize=9,
                textColor=DARK_GRAY, leading=13))],
            [Paragraph("<b>Wow fact:</b>", S("wf", fontName="Helvetica-Bold",
                fontSize=9, textColor=border, leading=13)),
             Paragraph(wow, S("wfd", fontName="Helvetica-Oblique", fontSize=9,
                textColor=DARK_GRAY, leading=13))],
            [Paragraph("<b>Key point:</b>", S("kp", fontName="Helvetica-Bold",
                fontSize=9, textColor=DARK_GRAY, leading=13)),
             Paragraph(key, S("kpd", fontName="Helvetica", fontSize=9,
                textColor=DARK_GRAY, leading=13))],
        ], colWidths=[2.8*cm, CW - 2.8*cm]),
        sp(10),
    ]))

# Comparison table
story.append(Paragraph("Quick Comparison of All 4 Forces:", SUBSEC_S))
story.append(sp(6))
story.append(make_table(
    ["Force", "Strength (compared to gravity)", "Range", "Acts on", "Carrier Particle"],
    [
        ["Gravitational",   "1  (weakest!)",       "Infinite (everywhere!)",  "All objects with mass",   "Graviton (not yet found)"],
        ["Weak Nuclear",    "10²⁡ times stronger", "Very short: 10⁻¹⁢ m",    "Subatomic particles",     "W, Z bosons"],
        ["Electromagnetic", "10³⁢ times stronger", "Infinite (everywhere!)",  "Charged particles",       "Photon (light particle)"],
        ["Strong Nuclear",  "10³⁸ times stronger", "Very short: 10⁻¹⁡ m",    "Protons & Neutrons",      "Gluons"],
    ],
    col_widths=[3.2*cm, 3.8*cm, 3.4*cm, 3.8*cm, 3.6*cm + (CW - 17.8*cm)]
))
story.append(sp(10))
story.append(callout("🧠", "Memory Trick  β€”  Strength Order (weak to strong)",
    "G  β†’  W  β†’  E  β†’  S\n"
    "Gravity  β†’  Weak Nuclear  β†’  Electromagnetic  β†’  Strong Nuclear\n"
    "= 'Good Work Every Saturday'",
    YELLOW_BG, YELLOW_DARK))

# ═══════════════════════════════════════════════════════════════
# SECTION 4 β€” CONSERVATION LAWS (SIMPLE)
# ═══════════════════════════════════════════════════════════════
story.append(PageBreak())
story.append(sec_hdr("4.  CONSERVATION LAWS  (What Never Changes!)", colors.HexColor("#004D40")))
story.append(sp(10))

story.append(callout("βš–οΈ", "What is a Conservation Law?",
    "A conservation law means: no matter what happens, a certain quantity ALWAYS stays the same. "
    "You can't create it, you can't destroy it β€” it just moves around or changes form.",
    GREEN_BG, GREEN_DARK))
story.append(sp(10))

conserv = [
    ("Conservation of Energy", "πŸ”‹",
     "Energy can never be created from nothing, and it can never be destroyed. "
     "It only CHANGES FORM.",
     "When you rub your hands together β€” mechanical energy β†’ heat energy. "
     "Total energy stays the same!",
     GREEN_BG, GREEN_DARK),
    ("Conservation of Linear Momentum", "🎱",
     "The total 'quantity of motion' (mass Γ— velocity) of a closed system stays the same "
     "if no outside force acts on it.",
     "In a game of billiards β€” when one ball hits another, the total momentum of "
     "all balls before and after the hit is the same.",
     LIGHT_BLUE, MID_BLUE),
    ("Conservation of Angular Momentum", "πŸŒ€",
     "The total spinning motion of a system stays the same if no external twist (torque) acts.",
     "A figure skater pulls their arms in and spins FASTER β€” because angular momentum "
     "must stay constant, so speed increases when arms come in!",
     ORANGE_BG, ORANGE_DARK),
    ("Conservation of Electric Charge", "⚑",
     "The total electric charge in an isolated system never changes. "
     "Positive and negative charges can cancel out, but the total stays the same.",
     "In all nuclear reactions and chemical reactions, the total charge before = total charge after.",
     PURPLE_BG, PURPLE_DARK),
]

for law, icon, explan, example, bg, border in conserv:
    story.append(KeepTogether([
        Table([[Paragraph(f"{icon}  {law}", S("cl", fontName="Helvetica-Bold",
            fontSize=11, textColor=border, leading=16))]], colWidths=[CW]),
        sp(3),
        Table([
            [Paragraph(explan, S("ce", fontName="Helvetica", fontSize=10,
                textColor=DARK_GRAY, leading=15))],
            [Paragraph(f"<b>Real Life Example:</b>  <i>{example}</i>",
                S("cex", fontName="Helvetica", fontSize=9,
                textColor=border, leading=14))],
        ], colWidths=[CW]),
        sp(4),
        HRFlowable(width=CW, thickness=0.4, color=border, spaceBefore=0, spaceAfter=0),
        sp(10),
    ]))

# Noether's Theorem
story.append(callout("🌟", "Noether's Theorem  (Advanced but Cool!)",
    "Emmy Noether (a brilliant mathematician) proved that every symmetry in nature is connected "
    "to a conservation law:\n"
    "β€’ If physics looks the same at ALL times β†’ Energy is conserved\n"
    "β€’ If physics looks the same at ALL places β†’ Momentum is conserved\n"
    "β€’ If physics looks the same in ALL directions β†’ Angular Momentum is conserved",
    PINK_BG, PINK_DARK))

# ═══════════════════════════════════════════════════════════════
# SECTION 5 β€” FORMULAS MADE EASY
# ═══════════════════════════════════════════════════════════════
story.append(PageBreak())
story.append(sec_hdr("5.  FORMULAS  β€”  Made Easy to Understand", colors.HexColor("#880E4F")))
story.append(sp(10))

story.append(callout("πŸ“", "Important Note",
    "Chapter 1 is mostly about concepts, not calculations. "
    "These formulas come from later chapters but are MENTIONED here as examples of physics. "
    "Just know what each formula means β€” you don't need to solve problems from this chapter.",
    YELLOW_BG, YELLOW_DARK))
story.append(sp(10))

formulas = [
    ("Newton's Law of Gravitation", "F = G m₁ mβ‚‚ / rΒ²",
     "F = pulling force between two objects\n"
     "G = 6.674Γ—10⁻¹¹ (a fixed number β€” Gravitational Constant)\n"
     "m₁, mβ‚‚ = masses of the two objects\n"
     "r = distance between them\n"
     "More mass = more force. More distance = less force.",
     GREEN_BG, GREEN_DARK),
    ("Coulomb's Law  (Electric Force)", "F = k q₁ qβ‚‚ / rΒ²",
     "F = electric force between two charges\n"
     "k = 9Γ—10⁹ (a fixed number)\n"
     "q₁, qβ‚‚ = the two electric charges\n"
     "r = distance between them\n"
     "Same shape as gravity formula β€” but works for charges!",
     LIGHT_BLUE, MID_BLUE),
    ("Einstein's Famous Formula", "E = m cΒ²",
     "E = Energy\n"
     "m = mass (even a tiny bit of mass has HUGE energy!)\n"
     "c = speed of light = 3Γ—10⁸ m/s  (cΒ² is a HUGE number)\n"
     "This means: mass can be converted to energy. This is why nuclear bombs and nuclear power plants work!",
     ORANGE_BG, ORANGE_DARK),
    ("Planck's Formula  (Energy of Light)", "E = h Ξ½",
     "E = energy of one tiny packet (photon) of light\n"
     "h = 6.626Γ—10⁻³⁴ JΒ·s  (Planck's constant β€” very tiny number)\n"
     "Ξ½ (nu) = frequency of light (how fast it vibrates)\n"
     "Higher frequency light (like X-rays) has MORE energy than low frequency light (like radio waves).",
     PURPLE_BG, PURPLE_DARK),
    ("de Broglie Wavelength  (Matter as Wave)", "Ξ» = h / (m v)",
     "Ξ» (lambda) = wavelength of a moving particle\n"
     "h = Planck's constant\n"
     "m = mass of particle,  v = its speed\n"
     "Amazing idea: Moving particles (like electrons) also behave like waves! "
     "This is the basis of quantum mechanics.",
     PINK_BG, PINK_DARK),
]

for fname, formula, explanation, bg, border in formulas:
    story.append(KeepTogether([
        Paragraph(fname, SUBSEC_S),
        sp(4),
        formula_box(formula, bg=bg, border=border),
        sp(6),
        Table([[Paragraph(explanation.replace("\n","<br/>"),
            S("fe", fontName="Helvetica", fontSize=9, textColor=DARK_GRAY,
              leading=14, leftIndent=8))]], colWidths=[CW]),
        sp(12),
    ]))

# ═══════════════════════════════════════════════════════════════
# SECTION 6 β€” PHYSICS & TECHNOLOGY (SIMPLE)
# ═══════════════════════════════════════════════════════════════
story.append(PageBreak())
story.append(sec_hdr("6.  PHYSICS GAVE US TECHNOLOGY!", ACCENT))
story.append(sp(10))

story.append(callout("πŸš€", "The Big Picture",
    "Every modern technology you use β€” smartphones, the internet, hospitals, aeroplanes, electricity β€” "
    "exists because of discoveries in Physics. Physics discoveries β†’ Engineers build technology β†’ "
    "Society benefits!",
    YELLOW_BG, YELLOW_DARK))
story.append(sp(10))

story.append(make_table(
    ["Physics Discovery", "Technology It Created", "How It Helps Us"],
    [
        ["Gravity & Motion Laws\n(Newton)",        "Rockets, Satellites, GPS",            "Space travel, Google Maps, navigation"],
        ["Electromagnetic Induction\n(Faraday)",   "Electric generators & motors",        "All electricity in your home!"],
        ["EM Waves (Maxwell)",                     "Radio, TV, Wi-Fi, Mobile phones",     "Global communication"],
        ["X-rays (RΓΆntgen, 1895)",                 "Medical X-ray machines",              "Doctors can see inside your body"],
        ["Nuclear Fission",                        "Nuclear power plants",                "Electricity for millions of homes"],
        ["Quantum Mechanics",                      "Transistors, Computers, Lasers",      "Smartphones, internet, surgery"],
        ["Superconductivity",                      "MRI machines, Maglev trains",         "Better hospitals, faster trains"],
        ["Radioactivity",                          "Cancer radiation therapy",            "Treating cancer patients"],
    ],
    col_widths=[4.5*cm, 4.5*cm, CW - 9.0*cm]
))
story.append(sp(12))

# ═══════════════════════════════════════════════════════════════
# SECTION 7 β€” FAMOUS SCIENTISTS
# ═══════════════════════════════════════════════════════════════
story.append(sec_hdr("7.  FAMOUS SCIENTISTS  (Easy to Remember)", colors.HexColor("#1A237E")))
story.append(sp(10))

story.append(make_table(
    ["Scientist", "Country", "What They Did  (Simple Version)"],
    [
        ["Galileo Galilei\n(1564–1642)",    "Italy",   "First used a telescope for astronomy. Proved objects fall at same speed regardless of weight. Father of modern science."],
        ["Isaac Newton\n(1643–1727)",       "England", "Explained why things fall (gravity). Gave 3 laws of motion. Invented calculus. 'Apple falling' story!"],
        ["James Maxwell\n(1831–1879)",      "Scotland","Showed electricity and magnetism are ONE force. Predicted radio waves exist before anyone proved it!"],
        ["Marie Curie\n(1867–1934)",        "Poland",  "Discovered radioactivity. First woman to win Nobel Prize. Won it TWICE (Physics + Chemistry)!"],
        ["Max Planck\n(1858–1947)",         "Germany", "Discovered that energy comes in tiny packets called 'quanta'. Started Quantum Physics."],
        ["Albert Einstein\n(1879–1955)",    "Germany", "E = mcΒ². Showed time slows down at high speeds. Explained how light works. Genius!"],
        ["Niels Bohr\n(1885–1962)",         "Denmark", "Made a model of the atom β€” electrons orbit nucleus like planets orbit Sun."],
        ["Ernest Rutherford\n(1871–1937)",  "N. Zealand","Discovered that atoms have a tiny heavy nucleus in the centre. 'Father of Nuclear Physics'."],
        ["C. V. Raman\n(1888–1970)",        "India",   "Discovered Raman Effect β€” light changes colour when scattered. Won Nobel Prize 1930. ONLY Indian physicist to win Nobel!"],
        ["S. N. Bose\n(1894–1974)",         "India",   "Worked with Einstein on quantum statistics. 'Bosons' (a type of particle) are named after him!"],
    ],
    col_widths=[4.0*cm, 2.5*cm, CW - 6.5*cm]
))
story.append(sp(12))

# ═══════════════════════════════════════════════════════════════
# SECTION 8 β€” UNIFICATION (SIMPLE)
# ═══════════════════════════════════════════════════════════════
story.append(sec_hdr("8.  UNIFICATION OF FORCES  (The Big Dream!)", MID_BLUE))
story.append(sp(10))

story.append(callout("πŸ’­", "The Dream of Physics",
    "Physicists have always dreamed of finding ONE single rule that explains EVERYTHING in the universe. "
    "We are not there yet β€” but we're getting closer!",
    LIGHT_BLUE, MID_BLUE))
story.append(sp(10))

# Progress diagram as table
story.append(make_table(
    ["Unified Theory", "Forces Joined Together", "Who Did It?", "Is it proved?"],
    [
        ["Electromagnetism",           "Electricity + Magnetism",              "Maxwell (1865)",                   "YES βœ“"],
        ["Electroweak Theory",         "EM Force + Weak Nuclear Force",        "Glashow, Salam, Weinberg (1979)",   "YES βœ“"],
        ["Grand Unified Theory (GUT)", "Electroweak + Strong Nuclear Force",   "Scientists working on it...",       "NOT YET βœ—"],
        ["Theory of Everything (TOE)", "ALL 4 forces including Gravity",       "Nobody yet!",                       "NOT YET βœ—"],
    ],
    col_widths=[4.5*cm, 5.0*cm, 4.5*cm, 2.5*cm + (CW - 16.5*cm)]
))
story.append(sp(10))

story.append(callout("🌈", "Why is This a Big Deal?",
    "If scientists find the Theory of Everything, we will understand the ENTIRE universe "
    "with just ONE simple formula. Right now, gravity doesn't fit with quantum mechanics. "
    "Solving this is the biggest unsolved problem in physics!",
    PINK_BG, PINK_DARK))

# ═══════════════════════════════════════════════════════════════
# SECTION 9 β€” QUICK REVISION
# ═══════════════════════════════════════════════════════════════
story.append(PageBreak())
story.append(sec_hdr("9.  QUICK REVISION  β€”  30 Must-Know Points", ACCENT))
story.append(sp(10))

revision = [
    ("1",  "Physics studies matter, energy, space, time and their interactions."),
    ("2",  "The word 'Physics' comes from Greek word 'fusis' = nature."),
    ("3",  "There are exactly 4 fundamental forces in nature."),
    ("4",  "Strongest force = Strong Nuclear Force."),
    ("5",  "Weakest force = Gravitational Force."),
    ("6",  "Gravity is ALWAYS attractive β€” it never repels."),
    ("7",  "EM force can attract OR repel (depends on charges)."),
    ("8",  "Strong nuclear force holds the nucleus together."),
    ("9",  "Weak nuclear force causes radioactive beta decay."),
    ("10", "Photon (particle of light) carries the EM force."),
    ("11", "Gluons carry the Strong Nuclear Force."),
    ("12", "W and Z bosons carry the Weak Nuclear Force."),
    ("13", "Graviton is theoretical β€” not yet discovered."),
    ("14", "Conservation of Energy: Energy can't be created or destroyed."),
    ("15", "Conservation of Momentum: p = mv stays constant in a closed system."),
    ("16", "Noether's Theorem: Every symmetry = a conservation law."),
    ("17", "Maxwell unified electricity and magnetism in 1865."),
    ("18", "Glashow, Salam, Weinberg unified EM + Weak forces (Nobel 1979)."),
    ("19", "Theory of Everything = unifying all 4 forces. NOT achieved yet."),
    ("20", "E = mcΒ² means mass can convert to huge amounts of energy."),
    ("21", "Planck's constant h = 6.626 Γ— 10⁻³⁴ JΒ·s."),
    ("22", "Speed of light c = 3 Γ— 10⁸ m/s."),
    ("23", "C. V. Raman β€” only Indian physicist to win Nobel Prize (1930)."),
    ("24", "Bosons are named after S. N. Bose (Indian scientist)."),
    ("25", "Reductionism = explaining complex things using simple laws."),
    ("26", "Unification = showing different things follow the same law."),
    ("27", "X-rays were discovered by RΓΆntgen in 1895."),
    ("28", "Transistors work because of Quantum Mechanics."),
    ("29", "Strong force range β‰ˆ 10⁻¹⁡ m; Weak force range β‰ˆ 10⁻¹⁢ m."),
    ("30", "Chapter 1 is conceptual β€” no numerical problems in board exam!"),
]

# 2-column table
half_r = len(revision) // 2
left_r = revision[:half_r]
right_r = revision[half_r:]
r_data = []
for i in range(max(len(left_r), len(right_r))):
    row = []
    if i < len(left_r):
        n, txt = left_r[i]
        row += [Paragraph(f"<b>{n}.</b>", S("rn", fontName="Helvetica-Bold",
            fontSize=9, textColor=ACCENT, leading=14)),
                Paragraph(txt, S("rt", fontName="Helvetica", fontSize=9,
                    textColor=DARK_GRAY, leading=13))]
    else:
        row += [Paragraph("", BODY_S), Paragraph("", BODY_S)]
    row.append(Paragraph("", BODY_S))  # divider col
    if i < len(right_r):
        n, txt = right_r[i]
        row += [Paragraph(f"<b>{n}.</b>", S("rn2", fontName="Helvetica-Bold",
            fontSize=9, textColor=ACCENT, leading=14)),
                Paragraph(txt, S("rt2", fontName="Helvetica", fontSize=9,
                    textColor=DARK_GRAY, leading=13))]
    else:
        row += [Paragraph("", BODY_S), Paragraph("", BODY_S)]
    r_data.append(row)

half = (CW - 5*mm) / 2
rt = Table(r_data, colWidths=[0.8*cm, half - 0.8*cm, 5*mm, 0.8*cm, half - 0.8*cm])
rt.setStyle(TableStyle([
    ("VALIGN",(0,0),(-1,-1),"TOP"),
    ("TOPPADDING",(0,0),(-1,-1),3), ("BOTTOMPADDING",(0,0),(-1,-1),3),
    ("LINEBELOW",(0,0),(1,-1), 0.3, MED_GRAY),
    ("LINEBELOW",(3,0),(4,-1), 0.3, MED_GRAY),
    ("ROWBACKGROUNDS",(0,0),(1,-1),[WHITE, LIGHT_GRAY]),
    ("ROWBACKGROUNDS",(3,0),(4,-1),[WHITE, LIGHT_GRAY]),
]))
story.append(rt)
story.append(sp(16))

story.append(callout("🎯", "Exam Strategy for Chapter 1",
    "This chapter has NO calculations or tough sums. Exams mostly ask:\n"
    "β€’ 1-mark: 'What is the strongest/weakest force?', 'Who gave E=mcΒ²?'\n"
    "β€’ 2-mark: Define hypothesis vs theory, OR name the 4 fundamental forces.\n"
    "β€’ 3-mark: Write properties of any one fundamental force.\n"
    "β€’ Focus on: 4 forces, their properties, conservation laws, scientist names.",
    PINK_BG, PINK_DARK))
story.append(sp(20))

story.append(Paragraph(
    "You've got this! Study smart and score full marks.  🌟  β€” Orris AI",
    S("fin", fontName="Helvetica-BoldOblique", fontSize=11,
      textColor=DARK_BLUE, alignment=TA_CENTER)
))

# ── Build PDF ──────────────────────────────────────────────────
doc.build(story, onFirstPage=on_page, onLaterPages=on_page)
print(f"βœ…  PDF saved to: {OUTPUT}")
Running Command

cd /tmp/workspace/physical-world-studyguide && python generate_easy_pdf.py 2>&1

Running Command

ls -lh /tmp/workspace/physical-world-studyguide/Physical_World_Easy_Language.pdf

Your easy-language PDF is ready! Download it here:

Physical World Easy Language

PDF Document Β· PDF


What's different in this version:

FeaturePrevious PDFThis Easy Version
LanguageTechnical/formalPlain simple English
DefinitionsDictionary-style"In simple words..." with real-life examples
Forces sectionProperties listedStories + "Wow facts" + daily life analogies
FormulasJust the formula + variablesExplains what each part MEANS in plain words
Conservation lawsFormal statementsReal-life examples (skater, billiards)
ScientistsFormal contributionsFun one-liners ("Apple falling story!")
Memory aidsNoneMnemonics like "Good Work Every Saturday" for force strength order
Revision sectionOne-liners30 must-know points in 2-column layout
Exam tipsBasic noteSpecific: what types of questions come from this chapter
Every concept is explained the way a friend would explain it to you - not like a textbook! πŸ“š
This is a shared conversation. Sign in to Orris to start your own chat.