Skip to main content

First Data Import

Learn how to import your first session data into Guido.

Supported Data Typesโ€‹

Guido accepts multiple data formats:

๐ŸŽฅ Videoโ€‹

  • Formats: MP4, AVI, MOV
  • Recommended resolution: 1080p or higher
  • Extracted information: visual trajectory, braking points

๐Ÿ“ GPSโ€‹

  • Formats: GPX, NMEA, CSV
  • Recommended frequency: 10Hz minimum
  • Information: position, speed, acceleration

๐Ÿš— OBD (On-Board Diagnostics)โ€‹

  • Formats: CSV, JSON
  • Data: RPM, throttle, brake pressure, temperature
  • Compatible with most OBD-II dongles

๐ŸŽฎ Simulationโ€‹

  • iRacing (.ibt)
  • Assetto Corsa (.json)
  • rFactor 2 (.ld)

Simple Importโ€‹

Via the SDKโ€‹

import { GuidoClient } from '@guido/racing-sdk';

const client = new GuidoClient({
apiKey: process.env.GUIDO_API_KEY,
apiSecret: process.env.GUIDO_API_SECRET,
});

// Import a GPS file
const session = await client.sessions.import({
type: 'gps',
file: './data/session-spa-2024.gpx',
metadata: {
circuit: 'Spa-Francorchamps',
vehicle: 'BMW M4',
date: '2024-08-15',
conditions: 'dry',
},
});

console.log('Session imported:', session.id);

Multiple Importโ€‹

// Combined GPS + Video + OBD import
const session = await client.sessions.importMultiple({
gps: './data/session.gpx',
video: './data/session.mp4',
obd: './data/session-obd.csv',
metadata: {
circuit: 'Spa-Francorchamps',
vehicle: 'BMW M4',
date: '2024-08-15',
},
});

Import Verificationโ€‹

// Get session details
const details = await client.sessions.get(session.id);

console.log('Status:', details.status);
console.log('Lap count:', details.laps.length);
console.log('Best time:', details.bestLap.time);

For optimal analysis, include these metadata:

{
circuit: 'Circuit name',
vehicle: 'Car model',
date: 'YYYY-MM-DD',
conditions: 'dry' | 'wet' | 'mixed',
temperature: 25, // in Celsius
trackTemp: 35,
setup: {
tirePressure: { fl: 2.4, fr: 2.4, rl: 2.2, rr: 2.2 },
suspension: 'sport',
}
}

Complete Exampleโ€‹

async function importSession() {
const client = new GuidoClient({
apiKey: process.env.GUIDO_API_KEY,
apiSecret: process.env.GUIDO_API_SECRET,
});

try {
const session = await client.sessions.importMultiple({
gps: './data/spa-session.gpx',
video: './data/spa-session.mp4',
obd: './data/spa-obd.csv',
metadata: {
circuit: 'Spa-Francorchamps',
vehicle: 'BMW M4 Competition',
date: '2024-08-15',
conditions: 'dry',
temperature: 22,
trackTemp: 32,
driver: 'Thomas',
},
});

console.log('โœ… Session imported successfully!');
console.log('ID:', session.id);
console.log('Laps detected:', session.laps.length);

} catch (error) {
console.error('โŒ Import error:', error);
}
}

importSession();

Next Stepsโ€‹