A web-based telemetry visualization tool for racing data, built with React and TypeScript.
- Interactive track map visualization using position data
- Real-time telemetry graphs showing:
- Speed
- Throttle
- Brake
- Gear
- Steering angle
- Session-based data navigation
- Lap-by-lap analysis
- Support for both live and historical data
- React 18
- TypeScript
- Material-UI
- Recharts for data visualization
- GraphQL for data fetching
- Webpack for building
- Node.js
- Yarn package manager
- Clone the repository
git clone [repository-url]- Install dependencies
yarn installStart the development server:
yarn startBuild for production:
yarn build:prodRun production build locally:
yarn serve:prodBuild and run with Docker:
yarn docker:build
yarn docker:runThe application works with telemetry data points that include:
- Distance traveled
- Speed
- Throttle position
- Brake position
- Gear
- Steering angle
- Lap timing
- 3D position data (x, y, z coordinates)
- Vehicle rotation (yaw, pitch, roll)
The application provides two implementations of the telemetry service:
-
MockTelemetryService:
- Used for development and testing
- Provides simulated telemetry data
- Includes sample lap data for testing visualizations
-
ApiTelemetryService:
- Production service for real telemetry data
- Connects to REST endpoints
- Development endpoint:
/api - Production endpoint:
https://b4mad.racing/api
GraphQL-based service for session and game management:
- Connects to telemetry backend (
telemetry.b4mad.racing:30050/graphql) - Provides functionality to:
- List available games
- Fetch session information
- Retrieve detailed session data including lap times
- Query lap validity and timing data
The service automatically handles endpoint selection based on the environment:
- Development: Uses relative
/graphqlendpoint - Production: Connects to
http://telemetry.b4mad.racing:30050/graphql
yarn start- Start development serveryarn build- Build for productionyarn lint- Run lintingyarn fetch-games- Fetch available game sessionsyarn fetch-session- Fetch specific session datayarn fetch-sessions- Fetch all sessions