Skip to content
All projectsPROJECT 02 / 10

Real-time telemetry / Sim racing

RacePulse

Real-Time Sim Racing Telemetry Overlay

TIMELINE2026 - PresentBUILT FORDesktopREADING TIME 5 min readJump to the engineering
6supported racing titles
14customizable widgets
~16 MBone portable application

5 min read · Your pace, your way.

Text size
18

Project Overview#

RacePulse is a real-time telemetry overlay for sim racing on Windows. It provides modular widgets that float above the game window and show speed, lap times, fuel, inputs, G-forces, the running order, and more. Five game integrations cover six titles, it auto-detects the running game, and it ships as a single portable executable of about 16 MB with no installer. The current release is 0.4.0.

Key Features#

  • 14 overlay widgets: Speed, Gear, RPM, Delta, Lap Times, Inputs, Fuel, G-Force, Telemetry Core, Inputs Telemetry, Flat Track Map, Relative, Standings, and Lap Log
  • Advanced widgets: Telemetry Core (rev lights, gear, speed, position, and session info in one), Inputs Telemetry (scrolling input graph with steering wheel), Flat Track Map (every car on one line, a lane per class), Relative (the cars around you, with gaps measured on your class's lap), Standings (the whole field by class in six layouts), and Lap Log (every lap with its delta, sectors, and fuel)
  • Widget layouts: save the widgets on screen, with their places, sizes, and settings, and switch setups from the bottom bar; each layout remembers its monitors
  • A Customize page for every widget with a live preview, and per-widget settings that persist across restarts
  • Arrange mode for dragging widgets into place on your monitors, then Lock for racing so clicks pass through to the game
  • Only show with telemetry: locked widgets hide when no game is sending data, after a short countdown on each widget
  • Widgets that the connected game cannot feed hide with an explanation and are grayed out in the app, and return when a supported game is running
  • Country flags in Relative and Standings, from iRacing profiles, F1 nationalities, and Le Mans Ultimate online servers
  • A Settings window, US or UK English, and a getting-started Help guide that ticks off each step
  • An experimental telemetry dashboard that pops out into its own window for a second screen
  • Automatic game detection, with manual selection and setup help for each sim
  • Live widget previews in the gallery, driven by a simulated race
  • One-click in-app updates that pick the newest stable release and verify its SHA-256 checksum before installing
  • Single-instance enforcement so only one copy runs at a time

Supported Games#

  • iRacingshared memory, with competitor data for Relative, Standings, and the track map
  • Assetto Corsa Competizioneshared memory, with delta timing
  • Assetto Corsashared memory
  • Le Mans Ultimatenative LMU_Data shared memory, plus the game's local web API for car numbers, team names, and nationalities, with the optional rFactor 2 plugin as a fallback
  • F1 24 and F1 25UDP telemetry, including F1 25's 2026 Season Pack format, with competitor data for Relative, Standings, and the track map

Every widget reads from a unified telemetry model, but what each game sends differs. Relative, Standings, and Flat Track Map support iRacing, Le Mans Ultimate, and F1, and Delta needs a game that sends a live delta (iRacing, Le Mans Ultimate, and Assetto Corsa Competizione). In a game that can't feed a widget, the widget hides with an explanation instead of showing empty data.

Technical Architecture#

RacePulse is a Go backend with a React and TypeScript frontend. Each game implements a provider interface that converts its own transport (Windows shared memory, UDP, or a local web API) into one normalized telemetry model, so widgets never deal with game-specific data. Since 0.4.0, RacePulse is a single Go application on Wails v3 that hosts a native WebView2 window for each widget; releases through 0.3.5 used Wails v2 with a separate overlay process per widget, connected to the main app over local TCP. The same React widget components render both the gallery previews and the real overlay windows through NPM workspaces. Win32 integration handles transparent always-on-top windows, multi-monitor placement, and click-through.

Distribution & Deployment#

RacePulse is distributed as one portable executable (RacePulse.exe, about 16 MB in 0.4.0) with both frontends embedded, so there is no installer or configuration file. Settings, widget layouts, and positions are stored in the user's profile and carry across updates. The app checks the public release repository, picks the highest stable version, downloads it with its SHA-256 checksum, verifies it, replaces itself, and relaunches; a release without a checksum is never installed, and prereleases and drafts are skipped. Builds are produced from the private source repository by a manually triggered workflow and published to GitHub Releases, and the website deploys automatically.

Version 0.4.0#

Released on October 12, 2026, 0.4.0 moves widget windows to Wails v3 (see Technical Architecture) and redesigns the app around a widget sidebar, a gallery of live previews, a Customize page for each widget, widget layouts across monitors, a Settings window, and a bottom bar with an Overlay menu. It adds the Standings and Lap Log widgets, brings Relative and Standings to Le Mans Ultimate and F1 with country flags, and 0.3.5 users update in the app with their settings carried over.

Release history#

  1. v0.4.0

    Native windows and a redesigned app

    One app with a native window per widget, a redesigned main window, widget layouts across monitors, a Settings window, and the new Standings and Lap Log widgets. Relative and Standings now work in Le Mans Ultimate and F1, with country flags.

    Release notes for 0.4.0 (opens in new tab)
  2. v0.3.5

    Reliability and polish

    More reliable update install and restart, including downloads on another drive. Safer widget startup, reconnection, and shutdown. Settings failures now keep your edits and report the problem, and telemetry queues are bounded to limit memory growth.

    Release notes for 0.3.5 (opens in new tab)
  3. v0.3.0

    Stability and accuracy

    Fixed mid-session crashes and freezes in long Le Mans Ultimate sessions, stopped one slow widget from stalling the rest, made F1 skip malformed packets, and corrected fuel, lap consistency, and leaderboard math. The updater started installing stable releases only.

    Release notes for 0.3.0 (opens in new tab)
  4. v0.1.0-alpha

    First public alpha

    The first published build, followed by a rapid series of alpha releases through 0.2.9 in April before the 0.3.0 stable line.

    Release notes for 0.1.0-alpha (opens in new tab)