Session Analysis
Leverage the power of Guido's AI to analyze your driving sessions.
Session Overview
After importing your data, Guido automatically generates a complete analysis:
const analysis = await client.sessions.analyze(sessionId);
console.log('Analysis:', {
totalLaps: analysis.summary.totalLaps,
bestLap: analysis.summary.bestLap,
averageLap: analysis.summary.averageLap,
consistency: analysis.summary.consistency, // in %
});
Key Metrics
Lap Times
// All lap times
const laps = analysis.laps;
laps.forEach((lap, index) => {
console.log(`Lap ${index + 1}: ${lap.time}s`);
});
// Best lap
const bestLap = analysis.bestLap;
console.log('Best lap:', bestLap.time);
console.log('Sectors:', bestLap.sectors);
Sector Analysis
// Sector comparison
const sectorAnalysis = analysis.sectors;
sectorAnalysis.forEach((sector) => {
console.log(`Sector ${sector.id}:`);
console.log(` Best: ${sector.best}s`);
console.log(` Average: ${sector.average}s`);
console.log(` Variance: ${sector.variance}s`);
});
Consistency
const consistency = analysis.consistency;
console.log('Overall consistency:', consistency.overall);
console.log('Lap time variance:', consistency.lapTimeVariance);
console.log('Improvement areas:', consistency.improvementAreas);
Detailed Analysis
Telemetry Data
const telemetry = await client.sessions.getTelemetry(sessionId, lapIndex);
// Available data
console.log('Speed:', telemetry.speed);
console.log('Brake:', telemetry.brake);
console.log('Throttle:', telemetry.throttle);
console.log('Steering angle:', telemetry.steering);
console.log('GPS position:', telemetry.gps);
Visualizations
// Generate charts
const charts = await client.sessions.generateCharts(sessionId, {
types: ['speed', 'brake', 'throttle', 'steering'],
laps: [bestLapIndex, currentLapIndex],
});
// Generated chart URLs
console.log('Speed chart:', charts.speed.url);
console.log('Brake chart:', charts.brake.url);
Lap Comparison
Compare with Best Lap
const comparison = await client.laps.compare({
baseLap: bestLapId,
compareLaps: [lap1Id, lap2Id, lap3Id],
});
comparison.results.forEach((result) => {
console.log(`Lap ${result.lapNumber}:`);
console.log(` Delta: ${result.delta}s`);
console.log(` Loss areas:`);
result.lossAreas.forEach((area) => {
console.log(` - ${area.location}: ${area.timeLost}s`);
});
});
Ideal Lap
// Calculate ideal lap (best of each sector)
const idealLap = await client.laps.calculateIdeal(sessionId);
console.log('Ideal possible time:', idealLap.time);
console.log('Potential gain:', idealLap.improvement);
console.log('Sectors used:', idealLap.sectors);
AI Coach
Automatic Recommendations
const coaching = await client.ai.getRecommendations(sessionId);
coaching.insights.forEach((insight) => {
console.log(`📍 ${insight.location}`);
console.log(` ${insight.message}`);
console.log(` Potential gain: ${insight.potentialGain}s`);
console.log(` Priority: ${insight.priority}`);
});
Example Output
📍 Turn 7 (La Source)
Braking too early by 15m
Potential gain: 0.3s
Priority: High
📍 Exit Turn 12 (Pouhon)
Late re-acceleration, throttle at 70% instead of 85%
Potential gain: 0.2s
Priority: Medium
Data Export
// CSV export
await client.sessions.export(sessionId, {
format: 'csv',
output: './exports/session-analysis.csv',
});
// Full JSON export
await client.sessions.export(sessionId, {
format: 'json',
output: './exports/session-full.json',
includeRawData: true,
});
Next Steps
- Installation - Back to setup guide
- SDK Introduction - Explore the Racing SDK