# RCWeb Racer Control App

The **RCWeb Racer Control App** (`app/racer-c`) is the phone controller for the Racer viewer. It turns a touch screen into a combined steering, throttle, and brake surface.

![icon](pwa-512x512.png "Racer Control App Icon")

## Screenshot
![screenshot](screenshot.png "Racer Control App")

## What it does

- **Single-pad driving**: One analog touch pad handles steering and acceleration together. Drag up to build speed, down to brake or reverse, and sideways to steer.
- **Live race telemetry**: The controller shows the current lap, place, speed, and state pushed back from the shared race screen.
- **Quick restart**: A restart button can reset the race for the room without leaving the controller.

## How it works

- **Asymmetric messaging**: The controller sends `racer.remoteControl(...)` calls to the viewer at a throttled interval and receives targeted state updates through `racerControl.updateState(...)`.
- **Analog normalization**: Pointer coordinates are converted into a bounded steering axis and throttle axis so every phone sends consistent values no matter its screen size.
