---
title: "Create an interactive presentation"
sidebarTitle: "Presentation"
description: "Build a navigable deck with reveals, notes, optional branches, hotspots, and presenter mode."
---

import { DocsVideo } from "/snippets/docs-video.jsx";

A HyperFrames slideshow stays interactive. The result is a live, navigable deck—not a linear MP4.


<DocsVideo
  title="A real deck being navigated — fragments, a branch, and presenter mode"
  src="https://static.heygen.ai/hyperframes-oss/docs/images/showcase/slideshow-demo-v1.mp4"
  poster="https://static.heygen.ai/hyperframes-oss/docs/images/showcase/slideshow-demo-v1.jpg"
/>

This is a live capture of a running deck, not a video of slides. Watch the
fragments arrive one key-press at a time, a hotspot jump to a branch slide, the
back control return to the exact fragment it left, and presenter mode open with
real speaker notes and a running timer.

## Make the request

Give the agent the material and the decision the presentation should support:

```text
Using /hyperframes, turn this product strategy outline into a presentation for
our leadership review: [paste outline]
```

The agent confirms the audience, main outcome, and whether the deck needs
reveals, optional branches, or presenter notes. You do not need to prescribe
every slide before seeing the proposed structure.

If the result should play from beginning to end without a presenter, use a normal [video workflow](/workflows). A slideshow cannot be exported as one linear MP4 yet.

<Warning>
  Do not run `hyperframes render` on a deck. It does not fail — a deck has no
  master root composition, so the render resolves only the **first** slide and
  writes a silently truncated MP4. You can get six seconds of a forty-second
  deck and no warning that anything is missing.

  Use `hyperframes present` for the live deck, or `hyperframes snapshot` for
  per-slide stills.
</Warning>

## What control does the presenter need?

- **Present a clear story** — give every slide one claim, one useful visual, and concise speaker notes.
- **Reveal points as you speak** — use progressive reveals where the presenter should control the explanation.
- **Offer optional detail** — keep the main story direct and place deeper material behind clear branches and hotspots.
- **Convert an interactive page** — preserve its visual language and translate its motion into deliberate slide and reveal states.

Attach the source notes, document, page, or existing deck. Name the audience and what should change after the presentation.

## Keep the main story clear

- **Slides** carry one complete claim and one useful visual.
- **Reveals** let the presenter add part of an idea at a time.
- **Branches** hold optional detail without interrupting the story everyone sees.
- **Speaker notes** help the presenter; they should not repeat the slide.

The main story should still make sense when no optional branch is opened.

## Review it as a presenter

- Each slide makes one clear point.
- Reveals help the explanation.
- Hotspots are obvious without distracting.
- Embedded media stops when its slide is left.
- Presenter notes and the audience view stay separate.
- The complete deck works with keyboard, touch, and its visible controls.

Use [Studio’s Slideshow panel](/studio/slideshows) to adjust order, notes, reveals, and branches.

## Present the deck

```bash
npx hyperframes present <project-directory>
```

Open the local URL, then click **Present** or press **P**. The audience gets a clean full-screen view while the presenter keeps the current slide, next slide, notes, and timer.

In Google Meet, share the audience **tab**. In Zoom, move the audience tab into its own window and share that window.

## Related topics

- [Build and revise a slideshow in Studio](/studio/slideshows)
- [Use variables and templates](/studio/variables)
- [Create a linear video instead](/workflows)
