-
Notifications
You must be signed in to change notification settings - Fork 0
Presenter Tools
Spatial Deck has a full suite of presenter-facing tools: a floating popup with notes and timer, an inline drawer, a split view, a phone companion app, and mobile haptic alerts.
Press H to hide all UI chrome for a clean audience-facing view. Press H again to bring it back. This is the key you press right before going up to the podium.
Press N to open a second browser window synchronized to your main deck. Shows:
- Current slide title and notes
- Next slide preview (thumbnail)
- Elapsed time (MM:SS, starts on first navigation)
- Estimated remaining time (based on notes duration)
- Pacing indicator: 🟢 on pace · 🟡 running long · 🔴 significantly over time
The popup syncs via BroadcastChannel — it must be in the same browser on the same machine. Open it before you start presenting; it won't catch navigation it misses.
Two-screen setup: put the popup on your laptop screen,
index.htmlfull-screen on the projector.
Press Shift+N to toggle a notes drawer that slides up from the bottom of the deck window. Good for single-screen setups where a popup isn't practical.
Press Shift+P to enter split view:
- The deck shrinks to the top 58% of the window
- The notes drawer pins to the bottom 42% (no overlap)
- Toggle off with
Shift+Pagain
This is useful on a laptop where you want notes visible at all times without a second window.
Open index.html?notes on your phone (works over your local network or Tailscale) for a phone-optimized speaker view.
Top bar:
- ▶/⏸ — start/stop timer
- ⟲ — long-press to reset timer
- 🔓 — padlock clicker (see below)
- 📋 — toggle between script view and bullets view
- ✎ — edit current slide's notes
- ⋯ — settings drawer
Bottom bar:
-
←/→— navigate slides - Center thumbnail — current slide preview (after calibration)
When 🔒 (locked), tapping the padlock sends a "next slide" command to the main deck. This lets you advance your laptop presentation from your phone without a clicker device.
The relay works via a Google Sheet (see Cloud Sync Setup below) — BroadcastChannel only works within the same browser, so a sheet relay handles cross-device communication.
The phone view shows a 160×90 thumbnail for the current slide. Thumbnails are generated by a calibration sweep:
- Open ⋯ settings drawer
- Tap 🔁 Calibrate Videos & Thumbs
- The deck runs through all slides, capturing thumbnails and video durations
- Thumbnails are cached to
localStorageand pushed to the Google Sheet
Without cloud sync, the ?notes view works locally (notes edits stay on that device only).
To enable sync across devices:
- Follow the setup guide at
tools/SETUP_NOTES_SYNC.md - Create a Google Apps Script Web App bound to a Google Sheet
- Drop a
notes-config.jsonfile at your repo root (gitignored):{"gasUrl": "https://script.google.com/macros/s/YOUR_ID/exec", "deckId": "my-talk-2026"} - On first load, the
?notesview auto-seeds the sheet from your SECTIONS notes
The ?notes view tracks your actual speaking pace by timing how long you spend on each completed slide. It adapts the WPM estimate (90–220 WPM floor/cap) and projects your finish time against a target.
To set a target finish time: ⋯ → ⏱ Set target finish.
The (over video) marker in speaker notes tells the estimator that words after it are spoken concurrent with video — those words aren't counted toward talk length.
The Settings slide shows total estimated duration. The formula:
| Note style | Rate |
|---|---|
Bullet lines (starting with - or •) |
~20 seconds each |
| Prose sentences | ~150 words per minute |
| No notes | 30 seconds per slide |
| Multi-step slides | +5 seconds per step |
On mobile devices that support navigator.vibrate, Spatial Deck adds physical alerts:
| Alert | When | Vibration pattern |
|---|---|---|
| Light pulse | Once per minute, when you're running >110% of estimated duration | 120ms |
| Hard double-pulse | Every 10 seconds during the final minute of the talk | 250ms–80ms–250ms |
These fire silently — no visual indicator, just the vibration. Desktop ignores them.
Press / or Cmd/Ctrl+F to open the search overlay. Full-text search across all slide titles, subtitles, bullets, and taglines. Results show the slide type and jump to that slide on click.
Click the grid icon (top-right) to see all slides as thumbnails. From the grid:
- Click any thumbnail to jump to that slide
-
Ctrl/Cmd + Clicka thumbnail to hide/unhide it - Hidden slides show at 30% opacity with a dashed border
Getting started
Presenting
Editing & design
Workflow
Reference