Skip to main content

APEX · Live sim-rig demo · adaptive hand-controls

Real telemetry, audited in flight. From the drivers who don’t have a race engineer.

A 20 Hz stream of adaptive hand-controls telemetry flowing into the APEX coaching loop. The tile renders a synthetic GT4 hand-controls lap so the live demo flow renders end-to-end without a tethered driver rig. Live WebSocket swap point at apex/sim_rig/ws_server.py lights via Vinh M3-V2 backend deploy.

Adaptive hand-controls demo · GT4 sprint-series setup · circuit-agnostic synthetic layout.

FastF1 dataset selector · wave-47 G5 ship · M3-V11 swap-point

Selector wired client-side; live FastF1 .npz fixture delivery + per-dataset stream endpoint land via Vinh M3-V11 backend deploy. Synthetic GT4 default ships canned + renders the demo flow end-to-end without backend.

Live frame.

Wave-44 Phase 6h: live HTTP-stream from /api/sim-rig/stream (NDJSON 20Hz via Vercel Fluid Compute ReadableStream). Per-frame parse + ring-buffer + disconnect-reconnect already in the existing client. Render path is identical to the simulated mode below + the Vinh M3-V2 WebSocket mode that follows.

Live sim-rig stream

Reconnecting

Waiting for first frame...

Ring buffer 0 of 120 frames at 20 Hz.

In-memory simulated tile (control)

Live sim-rig stream

Simulated

Waiting for first frame...

Ring buffer 0 of 120 frames at 20 Hz.

What each channel encodes.

Speed
Vehicle speed in metres per second. The simulated lap encodes a mid-sector slow-hairpin slowdown around the 28-36 second mark of every 78-second loop.
Throttle / Brake
Throttle in percent, brake in megapascals. The synthetic profile drops throttle and lifts brake through the slow-hairpin window; outside that window, throttle modulates against brake on a 3x oscillation.
Steering / Lat G
Steering angle in radians (positive = right turn per shared/types.ts sign convention). Lateral G force in g, negative through left-handers, scaled higher through the hairpin section.
Long G
Longitudinal acceleration in g. Approximated as (throttle - brake_pa / 5MPa) * 0.9. Useful as a sanity check on the throttle and brake channels visually.
Gear / RPM
Engine RPM scaled with speed; gear bucketed against speed thresholds matched to a generic GT4 hand-controls setup used by the synthetic simulated stream.

Why ship this on Day 2.

Stretch inclusion S1 in PLAN.md §18. The tile ships against a synthetic adaptive-controls GT4 lap stream so the live demo flow renders end-to-end without a live driver-rig connection. Live WebSocket swap point lives at GET /api/sim-rig/stream returning a SimRigFrame stream per app/shared/types.ts; the render path is identical between simulated and live modes, so flipping is a one-line prop change.

Source: PLAN.md §18 Stretch S1 + pre-mortem row 45 (galaxy-tier compounding lesson).