Skip to content


Folders and files

Last commit message
Last commit date

Latest commit



59 Commits

Repository files navigation

GesturePresenter GesturePresenter Logo

Build Passing Website Chrome Web Store Stars

Control Slides with just hand gestures!

GesturePresenter enables users to control slide presentations through hand gestures, utilizing any device with web access and a camera. This project leverages Google's MediaPipe Hands for gesture recognition and consists of a three-part system: a Remote website, a Chrome extension, and a backend server.

Key Components

  • Remote Website : Developed with ReactJS, this website uses your device's camera to recognize hand gestures for slide control.
  • Chrome Extension : Facilitates navigation through a Google Slides presentation by communicating with the Remote Website via WebSockets.
  • Backend Server : A Python3 Flask server that connects the Remote Website with the Chrome Extension, ensuring seamless interaction between the two.

Quick Links


Extension Screenshot Pairing Screen Screenshot
Demo Gesture Right Demo Gesture Right

Getting Started


  • Node.js and npm: Required for setting up the frontend website. Download from , which includes npm.
  • Python 3 and pip: Needed for the backend server. Available for download at .
  • Chromium Browser: Necessary for installing and using the Chrome Extension.

Installation Guide

Setting Up the Frontend Website

  1. Clone the Repository : Obtain the GesturePresenter codebase.
git clone
cd GesturePresenter/frontend
  1. Install Dependencies : Get all required libraries.
npm install
Development and Deployment
  • Development Server : npm start launches the app in development mode.
  • Production Build : npm run build compiles the app for production.
  • GitHub Pages Deployment : npm run deploy pushes the build to the gh-pages branch.

Setting Up the Backend Server

  1. Navigate and Install : Move to the backend directory and set up.
cd GesturePresenter/backend
pip install -r requirements.txt
  1. Launch the Server : Start the Flask application with python

Installing the Chrome Extension

  1. Prepare the Extension : Switch to the chrome-extension directory and install dependencies.
cd GesturePresenter/chrome-extension
npm install
  1. Build and Load : Compile the extension and add it to Chrome.
  • Build: npm run build
  • Develop: npm run watch
  • Load in Chrome: Enable Developer Mode in chrome://extensions/, choose "Load unpacked", and select the build directory.

Using GesturePresenter

After installation, navigate to a Google Slides presentation in Chrome, use the GesturePresenter website on another device for gesture recognition, and control your presentation seamlessly.


Contributions are welcome! To contribute:

  1. Fork the repository.
  2. Create your feature branch: git checkout -b feature/AmazingFeature.
  3. Commit your changes: git commit -am 'Add some AmazingFeature'.
  4. Push to the branch: git push origin feature/AmazingFeature.
  5. Open a Pull Request.


GesturePresenter is licensed under the MIT License. For more details, see the file.