Skip to content

Desktop App Overview

ApexLab is a Windows WPF desktop application built with .NET 8, CommunityToolkit.Mvvm, and ScottPlot. All user-facing text is in French (I18n.cs).


Features

Feature Description
Live Capture Records telemetry from 8 supported simulators at 40 Hz
Session Library Browse, search, and filter recorded sessions (SQLite catalog)
Lap Analysis Compare any two laps: speed, throttle, brake, delta over distance
Track Map Interactive SVG track map with pan/zoom, cursor sync, and OSM outlines
AI Coach Conversational coaching powered by Claude API
Leaderboards Submit and browse lap times per track
Achievements Unlock achievements as you race and improve

Architecture Pattern

MVVM with CommunityToolkit.Mvvm. Each feature area has a dedicated ViewModel:

ShellWindow (frame)
  └── ShellViewModel (auth state, navigation)
      ├── HomeViewModel
      ├── SessionsViewModel
      ├── LeaderboardsViewModel
      ├── MyPilotViewModel
      └── SettingsViewModel

SessionDetailWindow (analysis)
  ├── OverviewViewModel
  ├── CompareViewModel
  ├── TelemetryViewModel
  ├── SegmentsViewModel
  └── CoachViewModel

State Containers (singletons)

Container Holds
SessionState Currently loaded SessionData
SelectionState Reference lap, current lap, favorite session
AnalysisState Latest AnalysisResult (insights, segments, comparison)
AnalysisPipeline Reactive orchestrator — re-runs analysis on lap selection change

Local Data

Path Contents
%LocalAppData%\ApexLab\Sessions\*.csv Session telemetry files
%LocalAppData%\ApexLab\sessions.db Session catalog (SQLite)
%LocalAppData%\ApexLab\coach.db AI coaching memory (SQLite)
%LocalAppData%\ApexLab\track-outlines\*.json OSM track outlines (GeoJSON cache)
%LocalAppData%\ApexLab\settings.json User preferences
%LocalAppData%\ApexLab\auth.dat Encrypted JWT + refresh token (DPAPI)

See Local Storage for full details.