// 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."
Console Auto-Detect — Live Dashboard
An "Auto-Detect" button next to the console IP field broadcasts a device-discovery query on the local network — the same protocol Sony's own apps use — and fills in whichever console answers, instead of digging through PS4/PS5 network settings to find the IP by hand. Manual entry still works exactly as before, and the remembered-IP dropdown next to it no longer caps out at 3 — every console you've ever successfully connected to stays in it now.
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 — or when you quit/restart mid-race. Only real race sessions count: time trial and practice laps never start a race recording.
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.
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, update-check, notification, voice-alert, top-lap-ghost and 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.) It lives in ~/.gt7telem/ so an upgrade can’t wipe your settings — except for a standalone .exe/binary unzipped into a folder you can write to, which keeps it next to the executable so it stays portable.
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.
Auto Lap Recording — Live Dashboard
Optional AUTO LAP checkbox in the Dashboard header (off by default, remembered between runs). In time trial, practice and free run, it arms Record Lap for you once you’re driving, then saves every lap from the next start/finish crossing — no button press. Leaving the session discards the unfinished lap, and stopping it by hand keeps it off until you leave the session. Races already start recording on their own.
Keep Awake — Live Dashboard, PC & Android
A KEEP AWAKE checkbox in the Dashboard header (on by default, remembered between runs) stops your PC idle-sleeping or hibernating the whole time the Dashboard is open — even before the console connects — and lets it sleep again the moment you close it. It works on Windows, macOS and Linux. The Android app has the same switch: it keeps the screen on and holds the phone awake while TRACE is open, and lets go when you close it. Untick it to stay awake only while telemetry is flowing. It can’t stop a closed lid or a manual Sleep.
Low-Battery & No-Track Warnings — Live Dashboard, PC & Android
If your laptop or phone drops below 20% on battery while a lap or race is recording, the Dashboard shows a red “plug in your charger” bar and beeps — and if you ignore it, a loud siren repeats until you charge or acknowledge, so a long recording isn’t lost when the battery dies. On Android it also posts a notification. It also warns if you start recording with no track selected, and when you save without one it asks “are you sure?” with a dropdown to pick the track you drove on (or save as unknown).
Junk-Lap Guard & Duplicate Finder — Live Dashboard & Lap Analyst
Occasionally a snippet or a second copy of a lap can get saved — a restarted lap, a parked car, a double save. The Dashboard now skips recordings that are too short, never moved, or identical to the lap it just saved, and says why in the log. For copies that already exist, Find Duplicate Laps in the Lap Analyst lists them and, on your OK, moves the extras into a _duplicates folder — nothing is deleted, and reference and personal-best files are left alone.
Track Auto-Detect — Live Dashboard
GT7 never says which track you're on, so TRACE works it out from where the lap starts and which way you leave the line — that point repeats within a few metres on every lap. With no track set, a bar a few seconds into a lap (in a race, about one lap in, once you cross the start line) says “Looks like Suzuka Circuit — use it?” (Use it / Not this; it never fills the box silently). Tracks it hasn't learned yet are shortlisted by lap length, and the save-time “no track” dropdown lists the best guesses first. It learns from each confirmed lap, and with SHARE USAGE DATA on shares only the start point, heading and lap length to a community table so detection improves for everyone.
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.
Fuel & Tyre Strategy — Live Dashboard
Fuel per lap from the median of your last clean laps (a refuel or restart never skews it), laps of fuel left, a finish check and a suggested pit-by lap. The tyre readout shows stint age, pace lost against your best stint lap, the per-lap trend and last-lap tyre temperatures. GT7 sends no tyre wear, so the tyre figures are estimates and are labelled that way; a refuel starts a new stint, or press NEW TYRES. Race Analyst shows fuel per lap and laps per tank for a recorded race.
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.
20 Chart Groups — Lap Analyst
Inputs, Engine, Tyres, Dynamics, Maps, G-Force, Fuel, Braking, Sectors, Traction, Tele Diff, Ratings, Heat Maps, Timeline, Extended, Consensus, Style, Corners, Theoretical, and Dyno & Tune — all rendered from your recorded laps.
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. Per-lap splits (a partial final lap is shown but never counted as your best), starting grid slot, and pit stops worked out from refuelling — GT7 itself sends no pit or live-position data.
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 (SHARE USAGE DATA) 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.
Public Leaderboard Browser — Website
The same leaderboard, browsable from any browser at
/leaderboard — no install, no account. Search any of the 590 cars and 123 tracks and see the live Top-10 instantly. Only times set since GT7 update 1.71's physics overhaul are shown — the same reset Polyphony applied to its own boards. Also has a "can't find your car/track?" box that submits straight to the same crowdsourced inbox described below.
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 a suspiciously fast first time for a car and track is held for manual review instead of publishing immediately. A submitted time can't be edited afterwards.
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.
Shareable Lap Card — Lap Analyst
One click turns the loaded lap into a 1200×630 PNG that only shows values read straight from the recording: car, track, date, lap time (or INCOMPLETE), top speed, fuel used, the speed trace round the lap and a speed-coloured track map (when the lap has GPS data). Ready to post.
Corners Tab — Lap Analyst
Finds every corner on the loaded lap, then — with Compare on and your PB loaded as lap B — matches each one to the same corner on the PB and scores it: where you braked, how much speed you carried, where you got back on the throttle, and the time gained or lost. A one-line label on top (late braker, early on throttle, smooth…) is a heuristic read on how the lap was driven, not a lap-time verdict.
Driving Style Tab — Lap Analyst
Classifies how the loaded lap was driven as Smooth, Balanced or Aggressive (from how quickly steering, throttle and brake change), and reads cornering balance as understeer- or oversteer-leaning from front versus rear tyre slip while cornering. Works with A/B compare, and a corner-by-corner scatter shows where on the lap the balance shifted.
3+ Lap Overlay — Lap Analyst
An OVERLAY section in the sidebar adds any number of extra saved laps on top of A and B. They draw as dotted lines (speed, throttle, brake, steering) on the Inputs tab, each in its own colour.
Searchable Lap Picker — Lap Analyst
Browsing for Lap A, B or an overlay lap opens a searchable list instead of a bare file dialog — filter by car, track or date, built from the metadata saved inside your own laps.
Backup All Laps — Lap Analyst
One click zips your whole laps folder into ~/TRACE/backups/. The same backup is also a link in the Launcher footer.
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. It listens on this PC only; an ALLOW REMOTE checkbox opens it to your local network (no password, so use it only on a network you trust). Nothing is sent to the internet. See
Privacy.
Desktop Notifications — All Tools
A small on-screen toast, with a sound where the system supports one, when you set a new personal best and when a race recording ends automatically. A NOTIFICATIONS checkbox in the Dashboard header switches them off (spoken alerts have their own VOICE ALERTS switch).
Dark / Light Theme — All Tools
A theme toggle in the Launcher footer. It applies the next time you open a tool, and Lap Analyst and Race Analyst follow it too.
Update Checker — Launcher
On startup the Launcher quietly checks GitHub releases and shows a small banner when a newer version is out. It compares version numbers properly, and the banner stays as you move between screens. Switch it off any time with the CHECK FOR UPDATES checkbox in the Dashboard header.
Update-Check Switch — Live Dashboard
A CHECK FOR UPDATES checkbox in the Dashboard header, right beside SHARE USAGE DATA, turns the Launcher’s startup update check on or off and saves the choice to settings.json. No more editing the file by hand. The header’s switches now sit on their own Preferences row so nothing gets squeezed off a narrow window.
Shareable Race Card — Race Analyst
The race-side twin of the lap card, drawn by the same renderer: a 1200×630 PNG with car, track, date, best lap (to 0.01 s), laps completed, top speed, every lap time at its real height with the best one highlighted, and a speed-coloured map of the best lap.
Per-Lap Corner Scoring — Race Analyst
A Corners tab that scores every lap of a race, corner by corner: a lap × corner heat-map of time gained or lost, plus the average per corner. A Corner baseline button switches between the best lap of the race and your saved PB lap file for that car and track. It reuses the same corner detection as the Lap Analyst.
Spoken Alerts — Live Dashboard
Fuel-low and tyre hot/cold alerts are read out loud through your system’s own voice (Windows speech, macOS say, Linux spd-say or espeak if installed), falling back to the alert sound when there’s no voice. Each alert is spoken when it turns on, fuel and hot-tyre warnings repeat once a minute while they last, and a VOICE ALERTS checkbox mutes it. The voice runs in its own process, so the display never waits for it.
Consistency Report — Race Analyst
Lap-time spread, trend (speeding up or slowing down per lap), a 0–100 consistency score, and the most and least consistent corners over a race. Pit laps and spins, anything more than 7% off your best, are left out of the numbers and shown dimmed so one bad lap doesn’t ruin the picture.
Records Table — Launcher
A Records link in the Launcher footer opens your best lap for every car and track, built from your saved laps, with a filter box. It reads only the summary at the start of each lap file, so even a big laps folder opens quickly. Incomplete laps and laps from before the 1.71 physics update are left out unless you tick the box.
TRACE for Android — Mobile
A standalone Android app (Kotlin + Jetpack Compose) with the same Live Dashboard, Lap Analyst and Race Analyst, the same layout, colours and charts, and the same lap files. The phone receives the PS5's UDP telemetry itself, so no PC is involved. Voice and notification alerts, ghost-lap gap, Records, backups, the leaderboard and update check all work. It's a free sideloaded APK built on GitHub Actions, see
Setup.
Theoretical Best Lap — Lap Analyst
Stitches the fastest 25 m micro-sector from each of your laps on a car and track into the lap you could drive, then shows which zones hold your best real lap back and which lap is quicker there. It’s an optimistic ceiling, since a faster exit carries into the next sector, and the page says so.
Dyno & Tune — Lap Analyst
Drive one lap and TRACE rebuilds what GT7 never shows: the engine’s power and torque curve (real hp and Nm once you enter the car’s weight, hp per tonne otherwise), every gear’s ratio, km/h per 1000 rpm and true top speed, and the best shift rpm for each gear against the one you actually use. It then reads the lap for tuning hints — understeer or oversteer on entry, mid-corner and exit, wheelspin, brake lock-ups, gearing that is too long or too short, unused gears and tyre heat balance — each with the direction to try on the tuning sheet. Load a second lap as Lap B after changing a part or a setting to overlay the before and after curves. The curve shape and shift points are solid; absolute power is an estimate, roughly ±10%.
Time-Loss Summary — Live Dashboard & Lap Analyst
After each lap the Dashboard log names the three corners that cost the most time against your reference lap, for example Time lost: T4 +0.21s, T9 +0.12s, T2 +0.08s. The Lap Analyst Corners tab shows the same line.
Live Delta vs Top Lap — Live Dashboard
Shows your live gap to the fastest public leaderboard lap for your car and track. The Dashboard fetches that one lap once per car and track per run, a single read-only request, and stays silent if you’re offline or nobody has set a lap yet. A TOP-LAP GHOST checkbox turns the request off. Details on the
Privacy page.