Project
Co-developed a projection-based virtual instrument that tracks fingertips in 3D and turns any flat surface into a responsive piano, xylophone, or DJ pad.










Co-developed a portable, projection-based musical instrument with Welldone Matanga and Justin Ansell for Northwestern University's CE 347 Microprocessor System Projects course. The system projects an interactive interface onto a flat surface and lets a player trigger sounds by tapping the projected controls—without physical keys or a touchscreen.
The final architecture combines a Leap Motion Controller, a LattePanda Mu single-board computer, and a compact projector with an integrated speaker. A compiled C++ program reads 3D fingertip coordinates from the Leap Motion SDK and streams them as JSON to a Python application. The software calibrates the sensor's horizontal and depth coordinates to the projected interface, uses a 15 mm tap threshold and per-key debounce timing to reject accidental triggers, and keeps the interaction responsive.
Players can switch among three complete instruments: a one-octave piano spanning C4 through B4, a colorful xylophone, and a 3×3 DJ sample board. Pygame renders the projected interface at 30 frames per second and manages stereo audio, including synthesized tonal notes with ADSR envelopes and pre-cached samples for low-latency playback.
We packaged the projector, computer, and tracking sensor in a custom 3D-printed frame, then iteratively tuned sensor placement and coordinate mapping so the physical tap region aligned with the projected controls. The finished prototype demonstrated real-time multi-finger tracking, mode selection, audible feedback, and portable operation, with all interaction data processed locally on the device.
This three-person CE 347 project combined 3D hand tracking, cross-language software, real-time graphics and audio, and mechanical prototyping. The goal was to create a portable musical experience that could transform an ordinary flat surface into several playable instruments.