Turning a MacBook into a touchscreen with $1 of hardware (2018)

https://news.ycombinator.com/rss Hits: 6
Summary

We turned a MacBook into a touchscreen using only $1 of hardware and a little bit of computer vision. The proof-of-concept, dubbed “Project Sistine” after our recreation of the famous painting in the Sistine Chapel, was prototyped by me, Kevin, Guillermo, and Logan in about 16 hours. The basic principle behind Sistine is simple. Surfaces viewed from an angle tend to look shiny, and you can tell if a finger is touching the surface by checking if it’s touching its own reflection. Kevin, back in middle school, noticed this phenomenon and built ShinyTouch, utilizing an external webcam to build a touch input system requiring virtually no setup. We wanted to see if we could miniaturize the idea and make it work without an external webcam. Our idea was to retrofit a small mirror in front of a MacBook’s built-in webcam, so that the webcam would be looking down at the computer screen at a sharp angle. The camera would be able to see fingers hovering over or touching the screen, and we’d be able to translate the video feed into touch events using computer vision. Our hardware setup was simple. All we needed was to position a mirror at the appropriate angle in front of the webcam. Here is our bill of materials: Small mirror Rigid paper plate Door hinge Hot glue After some iteration, we settled on a design that could be assembled in minutes using a knife and a hot glue gun. Here’s the finished product: The first step in processing video frames is detecting the finger. Here’s a typical example of what the webcam sees: The finger detection algorithm needs to find the touch/hover point for further processing. Our current approach uses classical computer vision techniques. The processing pipeline consists of the following steps: Filter for skin colors and binary threshold Find contours Find the two largest contours and ensure that the contours overlap in the horizontal direction and the smaller one is above the larger one Identify the touch/hover point as the midpoint of the line c...

First seen: 2026-03-30 20:13

Last seen: 2026-03-31 01:15