Replace the fixed left/right split with selectable pod slots and a scalable grid layout so player count follows the chosen pods.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace facing-only roll detection with atan2(x, yz) so left/right works in both orientations without a face gate.
Co-authored-by: Cursor <cursoragent@cursor.com>
Drop the interactive accel calibration and map left/right ship motion from absolute pod roll while held facing the player.
Co-authored-by: Cursor <cursoragent@cursor.com>
Shows live accel attitude with a front-view cylinder (flat / facing / steer) and a TOP marker that rotates with the mesh.
Co-authored-by: Cursor <cursoragent@cursor.com>
Two-player mode with client assignment, 3D vector calibration for cylindrical
pods, lives, tap/double-tap boost with low-intensity LED cooldown feedback,
and Kenney sprite assets.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace separate accel/tap push handling with input messages, set_input_stream, and a single set_stream on port 8081.
Co-authored-by: Cursor <cursoragent@cursor.com>
Players match a displayed digit to the correct pod via tap, with round timing and adjustable LED brightness.
Co-authored-by: Cursor <cursoragent@cursor.com>
Each client panel gets mode-specific LED inputs (color, intensity, progress, digit, blink) and the Makefile now copies API_REST.md alongside the WebSocket docs.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace the single-entry Pong flow with a menu launcher, a per-client API demo on :8081/ws with stream controls and tap flash feedback, and bump the viewport to 1920×1080.
Co-authored-by: Cursor <cursoragent@cursor.com>