MOTION / FORM — Gesture-Controlled Exploded Gallery
Pinch your fingers apart and the object comes apart with them.
A full-screen gallery of five transformation films driven entirely by your hands. Slide sideways to move between cards, hold an open palm to enter one, then pinch to scrub the object between assembled and exploded — the distance between thumb and index maps straight onto the film's timeline, so the object is wherever your fingers are. Two fingers dismisses it. Hand tracking runs on-device through MediaPipe with the WASM served from the app's own origin, so it works offline and no video ever leaves the machine. The films are never played linearly while gesture control is on: currentTime is written from the pinch value every frame, which is why they are re-encoded so that every frame is a keyframe. Spoken feedback announces each card, and mouse, scroll and keyboard fallbacks mean the whole thing still works with no camera at all.
How to run this
Works the same on Windows, macOS and Linux. No prior setup beyond Node.js, and nothing to configure — the pack runs as-is.
- Built with
- Vite 8
- Requires
- Node.js 20 or newer
- Opens at
- http://localhost:5173
Note — Driven entirely by hand gestures, so it needs a webcam — allow the camera prompt when the page loads. Tracking runs on-device via MediaPipe and no video ever leaves the machine. Note that browsers only grant camera access on a secure context: localhost is fine, but on any other host it must be served over HTTPS. The films ship re-encoded to 720p all-intra so the pack fits in one download; the README has the ffmpeg line to rebuild them at 1080p from your own masters.
✦ Or let an AI agent set it up for you
Already using Claude Code, Antigravity, Cursor or Windsurf? Unzip the pack, open the folder as a project, and just ask:
Install the dependencies and run this project, then give me the URL
It reads the README included in the pack, runs the right commands for this project, and sorts out anything that trips along the way. You still need Node.js installed (step 1 below) — everything after that it can handle.
Or run it yourself
- 1
Install Node.js, if you don't have it
Download the LTS build from nodejs.org and run the installer — on Windows and Mac it handles everything. Mac users with Homebrew can run
brew install nodeinstead.To check it worked, run
node --version. It should print a number like v22.11.0. - 2
Unzip the pack, then open a terminal inside the folder
Windows: open the unzipped folder in File Explorer, click the address bar, type
powershelland press Enter.Mac: press Cmd+Space, type terminal, press Enter. Then type
cd(with a trailing space) and drag the unzipped folder onto the terminal window — it fills in the path for you. Press Enter. - 3
Install the dependencies
Run
npm installOne-time, and takes roughly 30–60 seconds. It creates a node_modules folder — that's expected, and it's why the zip doesn't ship one.
- 4
Start it
Run
npm run devThen open http://localhost:5173 in your browser. Leave the terminal open while you use it — closing it stops the site. Press Ctrl+C in the terminal to stop.
- 5
Optional — build for production
When you're ready to deploy,
npm run buildproduces the optimised output. The pack deploys to Vercel, Netlify or any Node host with no changes.
+ − If something goes wrong
- “npm is not recognised” / “command not found: npm”
- Node.js isn’t installed, or the terminal was open before you installed it. Close the terminal, open a new one, and try again.
- “Port 5173 is already in use”
- Something else is running there — often a previous copy of this site. Close the other terminal, or stop it with Ctrl+C.
- The page loads but images or video are missing
- Make sure you ran the command from inside the unzipped MOTION / FORM — Gesture-Controlled Exploded Gallery folder itself, not the folder containing it.
- npm install shows warnings
- Warnings (as opposed to errors) are normal and safe to ignore. Only a message starting with ERR! needs attention.
Still stuck? Email us and we'll get it running with you.
More like this
Browse the store →
PremiumBR Coffee — Pistachio Tiramisu Iced Latte
Scroll builds the drink, frame by frame
PremiumBR-Skins — The Anatomy of Glow
Nine pinned chapters, five clips, one scroll
PremiumRuturaj Jena — Creative Technologist Portfolio
One WebGL stage, three films scrubbed by scroll
