Skip to content


Repository files navigation

This code allows you to create a Reveal.js presentation, controlled by hand motions through a LeapMotion device. Using SendGrid, you can conduct a live voting session where votes are cast via email and updated in real-time using express, and Highcharts.js. If you have Google Glass, you can get a teleprompter that displays your slide notes as you go through each slide.

View a video demo of the final product to get a feel for the completed project. The video is less than 5 minutes.

There is a companion blog post at SendGrid's blog.


This software was tested on a Macbook Pro Retina and a Macbook Air, both running Yosemite. If you test on Linux or Windows, please let me know the results.


  • clone this repository
  • create a local MySQL database, the schema is at DB/votes.sql
  • rename .EXAMPLE.env to .env and update the credentials
  • run npm install in the root directory of the project
  • run grunt
  • run ngrok 3000
  • setup your Incoming Parse API webhook in your SendGrid account
  • go to http://localhost:3000 and try using the leapmotion to navigate to the next page (voting)
    • currently, you can swipe backwards/forwards/up/down and point for a simulated laser pointer.
  • send an email to inbound@the-host-you-setup-for-the-parse-webhook (e.g. mine would be with Python as the subject, the vote should register automatically in a few seconds
  • check your email inbox for an email from Say hi :)
  • check your DB and verify the new entry
  • modify the slides at views/index.html and keep your assets in the /public folder
  • if you have Google Glass, setup an App utilizing the Mirror API on App Engine and update the credentials in your .env file

Info & Help

Please let me know how I can improve this tutorial with a pull request or open an issue. Happy Hacking!


No description, website, or topics provided.







No releases published


No packages published