home / work / edge-pong

HACK THE 6IX 2026 — SOLO BUILD

Edge Pong

A projected arcade ping-pong game: swing a real paddle at virtual balls, and when you connect, a smart paddle buzzes right where the ball struck — all processed locally with edge AI.

ESP32-C5Spatial HapticsEdge AIThree.jsPythonTypeScript
HERO PHOTO: smart paddle + projected game arena

## Problem

Gaming keeps retreating behind screens and headsets. I wanted a tangible gaming experience — swinging a real paddle at virtual balls and actually feeling the impact in your hand, no VR headset required.

## Solution

A projected ping-pong arena driven by a custom smart paddle. The paddle streams motion data from an ESP32-C5; when you hit a virtual ball, four vibration-motor quadrants encode where on the paddle the ball struck, using bilinear interpolation across motors.

## Demo

VIDEO: Edge Pong gameplay demo (embed here)

## Features

  • Backend (Python) — physics engine with collision detection, rally system, AI opponent, and quaternion-based pose fusion
  • Frontend (Three.js + TypeScript) — 3D arena synced over WebSockets at 60 Hz
  • Smart paddle (ESP32-C5) — custom firmware streaming motion data, driving four vibration-motor quadrants for spatial haptics

## Tech Stack

ESP32-C5Custom FirmwarePythonThree.jsTypeScriptWebSocketsQuaternion Pose Fusion

## Challenges

  • Hardware was the hard part: MOSFET wiring errors, power management, forcing 2.4 GHz networking
  • Calibrating vibration-motor sensitivity thresholds so haptics feel right

## Lessons Learned

  • Four vibration zones are enough to convey strike location on a paddle
  • Quaternion orientation avoids gimbal lock in fast swings
  • Responsiveness beats physics accuracy for playability

## What's Next

Real camera tracking with AprilTag detection, and housing the electronics fully inside the paddle handle.

## Gallery

PHOTO: paddle electronics
PHOTO: projected arena
SCREENSHOT: 3D game view