Two players, two phones, one rally: swing your phone like a racket and the ball crosses to your opponent’s screen in real time. The prize for winning a match was a year’s membership at David Lloyd.
This was a campaign prototype I built during my TBG Digital years — in 2013, when mobile browsers had only just grown accelerometer APIs and websockets were still novel. Motion detection ran on the HTML5 accelerometer; Socket.io over Node.js carried the real-time rally between the two players’ phones with latency low enough to feel like a game rather than a slideshow.
It’s the oldest piece I still show, and I keep it because the constraint was the point: no app store, no native code — just what the mobile web could be pushed to do in 2013. That instinct for building at the edge of what a platform allows is the same one I use today, just with better platforms.