-- online Search!

Slide Decks

Filed under ROFL Design System

ROFL Design System sections

13 / SLIDE DECKS

Video slide decks for AI Fundamentals: Departure Mono, 8-bit palettes, a webcam-safe layout, one idea per click, and talk tracks.

Agent Instructions / slides

You are building a KIRUPA video slide deck for an AI Fundamentals article. Read /design/sections/slides.md and tools/slides/README.md, open the reference decks listed in /design/slides.json, and copy the closest script in tools/slides/decks/. Build with tools/slides/deckkit.py so the theme, smiley, webcam frame, and machine checks apply. Legibility is P0: Departure Mono, solid backgrounds, Pixel 24 icons that match their rows, 4.5:1 contrast, and nothing important inside the webcam frame on the right; only the two corner icons may overlap it. Show one idea per click: a spoken list appears in full, then spotlights each item; a process builds cumulatively; a callout arrives on its own slide, clear of its target, bars, labels, and the frame. Fill punch slides with evenly balanced lines and no stranded short word. Highlights include inner punctuation but not a standalone sentence's final period. Center each icon on its text by eye, and leave bigger gaps between items than inside them. Write notes that read straight through in Kirupa's voice, introduce every term in plain words, and never repeat the previous slide. Use the article's real numbers and never label them made up. Start with a title slide whose happy smiley has no heart, and end with the Keep Learning build, not a Next up slide. Preview with render.sh, then review every PowerPoint contact sheet from pptcheck.sh before handing the deck over. Follow WCAG 2.2 AA for new or changed content: semantic HTML, keyboard access, visible focus, readable contrast in every theme, text alternatives, labeled controls, and explicit errors. Support zoom/reflow, respect reduced motion, and keep sound optional. Read /design/sections/accessibility.md for acceptance checks. Report unresolved barriers; automated checks alone do not establish conformance.

Every AI Fundamentals article gets a 16:9 slide deck that Kirupa records a live video over. His webcam sits in a rounded frame on the right side of every slide, and he clicks to the next slide as he talks. The rules on this page came from many rounds of his review on the first four decks, so treat each one as a requirement. The working checklist lives next to the code in tools/slides/README.md. This page explains the same rules with real slides, exported by PowerPoint, the app he records with.

Reference decks

These four decks passed review. Open the closest one in PowerPoint before you build another, and start from its deck script:

The four reference decks

Each deck's title slide, in its own palette and with its own happy smiley.

  1. Title slide for Tokens & Your Bill: an AI FUNDAMENTALS tag, the title, the subtitle What a token is, and why it sets the price., and a navy name tag reading Kirupa Chinnathambi with a grinning smiley. Gold coins straddle the corners of the empty webcam frame on the right. 01 Tokens & Your Bill, slide 1 / Full size: 01 Tokens & Your Bill, slide 1
  2. Title slide for The Anatomy of a Chat Request in Game Boy green: the subtitle What really happens on Enter. and the name tag with a grinning, big-eyed smiley, accented by an envelope, a microscope, and a speech bubble. 02 The Anatomy of a Chat Request, slide 1 / Full size: 02 The Anatomy of a Chat Request, slide 1
  3. Title slide for What Exactly Is an LLM? in lavender: the subtitle Where a chatbot's know-how comes from. and the name tag with a beaming smiley, accented by a brain, sparkles, and a stack of books. 03 What Exactly Is an LLM?, slide 1 / Full size: 03 What Exactly Is an LLM?, slide 1
  4. Title slide for Context Window Limits in Atari sand: the subtitle How much a model can read at once. and the name tag with a grinning, squinting smiley, accented by rulers and a package. 04 Context Window Limits, slide 1 / Full size: 04 Context Window Limits, slide 1

The toolkit

Each deck is a Python script, tools/slides/decks/<article>.py, that builds ai_fundamentals/slides/<article>.pptx with python-pptx. Every script uses one toolkit, deckkit.py. It draws the house style, picks the theme and smiley, and refuses to save a deck that breaks a rule a machine can check: content inside the webcam frame, text below 4.5:1 contrast, a list line that wraps, a smiley with a heart, or a sentence repeated in the next slide's notes. A deck that saves is ready for review, not finished. After the one-time setup in the README, work in this loop:

  • Read the article from start to finish, including its figures.
  • Copy the closest script in tools/slides/decks/ and write the new deck.
  • Preview with tools/slides/render.sh and look at every contact sheet.
  • Fix what you see, rebuild, and repeat.
  • Export with tools/slides/pptcheck.sh, look at every PowerPoint contact sheet, and open a full-size PNG for anything doubtful. PowerPoint wraps text slightly differently than LibreOffice, so this step is not optional.

The look

Every slide is 16:9, with Departure Mono for every character and a solid background with no gradients. Pixel accents come from the KIRUPAicons Pixel 24 set, icon/pixel-twemoji-24/png. Use them generously but meaningfully: every icon matches what its row or slide is about. A bread icon belongs next to bread, not next to a pricing rule.

The webcam frame

Kirupa's live video sits in the rounded frame on the right. Nothing important goes inside it: no text, chart, callout, or part of a widget. save() fails if any content reaches into the frame. The only things allowed to overlap it are two decorative icons on its top and bottom corners. They straddle the corners, partly hidden by the video but still recognizable. The same layout in two decks shows the split:

One layout, two palettes

The same Meet Biscuit! slide in NES blue and Atari sand. Content stays on the left, the webcam frame stays empty on the right, and a matching icon straddles each of the frame's corners. Only the colors change.

  1. Meet Biscuit! on sky blue: a cookie avatar beside A help desk bot for Crumb & Co., a tiny bakery., above a row of bread, croissant, baguette, cupcake, and cake icons. A croissant and a loaf straddle the corners of the empty webcam frame. 01 Tokens & Your Bill, slide 9 / Full size: 01 Tokens & Your Bill, slide 9
  2. The same Meet Biscuit! layout on Atari sand with dark cocoa text, with the same icons and the same empty webcam frame. 04 Context Window Limits, slide 2 / Full size: 04 Context Window Limits, slide 2

Themes

Each deck wears one tasteful 8-bit palette: lavender, Game Boy green, Commodore 64, NES, terminal, or Atari. start_deck() picks it from the article's place in ai_fundamentals/articles.json, so neighboring decks never share a color family, and the reviewed decks are pinned in PINNED_THEME. Keep it classy, not in-your-face. Never use pink, and never put yellow on pink. A theme changes colors only; the layout, font, and icons stay the same.

The title slide

The intro slide has the AI FUNDAMENTALS tag, the title, a one-line subtitle, and Kirupa's name tag, aligned with the tag above it. The name tag starts with a happy Pixel smiley that changes from deck to deck and never has a heart, so no heart eyes and no hearts of any kind. The toolkit enforces both, and PINNED_SMILEY keeps the smiley Kirupa approved for each reviewed deck:

A reviewed title slide

The tag, a two-line title, a one-line subtitle, and the name tag share one left edge. The smiley is happy and has no heart.

  1. Title slide: an AI FUNDAMENTALS tag, the title Tokens & Your Bill on two lines, the subtitle What a token is, and why it sets the price. beside a winged dollar bill, and a name tag reading Kirupa Chinnathambi that starts with a grinning smiley. Gold coins straddle the top and bottom corners of the empty webcam frame on the right. 01 Tokens & Your Bill, slide 1 / Full size: 01 Tokens & Your Bill, slide 1

Legibility first

Legibility is P0. Creativity is welcome, but never at the cost of reading a word, number, or icon, and save() fails if any text has less than 4.5:1 contrast with what is behind it. Keep the text short: a slide supports what Kirupa says; it doesn't replace it. Titles stay on one line, and long ones shrink. List lines never wrap, so shorten the wording instead; list_slide() refuses lines that won't fit. Line spacing is 1.1: dense, but a highlighted line never touches the line above or below it.

Punch slides

A punch slide (punch()) puts one big idea on a bold, solid color with no icons. The text is as large as fits, broken into evenly filled lines. Never strand a short word like "the" or "sends" alone on a line, even if the font has to get smaller. If a punch slide looks empty, make the text bigger or say more. A text block that is the only thing on a slide is vertically centered on the webcam frame's midline:

Two balanced punch slides

Large text in evenly filled lines, centered on the frame's midline. No line holds a stranded short word.

  1. Punch slide on deep navy: We don't pay / per message. / We pay / per token., with the word token highlighted and the final period outside the highlight. 01 Tokens & Your Bill, slide 2 / Full size: 01 Tokens & Your Bill, slide 2
  2. Punch slide on sage green in four evenly filled lines: A tidy desk is / cheaper, faster, / and often / more accurate. 04 Context Window Limits, slide 48 / Full size: 04 Context Window Limits, slide 48

Talk track

Deck 01, slide 2 Let me say this plainly up front, because it's the one detail I want you to remember from this whole video, and you'll hear me repeat it: we don't pay per message, per word, or per character. We pay per token. Our bill has one line for the tokens we send in and another for the tokens the model sends back, and as we'll see, those two lines don't cost the same.

Highlights

A highlight is a solid band behind the words (HL, or {"hl": ..., "color": ...} on punch slides). Only the final period of a standalone sentence stays outside it. Commas, periods, and other punctuation inside a highlighted run of phrases are highlighted too, so "patterns," is one highlight rather than "patterns" followed by a bare comma. Put the punctuation in the highlighted run and the toolkit does the rest. Padding spaces never get highlighted, and a highlighted phrase stays together on one line:

Highlights and punctuation

The comma after patterns sits inside its highlight because it belongs to a run of phrases. The period after 2 requests ends a standalone sentence, so it stays outside.

  1. Punch slide on deep indigo: It keeps / patterns, / not pages. The word patterns and its comma share one lavender highlight. Below it: Facts that show up again and again stick best. 03 What Exactly Is an LLM?, slide 34 / Full size: 03 What Exactly Is an LLM?, slide 34
  2. Punch slide on dark green: 1 question. / 1 answer. / 2 requests. The words 2 requests are highlighted and the final period is not. 02 The Anatomy of a Chat Request, slide 33 / Full size: 02 The Anatomy of a Chat Request, slide 33

Icons and text

An icon and its text share one vertical center. Never let text ride high or low next to its icon. Check this by eye in the PowerPoint export, not just by measurement: text can look high even when its box is centered. Vertically stacked items need a visible gap between items that is clearly larger than the gap inside an item, such as a name and its description. Shrink the text before you crowd the items. Leave real breathing room under the title; the first row starts at TOP:

Icons, text, and gaps

Each icon is centered on its whole two-line text block, and the gap between items is much larger than the gap between a name and its description.

  1. Making Room list: scissors beside Trim, drop the oldest; pin what must stay; a notepad and pencil beside Summarize, squeeze old turns into a short note; and a magnifying glass beside Retrieve, send only the facts needed. Each icon is vertically centered on its two lines of text, with a wide gap between items. 04 Context Window Limits, slide 32 / Full size: 04 Context Window Limits, slide 32

Two columns

Two side-by-side lists (two_columns()) give each column a strong header band and separate the columns with a vertical divider. The items are clearly smaller than the headers, so the categories read first. When the items are read aloud, the columns build like any other list:

Two columns

Dark header bands, a vertical divider, and smaller item text. The next click spotlights the first item and fades the rest.

  1. What's in There? with two columns split by a vertical line. Dark header bands read In the weights, with a green check mark, and Not in there, with a red X. Left items: What makes sourdough sour, How to write code, and Famous lines, word for word. Right items: Our bakery's full menu, News after its cutoff, and Your last chat with it. 03 What Exactly Is an LLM?, slide 35 / Full size: 03 What Exactly Is an LLM?, slide 35
  2. The next slide of the same build: What makes sourdough sour is highlighted beside its full-color bread icon, while the other five items fade back. 03 What Exactly Is an LLM?, slide 36 / Full size: 03 What Exactly Is an LLM?, slide 36

Chat widgets

When the article shows an exchange, redraw it with a chat widget (widget()) that matches the article's figures: the same corner radius at the top and bottom, the bot's avatar left of its bubbles, the customer's avatar right of theirs, and the input row fully inside the widget. Pre-break bubble text into lines of about 28 characters. The running example, like Biscuit, the Crumb & Co. help desk bot, gets a meet slide and a widget early in the deck:

The chat widget

Biscuit's avatar sits left of its bubbles and the customer's sits right of theirs. The corners match top and bottom, and the input row stays inside the widget.

  1. Hi, Biscuit! chat widget with a header showing Biscuit's cookie avatar, a green online dot, and Crumb & Co. help desk. The customer asks Do you have rye today? and Can you hold one for me? on the right beside a smiley avatar. Biscuit answers We do! Two loaves left. and Done! It's under your name. on the left beside its cookie avatar. An Ask Biscuit anything... input row and send button sit inside the bottom of the widget. 04 Context Window Limits, slide 3 / Full size: 04 Context Window Limits, slide 3

Charts

Charts redraw the article's data in the deck's colors. Number-heavy slides use the real numbers from the article. Labels sit outside the bars, legends are readable, and limit lines are labeled. Never label figures as made up or illustrative on a slide; the talk track can mention it when it matters:

A chart

Real numbers from the article, a legend, labels outside the bars, and a labeled limit line.

  1. Watching It Fill Up stacked bar chart with a legend for sent every time, the chat, and reply room. Bars for turns 1, 5, 10, 15, and 20 are labeled 1,625, 2,125, 2,750, 3,375, and 4,000 below each bar. A horizontal line labeled 3,000 marks the limit, and the turn 15 and turn 20 bars that cross it are outlined in red. 04 Context Window Limits, slide 21 / Full size: 04 Context Window Limits, slide 21

Callouts

A callout, like "5× the price!" or "She's allergic!", arrives on its own copy of the slide at the moment the talk track reaches it. It is never on the slide from the start. It never covers the thing it points at, never reaches into the webcam frame, and never sits on top of chart bars or labels:

A callout on its own click

The chart arrives first. The Tamil callout appears on the next copy of the slide, in open space, clear of the bars, labels, and frame.

  1. Same Question... bar chart for "Do you have gluten-free bread today?" with token counts for the newer and older tokenizer: English 8 and 8, Spanish 8 and 8, Japanese 12 and 18, Hindi 14 and 40, and Tamil 16 and 53. 01 Tokens & Your Bill, slide 22 / Full size: 01 Tokens & Your Bill, slide 22
  2. The same chart with a tilted Tamil = 2× English callout added in the open space to the right of the English bars. 01 Tokens & Your Bill, slide 23 / Full size: 01 Tokens & Your Bill, slide 23

Talk track

Deck 01, slide 22 That rule of thumb falls apart outside of English. Here's the same question, Do you have gluten-free bread today?, written in five languages. Each one is counted by two of OpenAI's tokenizers: the newer o200k_base in black, and the older cl100k_base in white. Notice how the bars grow as we move down the list.

Deck 01, slide 23 Look at Tamil. With the newer tokenizer, asking in Tamil costs twice as much as asking in English, and with the older one it's more than six times as much. Languages that show up less often in a tokenizer's training text get chopped into smaller pieces. And since different models use different tokenizers, the same words can have a different count depending on which model reads them.

Builds: one idea per click

Kirupa clicks to the next slide as he talks, so a slide shows only what he has said so far. A list read aloud in order (build()) appears in full once. Then each item gets its own slide, where that item is highlighted and its icon tips while the others fade back:

A list build

The full list, then one slide per item. Here the second item is spotlighted with its ruler icon tipped, and the others fade back.

  1. What This Means list with a matching icon on each row: 1. Log the usage object, 2. Cap output length, 3. Trim what you resend, 4. Sweep up old turns, and 5. Fixed text goes first. 01 Tokens & Your Bill, slide 36 / Full size: 01 Tokens & Your Bill, slide 36
  2. The same list with 2. Cap output length highlighted beside its tipped, full-color ruler icon, while the other four items fade back. 01 Tokens & Your Bill, slide 38 / Full size: 01 Tokens & Your Bill, slide 38

Talk track

Deck 01, slide 36 Once we can see where the tokens come from, a handful of habits fall out of it.

Deck 01, slide 37 One: log the usage object on every response instead of guessing.

Deck 01, slide 38 Two: cap the output length. Providers let us set a limit on how many tokens a reply can use, a setting called max_output_tokens at OpenAI or max_tokens at Anthropic, so a runaway reply can't run up the bill.

A multi-step process (cumulative()) starts with step 1 on its own slide, and each slide adds the next step. Everything already on the slide stays where it was:

A cumulative build

Step 1 stands alone, and each click adds the next step below it without moving what is already there.

  1. Inside the Model with one box: 1. Tokens become numbers, each token turns into a list of numbers. 03 What Exactly Is an LLM?, slide 17 / Full size: 03 What Exactly Is an LLM?, slide 17
  2. Inside the Model two clicks later: three boxes joined by arrows. 1. Tokens become numbers. 2. Mixed with the weights, multiplied and added, layer after layer. 3. A score for every token, starter 58%, levain 14%, wild 9%, and so on. 03 What Exactly Is an LLM?, slide 19 / Full size: 03 What Exactly Is an LLM?, slide 19

Talk track

Deck 03, slide 17 So how do numbers turn into a guess? Step one: each of our tokens turns into a list of numbers.

Deck 03, slide 18 Step two: those numbers get multiplied and added against the model's weights. The weights are arranged in many stacked stages, called layers, so this happens layer after layer after layer.

Deck 03, slide 19 Step three: out the other end comes a score for every possible next token. The model never looks sourdough up in an index, and it doesn't search the web. Chat apps that do search the web hand that job to a separate add-on. What the model knows about sourdough is smeared across billions of numbers, mixed in with everything else it knows, and no single number means anything on its own.

Speaker notes

Every slide has speaker notes, written to be read straight through as one natural script in Kirupa's voice: friendly, casual, and concrete, with the running example carrying the story. Build slides continue the story. They never re-read the previous slide's notes, and save() fails if a sentence repeats on the very next slide. Never use a technical term as known. Introduce every concept in plain words before relying on it: token, system prompt, turn, tool, API, parameters, temperature, RAG, and so on. When a deck has several new ingredients, give a high-level overview slide before going into each one. Repetition is welcome for the one detail the video most wants remembered, as long as the notes say so, like "you'll hear me repeat it" on the punch slide above. Keep facts, numbers, names, and dates exactly as the article states them, and say "at the time of writing" where the article does.

Deck structure

This order works:

  • The title slide.
  • The running example: meet the bot, and show it in a chat widget when the article has an exchange.
  • A punch slide with the one big idea.
  • Concepts introduced in plain words, then built up step by step.
  • Examples and visuals from the article, redrawn in the deck's style.
  • What it means for what we build, as a spotlighted list.
  • A closing punch slide that restates the key detail.
  • Keep Learning, the call to action.

The last slides show kirupa.com, forum.kirupa.com, and @kirupa on Twitter in full, then spotlight each link in turn (keep_learning()). Don't end with a "Next up" slide, because the video order changes as content is added:

The call to action

All three links together, then one slide per link. This is the last slide of every deck; there is no Next up slide.

  1. Keep Learning! on dark cocoa with three rows: a globe beside TUTORIALS + ARTICLES, kirupa.com; a speech bubble beside ASK ME ANYTHING, forum.kirupa.com; and a red bird beside FOLLOW ALONG ON TWITTER, @kirupa. 04 Context Window Limits, slide 50 / Full size: 04 Context Window Limits, slide 50
  2. The next slide highlights kirupa.com while the forum and Twitter rows fade back. 04 Context Window Limits, slide 51 / Full size: 04 Context Window Limits, slide 51

Review checklist

Before handing a deck to Kirupa, confirm each of these in the PowerPoint export:

  • Every contact sheet is reviewed, with full-size PNGs opened for anything doubtful.
  • Nothing important is inside the webcam frame. Only the two corner icons overlap it.
  • Every icon is centered on its text by eye and matches what its row is about.
  • Punch slides are full, with evenly filled lines and no stranded short word.
  • Highlights include inner punctuation and leave out a standalone sentence's final period.
  • Each callout has its own slide and stays clear of its target, chart bars, labels, and the frame.
  • Lists read aloud build one item per click, and processes build step by step.
  • The notes read straight through, introduce every term in plain words, and never repeat the previous slide.
  • Numbers match the article and are never labeled as made up or illustrative.
  • The title slide has a happy smiley with no heart, and the deck ends with the call-to-action build.
Source maptools/slides/README.mdtools/slides/deckkit.pytools/slides/decks/tools/slides/render.shtools/slides/pptcheck.shai_fundamentals/articles.jsondesign/slides.source.jsonicon/pixel-twemoji-24/https://departuremono.com/https://www.kirupa.com/ai_fundamentals/slides/tokens_and_your_bill.pptxhttps://www.kirupa.com/ai_fundamentals/slides/anatomy_of_a_chat_request.pptxhttps://www.kirupa.com/ai_fundamentals/slides/what_is_an_llm.pptxhttps://www.kirupa.com/ai_fundamentals/slides/context_window_limits.pptx

The KIRUPA Newsletter

Thought provoking content that lives at the intersection of design 🎨, development 🤖, and business 💰 - delivered weekly to over a bazillion subscribers!

SUBSCRIBE NOW

Creating engaging and entertaining content for designers and developers since 1998.

Follow:

Popular

Loose Ends

:: Copyright KIRUPA 2026 //--