Can you make a presentation

Asking for Preferences
Asking for Preferences
Reading File
Reading File
Running Command

ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace not found"

Running Command

mkdir -p /home/daytona/workspace/immune-system-pptx

Writing File

~/immune-system-pptx/build.js

const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "The Human Immune System";
pres.author = "Health & Medicine – Academic Presentation";

// ─── PALETTE ───────────────────────────────────────────────────────────────
const C = {
  navy:    "0D1B2A",   // dominant dark background
  teal:    "1B7F8E",   // primary accent
  mint:    "3EC6C6",   // secondary accent / highlights
  white:   "FFFFFF",
  offwhite:"E8F4F8",
  gold:    "F4B942",   // callout / emphasis
  lightGray:"C5D8E0",
  midGray: "7BA3B0",
  darkTeal:"145A6A",
  bodyText:"D6EEF5",
};

// ─── HELPERS ────────────────────────────────────────────────────────────────

function addBg(slide, color) {
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color } });
}

function addAccentBar(slide, color = C.teal, x = 0, y = 5.1, w = 10, h = 0.15) {
  slide.addShape(pres.ShapeType.rect, { x, y, w, h, fill: { color }, line: { color, width: 0 } });
}

function slideNumber(slide, n) {
  slide.addText(`${n}`, {
    x: 9.5, y: 5.25, w: 0.4, h: 0.25, fontSize: 9, color: C.midGray, align: "right",
  });
}

function addTag(slide, label, x, y, color = C.teal) {
  slide.addShape(pres.ShapeType.roundRect, {
    x, y, w: 1.8, h: 0.3, fill: { color }, line: { color, width: 0 }, rectRadius: 0.04,
  });
  slide.addText(label, {
    x, y, w: 1.8, h: 0.3, fontSize: 9, color: C.white, bold: true, align: "center", valign: "middle", margin: 0,
  });
}

function sectionDivider(slide, label, emoji) {
  addBg(slide, C.darkTeal);
  // big circle decoration
  slide.addShape(pres.ShapeType.ellipse, {
    x: 7.5, y: -0.8, w: 4, h: 4, fill: { color: C.teal, transparency: 80 }, line: { color: C.teal, transparency: 80, width: 0 },
  });
  slide.addShape(pres.ShapeType.ellipse, {
    x: -0.8, y: 3.2, w: 2.5, h: 2.5, fill: { color: C.mint, transparency: 85 }, line: { color: C.mint, transparency: 85, width: 0 },
  });
  if (emoji) {
    slide.addText(emoji, { x: 0.5, y: 1.2, w: 2, h: 2, fontSize: 72, align: "center", valign: "middle" });
  }
  slide.addText(label, {
    x: 2.6, y: 1.8, w: 7, h: 2, fontSize: 38, bold: true, color: C.white, align: "left", valign: "middle",
  });
  addAccentBar(slide, C.mint);
}

// ─── SLIDE 1 – TITLE ────────────────────────────────────────────────────────
{
  const s = pres.addSlide();
  addBg(s, C.navy);

  // decorative circles
  s.addShape(pres.ShapeType.ellipse, { x: 7.2, y: -1.2, w: 5, h: 5, fill: { color: C.teal, transparency: 75 }, line: { color: C.teal, transparency: 75, width: 0 } });
  s.addShape(pres.ShapeType.ellipse, { x: -1.5, y: 3.5, w: 3.5, h: 3.5, fill: { color: C.mint, transparency: 80 }, line: { color: C.mint, transparency: 80, width: 0 } });

  // top label
  s.addText("HEALTH & MEDICINE  •  ACADEMIC PRESENTATION", {
    x: 0.5, y: 0.35, w: 9, h: 0.3, fontSize: 9, color: C.midGray, align: "left", bold: true, charSpacing: 3,
  });

  // big emoji icon
  s.addText("🛡️", { x: 0.3, y: 1.0, w: 1.5, h: 1.5, fontSize: 56, align: "center" });

  // main title
  s.addText("The Human\nImmune System", {
    x: 1.9, y: 0.85, w: 7.5, h: 2.2, fontSize: 46, bold: true, color: C.white, align: "left", valign: "middle",
  });

  // subtitle
  s.addText("How Your Body Defends Itself — From Cells to Antibodies", {
    x: 1.9, y: 3.1, w: 7.5, h: 0.5, fontSize: 15, color: C.mint, align: "left", italic: true,
  });

  // accent line
  s.addShape(pres.ShapeType.rect, { x: 1.9, y: 3.75, w: 3.5, h: 0.05, fill: { color: C.gold }, line: { color: C.gold, width: 0 } });

  s.addText("Presented for Academic Study  •  June 2026", {
    x: 1.9, y: 3.9, w: 7, h: 0.3, fontSize: 10, color: C.midGray, align: "left",
  });

  addAccentBar(s, C.teal, 0, 5.47, 10, 0.155);
}

// ─── SLIDE 2 – AGENDA ───────────────────────────────────────────────────────
{
  const s = pres.addSlide();
  addBg(s, C.navy);

  s.addText("AGENDA", { x: 0.5, y: 0.25, w: 9, h: 0.3, fontSize: 10, bold: true, color: C.mint, charSpacing: 4 });
  s.addText("What We'll Cover Today", { x: 0.5, y: 0.55, w: 9, h: 0.6, fontSize: 26, bold: true, color: C.white });
  s.addShape(pres.ShapeType.rect, { x: 0.5, y: 1.2, w: 0.06, h: 3.6, fill: { color: C.teal }, line: { color: C.teal, width: 0 } });

  const items = [
    ["01", "Introduction – What Is the Immune System?"],
    ["02", "First Line of Defense – Physical & Chemical Barriers"],
    ["03", "Innate Immunity – The Fast Responders"],
    ["04", "Adaptive Immunity – Targeted Precision"],
    ["05", "B Cells & Antibodies"],
    ["06", "T Cells & Cell-Mediated Immunity"],
    ["07", "Immunological Memory & Vaccines"],
    ["08", "Immune Disorders & Dysfunction"],
    ["09", "Cutting-Edge Research & Future Directions"],
  ];

  items.forEach(([num, title], i) => {
    const y = 1.25 + i * 0.42;
    s.addShape(pres.ShapeType.ellipse, { x: 0.65, y: y + 0.05, w: 0.28, h: 0.28, fill: { color: C.teal }, line: { color: C.teal, width: 0 } });
    s.addText(num, { x: 0.65, y: y + 0.04, w: 0.28, h: 0.28, fontSize: 8, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
    s.addText(title, { x: 1.1, y, w: 8.4, h: 0.38, fontSize: 13, color: C.offwhite, valign: "middle" });
  });

  addAccentBar(s, C.mint);
  slideNumber(s, 2);
}

// ─── SLIDE 3 – WHAT IS THE IMMUNE SYSTEM? ───────────────────────────────────
{
  const s = pres.addSlide();
  addBg(s, C.navy);
  addTag(s, "INTRODUCTION", 0.5, 0.2);

  s.addText("What Is the Immune System?", { x: 0.5, y: 0.6, w: 9, h: 0.65, fontSize: 28, bold: true, color: C.white });
  s.addShape(pres.ShapeType.rect, { x: 0.5, y: 1.27, w: 4, h: 0.04, fill: { color: C.gold }, line: { color: C.gold, width: 0 } });

  s.addText(
    "The immune system is a complex network of cells, tissues, and organs that works together to defend the body against harmful invaders — including bacteria, viruses, fungi, and parasites.",
    { x: 0.5, y: 1.42, w: 9, h: 0.9, fontSize: 13.5, color: C.bodyText, align: "left" }
  );

  // 3 stat boxes
  const stats = [
    { icon: "🦠", val: "37 trillion", label: "Cells in the human body" },
    { icon: "🔬", val: "~2 billion", label: "White blood cells circulating" },
    { icon: "⚔️", val: "100M+", label: "Unique antibody types possible" },
  ];
  stats.forEach((st, i) => {
    const x = 0.4 + i * 3.1;
    s.addShape(pres.ShapeType.roundRect, { x, y: 2.55, w: 2.8, h: 2.4, fill: { color: C.darkTeal }, line: { color: C.teal, width: 1 }, rectRadius: 0.1 });
    s.addText(st.icon, { x, y: 2.65, w: 2.8, h: 0.7, fontSize: 28, align: "center" });
    s.addText(st.val, { x, y: 3.35, w: 2.8, h: 0.5, fontSize: 18, bold: true, color: C.mint, align: "center" });
    s.addText(st.label, { x, y: 3.85, w: 2.8, h: 0.7, fontSize: 10.5, color: C.lightGray, align: "center" });
  });

  addAccentBar(s, C.teal);
  slideNumber(s, 3);
}

// ─── SLIDE 4 – SECTION DIVIDER: FIRST LINE ──────────────────────────────────
{
  const s = pres.addSlide();
  sectionDivider(s, "First Line of Defense", "🧱");
  addTag(s, "SECTION 1", 2.6, 1.2, C.gold);
  slideNumber(s, 4);
}

// ─── SLIDE 5 – PHYSICAL & CHEMICAL BARRIERS ─────────────────────────────────
{
  const s = pres.addSlide();
  addBg(s, C.navy);
  addTag(s, "BARRIERS", 0.5, 0.2, C.gold);

  s.addText("Physical & Chemical Barriers", { x: 0.5, y: 0.6, w: 9, h: 0.65, fontSize: 26, bold: true, color: C.white });
  s.addShape(pres.ShapeType.rect, { x: 0.5, y: 1.27, w: 3.5, h: 0.04, fill: { color: C.gold }, line: { color: C.gold, width: 0 } });

  const barriers = [
    { icon: "🫀", title: "Skin", desc: "Physical barrier; acidic pH (~5.5) inhibits most pathogens. Largest organ of the immune system." },
    { icon: "👃", title: "Mucous Membranes", desc: "Trap pathogens in the respiratory, GI, and urogenital tracts. Cilia sweep debris upward." },
    { icon: "😢", title: "Secretions", desc: "Saliva, tears, and nasal mucus contain lysozyme — an enzyme that destroys bacterial cell walls." },
    { icon: "🧬", title: "Microbiome", desc: "~38 trillion commensal bacteria compete with pathogens and train immune responses." },
  ];

  barriers.forEach((b, i) => {
    const row = Math.floor(i / 2);
    const col = i % 2;
    const x = 0.4 + col * 4.8;
    const y = 1.5 + row * 1.9;
    s.addShape(pres.ShapeType.roundRect, { x, y, w: 4.4, h: 1.75, fill: { color: C.darkTeal }, line: { color: C.teal, width: 1 }, rectRadius: 0.1 });
    s.addText(b.icon, { x: x + 0.15, y: y + 0.25, w: 0.7, h: 0.7, fontSize: 24, align: "center" });
    s.addText(b.title, { x: x + 0.9, y: y + 0.15, w: 3.3, h: 0.38, fontSize: 14, bold: true, color: C.mint });
    s.addText(b.desc, { x: x + 0.9, y: y + 0.55, w: 3.3, h: 1.0, fontSize: 10.5, color: C.bodyText });
  });

  addAccentBar(s, C.teal);
  slideNumber(s, 5);
}

// ─── SLIDE 6 – SECTION DIVIDER: INNATE IMMUNITY ─────────────────────────────
{
  const s = pres.addSlide();
  sectionDivider(s, "Innate Immunity", "⚡");
  addTag(s, "SECTION 2", 2.6, 1.2, C.gold);
  slideNumber(s, 6);
}

// ─── SLIDE 7 – INNATE IMMUNITY OVERVIEW ──────────────────────────────────────
{
  const s = pres.addSlide();
  addBg(s, C.navy);
  addTag(s, "INNATE IMMUNITY", 0.5, 0.2, C.teal);

  s.addText("Innate Immunity – The Fast Responders", { x: 0.5, y: 0.6, w: 9, h: 0.65, fontSize: 24, bold: true, color: C.white });

  s.addText("Innate immunity is non-specific and activated within minutes to hours of pathogen exposure. It does not require prior exposure and has no memory.", {
    x: 0.5, y: 1.35, w: 9, h: 0.65, fontSize: 12.5, color: C.bodyText,
  });

  const cells = [
    { icon: "🔴", name: "Neutrophils", role: "First to arrive; phagocytose and destroy pathogens via enzymes and reactive oxygen species." },
    { icon: "🟠", name: "Macrophages", role: "Engulf debris and pathogens; release cytokines that coordinate the immune response." },
    { icon: "🟡", name: "Dendritic Cells", role: "Bridge innate and adaptive immunity; present antigens to T cells." },
    { icon: "🟢", name: "Natural Killer (NK) Cells", role: "Destroy virus-infected cells and tumor cells without prior sensitization." },
    { icon: "🔵", name: "Mast Cells", role: "Release histamine to trigger inflammation; key in allergic responses." },
    { icon: "🟣", name: "Complement System", role: "Cascade of proteins that lyse pathogens, opsonize targets, and attract immune cells." },
  ];

  cells.forEach((c, i) => {
    const col = i % 3;
    const row = Math.floor(i / 3);
    const x = 0.3 + col * 3.2;
    const y = 2.1 + row * 1.55;
    s.addShape(pres.ShapeType.roundRect, { x, y, w: 3.0, h: 1.4, fill: { color: C.darkTeal }, line: { color: C.teal, width: 1 }, rectRadius: 0.08 });
    s.addText(c.icon + "  " + c.name, { x: x + 0.15, y: y + 0.1, w: 2.7, h: 0.38, fontSize: 12, bold: true, color: C.mint });
    s.addText(c.role, { x: x + 0.15, y: y + 0.5, w: 2.7, h: 0.8, fontSize: 9.5, color: C.bodyText });
  });

  addAccentBar(s, C.teal);
  slideNumber(s, 7);
}

// ─── SLIDE 8 – INFLAMMATION ───────────────────────────────────────────────────
{
  const s = pres.addSlide();
  addBg(s, C.navy);
  addTag(s, "INNATE IMMUNITY", 0.5, 0.2, C.teal);

  s.addText("Inflammation – The Body's Alarm System", { x: 0.5, y: 0.6, w: 9, h: 0.65, fontSize: 24, bold: true, color: C.white });

  // 4 cardinal signs
  const signs = [
    { latin: "Rubor", english: "Redness", icon: "🔴", desc: "Vasodilation increases blood flow to the site of injury." },
    { latin: "Tumor", english: "Swelling", icon: "💧", desc: "Increased vascular permeability causes fluid leakage into tissues." },
    { latin: "Calor", english: "Heat", icon: "🌡️", desc: "Elevated local temperature inhibits pathogen replication." },
    { latin: "Dolor", english: "Pain", icon: "⚡", desc: "Prostaglandins sensitize nociceptors at the injury site." },
  ];

  s.addText("The 4 Cardinal Signs of Inflammation (Celsus, 1st century AD):", {
    x: 0.5, y: 1.35, w: 9, h: 0.4, fontSize: 13, color: C.gold, bold: true,
  });

  signs.forEach((sg, i) => {
    const x = 0.3 + i * 2.35;
    s.addShape(pres.ShapeType.roundRect, { x, y: 1.9, w: 2.15, h: 3.0, fill: { color: C.darkTeal }, line: { color: C.teal, width: 1 }, rectRadius: 0.1 });
    s.addText(sg.icon, { x, y: 2.05, w: 2.15, h: 0.6, fontSize: 28, align: "center" });
    s.addText(sg.latin, { x, y: 2.7, w: 2.15, h: 0.4, fontSize: 14, bold: true, color: C.mint, align: "center", italic: true });
    s.addText(`"${sg.english}"`, { x, y: 3.1, w: 2.15, h: 0.3, fontSize: 11, color: C.gold, align: "center", bold: true });
    s.addText(sg.desc, { x: x + 0.1, y: 3.45, w: 1.95, h: 1.2, fontSize: 10, color: C.bodyText, align: "center" });
  });

  addAccentBar(s, C.teal);
  slideNumber(s, 8);
}

// ─── SLIDE 9 – SECTION DIVIDER: ADAPTIVE IMMUNITY ───────────────────────────
{
  const s = pres.addSlide();
  sectionDivider(s, "Adaptive Immunity", "🎯");
  addTag(s, "SECTION 3", 2.6, 1.2, C.gold);
  slideNumber(s, 9);
}

// ─── SLIDE 10 – B CELLS & ANTIBODIES ─────────────────────────────────────────
{
  const s = pres.addSlide();
  addBg(s, C.navy);
  addTag(s, "B CELLS", 0.5, 0.2, C.mint);

  s.addText("B Cells & Antibodies", { x: 0.5, y: 0.6, w: 9, h: 0.65, fontSize: 27, bold: true, color: C.white });
  s.addShape(pres.ShapeType.rect, { x: 0.5, y: 1.27, w: 3.0, h: 0.04, fill: { color: C.mint }, line: { color: C.mint, width: 0 } });

  s.addText("B lymphocytes are produced in bone marrow and mature into plasma cells that secrete antibodies (immunoglobulins). Each B cell recognizes a unique antigen via its B cell receptor (BCR).", {
    x: 0.5, y: 1.4, w: 9, h: 0.7, fontSize: 12.5, color: C.bodyText,
  });

  // 5 antibody classes
  s.addText("The 5 Antibody Classes:", { x: 0.5, y: 2.2, w: 9, h: 0.4, fontSize: 14, bold: true, color: C.gold });

  const abs = [
    { cls: "IgG", role: "Most abundant; crosses placenta; long-term protection", color: C.teal },
    { cls: "IgM", role: "First antibody produced; pentameric; activates complement", color: C.mint },
    { cls: "IgA", role: "Secretory; found in saliva, breast milk, mucus", color: C.gold },
    { cls: "IgE", role: "Triggers allergic reactions; anti-parasite defense", color: "E05C5C" },
    { cls: "IgD", role: "B cell activation signaling; role not fully understood", color: C.midGray },
  ];

  abs.forEach((ab, i) => {
    const x = 0.3 + i * 1.9;
    s.addShape(pres.ShapeType.roundRect, { x, y: 2.7, w: 1.75, h: 2.3, fill: { color: C.darkTeal }, line: { color: ab.color, width: 2 }, rectRadius: 0.1 });
    s.addText(ab.cls, { x, y: 2.8, w: 1.75, h: 0.5, fontSize: 18, bold: true, color: ab.color, align: "center" });
    s.addText(ab.role, { x: x + 0.1, y: 3.35, w: 1.55, h: 1.5, fontSize: 9.5, color: C.bodyText, align: "center" });
  });

  addAccentBar(s, C.mint);
  slideNumber(s, 10);
}

// ─── SLIDE 11 – T CELLS ───────────────────────────────────────────────────────
{
  const s = pres.addSlide();
  addBg(s, C.navy);
  addTag(s, "T CELLS", 0.5, 0.2, C.teal);

  s.addText("T Cells & Cell-Mediated Immunity", { x: 0.5, y: 0.6, w: 9, h: 0.65, fontSize: 25, bold: true, color: C.white });

  s.addText("T lymphocytes mature in the thymus and are activated when their T cell receptor (TCR) recognizes antigens presented by MHC molecules on antigen-presenting cells (APCs).", {
    x: 0.5, y: 1.35, w: 9, h: 0.65, fontSize: 12.5, color: C.bodyText,
  });

  const tcells = [
    {
      type: "CD4+ Helper T Cells", icon: "🤝",
      points: [
        "Coordinate the overall immune response",
        "Activate B cells to produce antibodies",
        "Help cytotoxic T cells kill infected cells",
        "Subtypes: Th1, Th2, Th17, Treg",
      ],
    },
    {
      type: "CD8+ Cytotoxic T Cells", icon: "🗡️",
      points: [
        "Directly kill virus-infected & tumor cells",
        "Release perforin and granzymes",
        "Induce apoptosis in target cells",
        "Critical in cancer immunotherapy",
      ],
    },
    {
      type: "Regulatory T Cells (Tregs)", icon: "🛑",
      points: [
        "Suppress excessive immune responses",
        "Prevent autoimmunity",
        "Maintain tolerance to self-antigens",
        "Express FoxP3 transcription factor",
      ],
    },
  ];

  tcells.forEach((tc, i) => {
    const x = 0.3 + i * 3.2;
    s.addShape(pres.ShapeType.roundRect, { x, y: 2.1, w: 3.0, h: 3.0, fill: { color: C.darkTeal }, line: { color: C.teal, width: 1 }, rectRadius: 0.1 });
    s.addText(tc.icon, { x, y: 2.2, w: 3.0, h: 0.5, fontSize: 22, align: "center" });
    s.addText(tc.type, { x: x + 0.1, y: 2.75, w: 2.8, h: 0.5, fontSize: 11.5, bold: true, color: C.mint, align: "center" });
    tc.points.forEach((pt, j) => {
      s.addText("• " + pt, { x: x + 0.15, y: 3.3 + j * 0.42, w: 2.7, h: 0.38, fontSize: 9.5, color: C.bodyText });
    });
  });

  addAccentBar(s, C.teal);
  slideNumber(s, 11);
}

// ─── SLIDE 12 – MHC & ANTIGEN PRESENTATION ───────────────────────────────────
{
  const s = pres.addSlide();
  addBg(s, C.navy);
  addTag(s, "ADAPTIVE IMMUNITY", 0.5, 0.2, C.teal);

  s.addText("MHC & Antigen Presentation", { x: 0.5, y: 0.6, w: 9, h: 0.65, fontSize: 26, bold: true, color: C.white });

  s.addText("Major Histocompatibility Complex (MHC) molecules display antigen fragments on cell surfaces so T cells can recognize infection or malignancy.", {
    x: 0.5, y: 1.35, w: 9, h: 0.65, fontSize: 12.5, color: C.bodyText,
  });

  // Two columns
  const cols = [
    {
      title: "MHC Class I", color: C.teal,
      facts: [
        "Present on ALL nucleated body cells",
        "Display peptides from INTRACELLULAR pathogens (viruses)",
        "Recognized by CD8+ cytotoxic T cells",
        "Signals 'kill me' when infected",
        "Encoded by HLA-A, HLA-B, HLA-C genes",
      ],
    },
    {
      title: "MHC Class II", color: C.mint,
      facts: [
        "Present only on APCs (macrophages, dendritic cells, B cells)",
        "Display peptides from EXTRACELLULAR pathogens (bacteria)",
        "Recognized by CD4+ helper T cells",
        "Coordinates the adaptive immune response",
        "Encoded by HLA-DR, HLA-DQ, HLA-DP genes",
      ],
    },
  ];

  cols.forEach((col, i) => {
    const x = 0.4 + i * 4.9;
    s.addShape(pres.ShapeType.roundRect, { x, y: 2.05, w: 4.5, h: 3.3, fill: { color: C.darkTeal }, line: { color: col.color, width: 2 }, rectRadius: 0.1 });
    s.addShape(pres.ShapeType.rect, { x, y: 2.05, w: 4.5, h: 0.45, fill: { color: col.color }, line: { color: col.color, width: 0 } });
    s.addText(col.title, { x, y: 2.05, w: 4.5, h: 0.45, fontSize: 15, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
    col.facts.forEach((f, j) => {
      s.addText("▸  " + f, { x: x + 0.2, y: 2.6 + j * 0.52, w: 4.1, h: 0.45, fontSize: 10.5, color: C.bodyText });
    });
  });

  addAccentBar(s, C.teal);
  slideNumber(s, 12);
}

// ─── SLIDE 13 – IMMUNOLOGICAL MEMORY & VACCINES ──────────────────────────────
{
  const s = pres.addSlide();
  addBg(s, C.navy);
  addTag(s, "MEMORY & VACCINES", 0.5, 0.2, C.gold);

  s.addText("Immunological Memory & Vaccines", { x: 0.5, y: 0.6, w: 9, h: 0.65, fontSize: 24, bold: true, color: C.white });
  s.addShape(pres.ShapeType.rect, { x: 0.5, y: 1.27, w: 4.0, h: 0.04, fill: { color: C.gold }, line: { color: C.gold, width: 0 } });

  s.addText("After infection or vaccination, long-lived memory B and T cells persist for decades — enabling a faster, stronger secondary immune response upon re-exposure.", {
    x: 0.5, y: 1.42, w: 9, h: 0.65, fontSize: 12.5, color: C.bodyText,
  });

  // Primary vs Secondary response comparison
  s.addText("Primary vs. Secondary Immune Response", { x: 0.5, y: 2.15, w: 9, h: 0.4, fontSize: 14, bold: true, color: C.mint });

  const rows = [
    ["Feature", "Primary Response", "Secondary Response"],
    ["Speed", "Days to weeks", "Hours to days"],
    ["Antibody level", "Low", "High (10–100x more)"],
    ["Antibody type", "Mainly IgM", "Mainly IgG"],
    ["Duration", "Short", "Long-lasting"],
    ["Basis", "Naive B & T cells", "Memory B & T cells"],
  ];

  rows.forEach((row, i) => {
    const y = 2.6 + i * 0.46;
    const bg = i === 0 ? C.teal : i % 2 === 0 ? C.darkTeal : "132536";
    s.addShape(pres.ShapeType.rect, { x: 0.4, y, w: 9.2, h: 0.44, fill: { color: bg }, line: { color: bg, width: 0 } });
    row.forEach((cell, j) => {
      const textColor = i === 0 ? C.white : j === 0 ? C.mint : C.bodyText;
      s.addText(cell, { x: 0.5 + j * 3.07, y, w: 3.0, h: 0.44, fontSize: 11, color: textColor, bold: i === 0, valign: "middle" });
    });
  });

  addAccentBar(s, C.gold);
  slideNumber(s, 13);
}

// ─── SLIDE 14 – HOW VACCINES WORK ────────────────────────────────────────────
{
  const s = pres.addSlide();
  addBg(s, C.navy);
  addTag(s, "VACCINES", 0.5, 0.2, C.gold);

  s.addText("How Vaccines Work", { x: 0.5, y: 0.6, w: 9, h: 0.65, fontSize: 28, bold: true, color: C.white });

  const steps = [
    { n: "1", title: "Antigen Introduction", desc: "Vaccine delivers a harmless antigen (protein, weakened pathogen, or mRNA instructions) into the body." },
    { n: "2", title: "Immune Activation", desc: "APCs process the antigen and present it to T cells, activating both cellular and humoral immunity." },
    { n: "3", title: "Memory Formation", desc: "Long-lived memory B and T cells are generated, persisting for years or decades." },
    { n: "4", title: "Future Protection", desc: "Upon real infection, the immune system mounts a rapid secondary response before the pathogen causes disease." },
  ];

  steps.forEach((st, i) => {
    const y = 1.35 + i * 1.0;
    s.addShape(pres.ShapeType.ellipse, { x: 0.4, y: y + 0.08, w: 0.55, h: 0.55, fill: { color: C.gold }, line: { color: C.gold, width: 0 } });
    s.addText(st.n, { x: 0.4, y: y + 0.07, w: 0.55, h: 0.55, fontSize: 14, bold: true, color: C.navy, align: "center", valign: "middle", margin: 0 });
    s.addText(st.title, { x: 1.1, y, w: 8.4, h: 0.38, fontSize: 14, bold: true, color: C.mint });
    s.addText(st.desc, { x: 1.1, y: y + 0.38, w: 8.4, h: 0.52, fontSize: 11, color: C.bodyText });
  });

  addAccentBar(s, C.gold);
  slideNumber(s, 14);
}

// ─── SLIDE 15 – IMMUNE DISORDERS ─────────────────────────────────────────────
{
  const s = pres.addSlide();
  addBg(s, C.navy);
  addTag(s, "DISORDERS", 0.5, 0.2, "E05C5C");

  s.addText("When the Immune System Goes Wrong", { x: 0.5, y: 0.6, w: 9, h: 0.65, fontSize: 24, bold: true, color: C.white });

  const disorders = [
    {
      cat: "Hypersensitivity", icon: "⚠️", color: "E09040",
      examples: "Allergies (Type I), Asthma, Anaphylaxis, Celiac disease, Contact dermatitis",
      desc: "Exaggerated immune response to harmless antigens (allergens).",
    },
    {
      cat: "Autoimmunity", icon: "🔄", color: "E05C5C",
      examples: "Rheumatoid arthritis, Type 1 diabetes, Lupus, Multiple sclerosis",
      desc: "Immune system attacks the body's own tissues (loss of self-tolerance).",
    },
    {
      cat: "Immunodeficiency", icon: "📉", color: C.midGray,
      examples: "HIV/AIDS, SCID, Common variable immunodeficiency",
      desc: "Reduced ability to mount immune response (primary or acquired).",
    },
    {
      cat: "Cancer (Lymphomas)", icon: "🔬", color: C.teal,
      examples: "Hodgkin lymphoma, Non-Hodgkin lymphoma, Leukemia",
      desc: "Malignant transformation of immune cells, disrupting normal function.",
    },
  ];

  disorders.forEach((d, i) => {
    const col = i % 2;
    const row = Math.floor(i / 2);
    const x = 0.3 + col * 4.85;
    const y = 1.45 + row * 2.0;
    s.addShape(pres.ShapeType.roundRect, { x, y, w: 4.5, h: 1.85, fill: { color: C.darkTeal }, line: { color: d.color, width: 2 }, rectRadius: 0.1 });
    s.addText(d.icon + "  " + d.cat, { x: x + 0.15, y: y + 0.1, w: 4.2, h: 0.38, fontSize: 14, bold: true, color: d.color });
    s.addText(d.desc, { x: x + 0.15, y: y + 0.5, w: 4.2, h: 0.45, fontSize: 10.5, color: C.bodyText });
    s.addText("eg: " + d.examples, { x: x + 0.15, y: y + 0.95, w: 4.2, h: 0.75, fontSize: 9.5, color: C.lightGray, italic: true });
  });

  addAccentBar(s, "E05C5C");
  slideNumber(s, 15);
}

// ─── SLIDE 16 – FUTURE OF IMMUNOLOGY ─────────────────────────────────────────
{
  const s = pres.addSlide();
  addBg(s, C.navy);
  addTag(s, "RESEARCH", 0.5, 0.2, C.mint);

  s.addText("Future Directions in Immunology", { x: 0.5, y: 0.6, w: 9, h: 0.65, fontSize: 25, bold: true, color: C.white });
  s.addShape(pres.ShapeType.rect, { x: 0.5, y: 1.27, w: 3.5, h: 0.04, fill: { color: C.mint }, line: { color: C.mint, width: 0 } });

  const research = [
    { icon: "🧬", title: "mRNA Vaccines", desc: "Beyond COVID-19 — mRNA platforms are in trials for influenza, HIV, cancer, and malaria vaccines." },
    { icon: "🎯", title: "CAR-T Cell Therapy", desc: "Engineering T cells to carry chimeric antigen receptors (CARs) to target cancer cells with precision." },
    { icon: "🤖", title: "AI-Driven Drug Design", desc: "Machine learning models predict antibody binding, accelerating therapeutic antibody development." },
    { icon: "🦠", title: "Microbiome Modulation", desc: "Targeting gut bacteria to enhance immune function in autoimmune disease and cancer immunotherapy." },
    { icon: "🔬", title: "Checkpoint Inhibitors", desc: "PD-1/PD-L1 and CTLA-4 blockers release the brakes on T cells, revolutionizing cancer treatment." },
    { icon: "🌍", title: "Universal Flu Vaccine", desc: "Targeting conserved influenza proteins for broad protection — no annual reformulation needed." },
  ];

  research.forEach((r, i) => {
    const col = i % 3;
    const row = Math.floor(i / 3);
    const x = 0.3 + col * 3.2;
    const y = 1.55 + row * 1.9;
    s.addShape(pres.ShapeType.roundRect, { x, y, w: 2.95, h: 1.75, fill: { color: C.darkTeal }, line: { color: C.teal, width: 1 }, rectRadius: 0.1 });
    s.addText(r.icon + "  " + r.title, { x: x + 0.1, y: y + 0.1, w: 2.75, h: 0.4, fontSize: 12, bold: true, color: C.mint });
    s.addText(r.desc, { x: x + 0.1, y: y + 0.52, w: 2.75, h: 1.1, fontSize: 9.5, color: C.bodyText });
  });

  addAccentBar(s, C.mint);
  slideNumber(s, 16);
}

// ─── SLIDE 17 – KEY TAKEAWAYS ─────────────────────────────────────────────────
{
  const s = pres.addSlide();
  addBg(s, C.darkTeal);

  s.addShape(pres.ShapeType.ellipse, { x: 6.5, y: -1.0, w: 5.5, h: 5.5, fill: { color: C.teal, transparency: 80 }, line: { color: C.teal, transparency: 80, width: 0 } });

  s.addText("KEY TAKEAWAYS", { x: 0.5, y: 0.25, w: 9, h: 0.3, fontSize: 10, bold: true, color: C.mint, charSpacing: 4 });
  s.addText("What You Should Remember", { x: 0.5, y: 0.55, w: 9, h: 0.6, fontSize: 26, bold: true, color: C.white });
  s.addShape(pres.ShapeType.rect, { x: 0.5, y: 1.17, w: 4.0, h: 0.04, fill: { color: C.gold }, line: { color: C.gold, width: 0 } });

  const takeaways = [
    "The immune system has three layers: barriers, innate immunity, and adaptive immunity.",
    "Innate immunity is fast and non-specific; adaptive immunity is slow but precise and has memory.",
    "B cells produce antibodies (humoral immunity); T cells kill infected cells (cellular immunity).",
    "MHC molecules are essential for antigen presentation to T cells.",
    "Immunological memory is the biological basis for vaccines.",
    "Immune dysfunction causes hypersensitivity, autoimmunity, immunodeficiency, and cancer.",
    "mRNA vaccines, CAR-T therapy, and checkpoint inhibitors represent the frontier of immunology.",
  ];

  takeaways.forEach((t, i) => {
    s.addShape(pres.ShapeType.rect, { x: 0.5, y: 1.38 + i * 0.55, w: 0.06, h: 0.4, fill: { color: C.gold }, line: { color: C.gold, width: 0 } });
    s.addText(t, { x: 0.75, y: 1.33 + i * 0.55, w: 8.75, h: 0.5, fontSize: 12, color: C.offwhite, valign: "middle" });
  });

  addAccentBar(s, C.gold);
  slideNumber(s, 17);
}

// ─── SLIDE 18 – THANK YOU / CLOSING ──────────────────────────────────────────
{
  const s = pres.addSlide();
  addBg(s, C.navy);

  s.addShape(pres.ShapeType.ellipse, { x: -1.5, y: -1.0, w: 5, h: 5, fill: { color: C.teal, transparency: 78 }, line: { color: C.teal, transparency: 78, width: 0 } });
  s.addShape(pres.ShapeType.ellipse, { x: 7.5, y: 2.5, w: 4.5, h: 4.5, fill: { color: C.mint, transparency: 82 }, line: { color: C.mint, transparency: 82, width: 0 } });

  s.addText("🛡️", { x: 3.8, y: 0.4, w: 2.4, h: 1.6, fontSize: 64, align: "center" });

  s.addText("Thank You!", { x: 0.5, y: 1.95, w: 9, h: 0.75, fontSize: 38, bold: true, color: C.white, align: "center" });
  s.addShape(pres.ShapeType.rect, { x: 3.5, y: 2.75, w: 3.0, h: 0.06, fill: { color: C.gold }, line: { color: C.gold, width: 0 } });

  s.addText("Questions & Discussion", { x: 0.5, y: 2.9, w: 9, h: 0.45, fontSize: 16, color: C.mint, align: "center", italic: true });

  s.addText('"The immune system is the most remarkable feat of engineering in the known universe."', {
    x: 1.0, y: 3.5, w: 8.0, h: 0.6, fontSize: 11, color: C.midGray, align: "center", italic: true,
  });
  s.addText("— Charles A. Janeway Jr., Immunobiologist", { x: 1.0, y: 4.1, w: 8.0, h: 0.3, fontSize: 10, color: C.midGray, align: "center" });

  addAccentBar(s, C.teal, 0, 5.47, 10, 0.155);
}

// ─── WRITE FILE ───────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/immune-system-pptx/The_Human_Immune_System.pptx" })
  .then(() => console.log("✅ Presentation saved successfully!"))
  .catch(err => { console.error("❌ Error:", err); process.exit(1); });
Running Command

cd /home/daytona/workspace/immune-system-pptx && node build.js 2>&1

Running Command

ls -lh /home/daytona/workspace/immune-system-pptx/The_Human_Immune_System.pptx

Your presentation is ready! Download it here:

The Human Immune System

Presentation · PPTX


Here's what's inside the 18-slide deck:
#Slide
1Title slide - bold navy + teal design with decorative circles
2Agenda - all 9 sections with numbered index
3What Is the Immune System? - stats callout boxes
4Section divider: First Line of Defense
5Physical & Chemical Barriers (skin, mucus, secretions, microbiome)
6Section divider: Innate Immunity
7Innate Immunity - 6 cell types with role cards
8Inflammation - 4 cardinal signs (Celsus)
9Section divider: Adaptive Immunity
10B Cells & Antibodies - all 5 immunoglobulin classes (IgG, IgM, IgA, IgE, IgD)
11T Cells - CD4+ Helper, CD8+ Cytotoxic, Regulatory Tregs
12MHC & Antigen Presentation - Class I vs Class II comparison
13Immunological Memory - primary vs secondary response table
14How Vaccines Work - 4-step process
15Immune Disorders - hypersensitivity, autoimmunity, immunodeficiency, lymphoma
16Future Directions - mRNA, CAR-T, AI, microbiome, checkpoint inhibitors
17Key Takeaways - 7 bullet summary
18Thank You / closing quote
Design: Deep navy background, teal/mint accent palette, gold highlights, section dividers, and card-style content layouts throughout.
This is a shared conversation. Sign in to Orris to start your own chat.