← site
01 · INTRO

Demo slide deck

Reveal.js, on the lab notebook.

A presentation template that matches the site's typography and arrow-key navigation, with a live indicator in the bottom right.

Press to start. Press ? at any time for shortcuts.

02 · NAVIGATION

How navigation works

This deck has horizontal sections (top-level slides) and vertical subsections (deeper dives inside one topic).

The keys in the bottom-right show which directions have content. Brightened means a slide exists; dim means you're at the boundary.

Press right now to see a vertical subsection.

02 · A — HORIZONTAL

Horizontal sections

Press to advance to a new topic. The bottom row of keys lights up when there's a slide to the left or right.

02 · B — VERTICAL

Vertical subsections

Press within a topic to drill into a subsection. The vertical keys (up / down) light up the same way.

Press a couple of times to come back, or jump straight ahead with .

03 · TYPOGRAPHY

Same type system as the site.

  • Display + serif body: Newsreader (variable, optical sizing).
  • UI + body sans: Inter.
  • Labels and code: JetBrains Mono.
  • Accent: vermilion oklch(54% 0.18 35), same as the site.
04 · CONTENT

Content patterns

What you can drop into a slide without writing custom CSS:

  • Headings, paragraphs, lists.
  • Inline code and full code blocks.
  • Quotes, links, images, KaTeX (add the script if needed).
  • Multiple subsections per section (you're in one now).
04 · A — CODE

Code blocks

Syntax-highlighted with copy-to-clipboard on hover. Ligatures on.


// Reveal initialised with our custom indicator
Reveal.initialize({
  hash: true,
  controls: false,     // we draw our own arrow keys
  progress: true,
  transition: "slide",
  plugins: [ RevealHighlight ],
});
04 · A — WALKTHROUGH

Teaching walkthrough

Ligature samples: => != === -> <=


def gradient_descent(x, lr=0.01, steps=100):
    for _ in range(steps):
        grad = compute_gradient(x)
        if abs(grad) < 1e-6:        # converged
            break
        x = x - lr * grad
    return x
04 · B — QUOTE
"The purpose of computing is insight, not numbers."
— Richard Hamming
05 · CUSTOM

Make it yours.

  • Edit static/slides/demo/index.html directly.
  • Duplicate the directory to make new decks: /slides/talk-2026/, etc.
  • Tokens at the top of the <style> block follow the site palette.
  • Link decks from blog posts, project pages, or anywhere you want.
06 · FIN

End of demo

Thanks.

Press ? for the shortcuts, or go back to the site.