Can you make a presentation

I'd love to help with a presentation! I need a bit more information first.
Asking for Preferences

What is the topic or subject of the presentation? · Who is the intended audience? · How many slides do you need (roughly)?

The user said "No preference" for topic. Let me ask for more clarity on that.
Asking for Preferences

Since you have no preference for topic, should I pick an interesting topic for you? If so, any general area you lean toward?

I'll create a 15-20 slide academic presentation on a compelling Health & Medicine topic - I'll go with "The Human Immune System", which is rich, educational, and perfect for a student audience.
Let me read the PPTX skill and build this out.
Reading File
Reading File
Now let me build the script. I'll create a visually rich presentation with a deep navy/teal palette, icon-style callouts, and well-structured content.
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.