ritwiksharma.com
Work
Installation · Hardware Integration

Batak Reaction Wall

A wall-mounted reaction game built for public venues. Players hit lit buttons as fast as they can; the wall scores and ranks them. Software, scene design, and installation logic by me. Physical button hardware co-developed with an embedded engineer.

Role
Software solo, hardware co-developed
Status
Multiple deployments
Duration
Recurring
Form
Wall-mounted physical reaction game
Audience
Public events, brand activations

What it is

Batak is one of the oldest and most reliable interactive formats in event activation: lights blink in a sequence, players race to slap them out, the wall reports their time and accuracy. Simple in concept, brutally demanding in execution because the system has to be fast, latency between light-out and hit-detected is the difference between a fair game and a frustrating one.

A deployed Batak unit. The wall is the interface; the software is what makes it feel responsive.

How the work was split

I built the software stack: game logic, scoring, sequencing, score display, lighting patterns, the round timer, and the operator interface for resetting between players. The buttons themselves, the physical light-up domes, the microcontroller integration, the wiring, were co-developed with an embedded engineer with hardware specialization.

The interface between the two layers is where I did most of the integration work: a small serial protocol between the Unity-side game and the Arduino-side button controller that handles button-press events, light state, and recovery from disconnects.

Architecture

  ┌────────────────────────────┐
  │   Unity game (my work)     │
  │   - round timing           │
  │   - sequence generation    │
  │   - scoring, display       │
  │   - operator UI            │
  └─────────────┬──────────────┘
                │ serial protocol
                │
  ┌─────────────┴──────────────┐
  │   Arduino / microcontroller│
  │   (co-developed)           │
  │   - light state            │
  │   - button polling         │
  │   - debouncing             │
  └─────────────┬──────────────┘
                │
  ┌─────────────┴──────────────┐
  │   Physical buttons (HW)    │
  └────────────────────────────┘

What the installation taught me

Stack

UnityC#Arduino integrationSerial protocolCustom operator UI

What this project demonstrates

Related work