// everything built on top
Me
Everything
Else.
All of this runs on Bornhall's decrypted stream and ddm999's car and track names, but every line below — every panel, chart, detection system, and build — was written for TRACE.
Heartbeat / UDP Connection Handling
The threads that send the heartbeat to :33739 and listen on :33740, plus connection-state tracking, reconnect logic, and — as of the latest build — detailed connection error diagnostics (distinguishing a bad IP, a firewalled port, or another instance already bound to it) instead of a generic "timeout."
Race Start / End Detection
Detects both rolling starts (sustained speed above threshold) and grid starts (stationary + on-track within an armed window after a loading transition), and fires a race-end event when lap number crosses total laps.
Pause / Resume Detection
Watches the raw paused flag and fires pause/resume events other parts of the app (like the Lap Analyst's recorder) hook into.
Incident Detection
Flags tyre-slip spikes and sudden sway/heave/surge (body motion) events during a race — spins, rear step-outs, big kerb strikes — with cooldown so one incident isn't logged a dozen times.
Fuel Mixture Change Detection
GT7 doesn't expose the mixture setting over telemetry, so this watches fuel-burn rate for a sustained step-change and flags a likely mixture switch, in either direction.
Debug State Event Stream
Fires a snapshot event any time loading, on-track, or lap-count state changes — so a misfire in the start/pause detection can be diagnosed from the exact state that triggered it, without a console window.
Saved Settings
Console IP, recording sample rate, and the analytics/metrics toggles are all set in the Dashboard header and persist to a settings.json, remembered automatically between runs. (The laps folder lives in the same file but has no in-app control — move it by editing LAPS_FOLDER directly.) The standalone builds keep it next to the executable so they stay portable; pip/source installs use ~/.gt7telem/ so an upgrade can’t wipe your settings.
Adjustable Recording Sample Rate — Live Dashboard
Optional REC RATE dropdown next to the connection controls — pick how often samples get recorded during Record Lap / Record Race (10 / 20 / 30 / 60 Hz). Lower rates keep saved lap/race files smaller; higher rates capture more detail for the Lap Analyst's finer charts. Recording never invents data between real telemetry packets — it only thins samples down to the rate you pick, never up. Laps and races recorded at different rates compare and sync correctly against each other in the Lap Analyst and Race Analyst, since both key off each sample's actual recorded timestamp rather than assuming a fixed interval.
Track Picker — Live Dashboard
TRACK field is a searchable dropdown backed by ddm999's course database (see the ddm999 section above) instead of a free-typed box — pick the real name instead of retyping it every session. Still free-typeable for anything not in the list. If GT7 ships a new track before the database catches up, add_track.py (ships with the source) adds it in one prompt — just the name, no ID needed, since telemetry doesn't expose one to look up in the first place.
Real-Time Multi-Channel Display — Live Dashboard
Speed, RPM, gear, throttle/brake, tyre temps, fuel, G-forces, and 40+ other channels updating live at 10Hz.
Live Track Map — Live Dashboard
A mini canvas that draws your position in real time from world X/Z coordinates — no pre-loaded track data needed, it draws itself as you drive.
Tyre & Fuel Alert Banners — Live Dashboard
Flashing hot/cold tyre and low-fuel banners so you don't have to watch the numbers constantly.
Lap History Panel — Live Dashboard
A scrollable, sortable list of every lap in the current session, with car and track names (via ddm999's database) instead of raw IDs.
16 Chart Groups — Lap Analyst
Inputs, Engine, Tyres, Dynamics, Maps, G-Force, Fuel, Braking, Sectors, Traction, Tele Diff, Ratings, Heat Maps, Timeline, Extended, and Consensus — all rendered from a single recorded lap.
Replay System — Lap Analyst
Scrub through a recorded lap and watch every chart and the track position move together in sync.
A vs B Lap Comparison — Lap Analyst
Load two laps side by side and compare every metric directly — where time was gained or lost, and why.
Full-Race Replay & Comparison — Race Analyst
Load two complete race sessions and replay them synced, side by side, start to finish.
CSV / HTML Export — Race Analyst
Export the full breakdown of a session to share or dig into outside the app.
Windows & Linux One-File Builds — Packaging
PyInstaller onefile builds — no Python install required. Produced on GitHub-hosted runners on every release; the exact build commands live in
the build workflows if you want to reproduce one yourself.
Automated macOS Builds — Packaging
TRACE.app is built automatically on every release by a GitHub-hosted Apple Silicon runner — no physical Mac needed on this end, and no more asking the community to build and email one in.
Anonymous Usage Analytics — All Tools
One small anonymous record sent on launch — tool, version, and OS, nothing else — so effort goes toward what people actually use. On by default, one checkbox to turn off. Full breakdown on the
Privacy page.
Global Lap Leaderboard — Lap Analyst
Submit a recorded lap to a public per-car, per-track leaderboard, with a live Top-10 panel right in the sidebar. Submitting needs a free account (see below) — the name that appears on the row is the PSN name you type in the submit dialog, pre-filled from last time and editable each submit. Backed by a Supabase database; see
Privacy for exactly what gets submitted.
Server-Side Anti-Cheat — Leaderboard
Every submission is checked in the database itself before it can appear: physically-impossible lap times are rejected outright, and times beating the current record by more than 20% are held for manual review instead of publishing immediately.
Ghost Lap Download — Lap Analyst
Download any Top-10 leaderboard lap and load it straight into the A-vs-B compare view as Lap B — same charts, same diff tools, no need to already own a recording of it yourself.
Consensus Racing Line — Lap Analyst
Pull a community-average speed/throttle/brake line — computed from the current top 10 leaderboard laps for your car and track — and overlay it against your own lap on a dedicated Consensus chart tab.
Crowdsourced Car & Track Submissions — Live Dashboard
If GT7 reports a car ID that's not in the local database yet, or you type in a track name that isn't in the picker, it's submitted to a shared community inbox automatically — instead of just showing a blank name until someone notices and runs add_car.py/add_track.py by hand.
Optional Free Accounts — All Tools
A one-time onboarding screen offers a free account — just a display name, no email or password, ever — so a leaderboard submission ties to a real identity instead of a self-typed name anyone could fake. Skipping is one click and still gives full access to viewing the leaderboard, downloading ghost laps, and the consensus line; only submitting a lap needs an account, and you can sign up later from the tool menu at any time.
Replay CSV Export — Lap Analyst
Export a loaded lap's Replay data — distance, speed, throttle, brake, RPM, gear, steering — straight from the Replay tab, one click.
Micro-Sector Heatmap — Lap Analyst
Toggle the race-line on the Replay tab to color by 25m-sector time delta against a loaded reference lap — red where you're slower, green where you're faster, at a glance.
Track Boundary Overlay — Lap Analyst
Save an estimated left/right track edge straight from a lap's own GPS trace — no external track-map data needed — and it renders under the race-line automatically on every future lap loaded for that track.
Prometheus Metrics Export — Live Dashboard
Optional, off by default: expose speed, RPM, throttle, brake, fuel, and lap-time as Prometheus gauges on a local port, for Grafana or any Prometheus-compatible scraper to pull from.