Alex CoulombePresents
← all repos

Spatial Deck

3

The presentation framework for people who think spatially. One HTML file, runs anywhere, forever.

The story

Built for the HarvardXR 2026 closing keynote, when PowerPoint wasn't going to cut it. A single self-contained HTML file with presenter tooling PowerPoint never gave you: animated canvas media galleries, Web Audio sound design, live annotation and element repositioning mid-presentation, and — critically — a format an AI collaborator can edit with you right up until showtime. The Harvard keynote was a hit; the framework that powered it became Spatial Deck.

Highlights

  • One HTML file — no cloud, no build process, no lock-in
  • Annotation + move modes designed for AI-collaborative editing
  • Canvas media galleries, Web Audio, pixelated reveal effects
  • Hands back a pixel-faithful PDF when someone asks for 'the deck'

Docs · live from GitHub wiki

Spatial Deck Wiki

Welcome to the Spatial Deck wiki — everything you need to build, present, and iterate on a Spatial Deck presentation.

New here? Start with Getting Started.

Already running? Jump to the section you need.


Contents

PageWhat's in it
01 · Getting StartedClone, open, and make your first edit
02 · Content AuthoringSECTIONS array, slide types, text formatting, speaker notes
03 · MediaImages, videos, media cycler, iframes, GIFs
04 · Move Mode & LayoutDrag, scale, rotate, z-order, grid, undo/redo, text editing
05 · Theme & SettingsColors, fonts, transitions, background styles, auto-save
06 · Presenter ToolsPopup, phone companion, split view, pacing, haptics
07 · AnimationsMulti-step slides, keyframe WAAPI, SFX
08 · Import & Export ToolsAll tools/ scripts — PPTX, Markdown, PDF, HTML, video
09 · AI WorkflowWorking with Claude and other LLMs on your deck
10 · Keyboard ShortcutsEvery key and gesture in one table
11 · TroubleshootingCommon problems and fixes

The 30-Second Pitch

Spatial Deck is a single index.html file that is your entire presentation. No build step, no npm, no cloud account. You edit a JavaScript array called SECTIONS and the slides update on reload. It runs from a USB stick at a Harvard podium.

Clone → edit SECTIONS → open index.html → present.

That's the whole model. The wiki fills in everything else.

$ git clone https://github.com/ibrews/spatial-deck.git