Skip to content

Bulk telemetry processing - #100

Open
kuleshov-aleksei wants to merge 54 commits into
adn8naiagent:devfrom
kuleshov-aleksei:main
Open

Bulk telemetry processing#100
kuleshov-aleksei wants to merge 54 commits into
adn8naiagent:devfrom
kuleshov-aleksei:main

Conversation

@kuleshov-aleksei

Copy link
Copy Markdown

Hello! I've noticed that driver telemetry processing makes lap amount of calls to lap_row.get_telemetry(). This PR introduces bulk driver telemtry processing. It filters out multiple laps and processes data a bit faster

Here are some benchmark calls:

command time precompute.py 2026 --round 1 --session R. Session data was cleared between each calls

main (F1ReplayTiming/main):

python precompute.py 2026 --round 1 --session R  178.64s user 1.13s system 97% cpu 3:05.03 total
python precompute.py 2026 --round 1 --session R  150.14s user 0.54s system 100% cpu 2:29.79 total
python precompute.py 2026 --round 1 --session R  141.64s user 0.68s system 100% cpu 2:21.74 total

bulk processing (this PR):

python precompute.py 2026 --round 1 --session R  79.46s user 0.74s system 101% cpu 1:18.76 total
python precompute.py 2026 --round 1 --session R  74.93s user 0.70s system 101% cpu 1:14.59 total
python precompute.py 2026 --round 1 --session R  75.04s user 0.63s system 101% cpu 1:14.22 total
python precompute.py 2026 --round 1 --session R  79.69s user 0.73s system 100% cpu 1:19.93 total

And btw logs were a bit misleading:

2026-07-31 10:33:10,053 INFO services.storage: Saved sessions/2026/1/R/telemetry/RUS.json (2652129 bytes)
2026-07-31 10:33:16,981 INFO services.storage: Saved sessions/2026/1/R/telemetry/ANT.json (2696570 bytes)
2026-07-31 10:33:23,882 INFO services.storage: Saved sessions/2026/1/R/telemetry/LEC.json (2706557 bytes)
2026-07-31 10:33:30,805 INFO services.storage: Saved sessions/2026/1/R/telemetry/HAM.json (2715004 bytes)
2026-07-31 10:33:37,737 INFO services.storage: Saved sessions/2026/1/R/telemetry/NOR.json (2726634 bytes)
2026-07-31 10:33:44,805 INFO services.storage: Saved sessions/2026/1/R/telemetry/VER.json (2702912 bytes)
2026-07-31 10:33:51,627 INFO services.storage: Saved sessions/2026/1/R/telemetry/BEA.json (2697347 bytes)
2026-07-31 10:33:58,469 INFO services.storage: Saved sessions/2026/1/R/telemetry/LIN.json (2705140 bytes)
2026-07-31 10:34:05,317 INFO services.storage: Saved sessions/2026/1/R/telemetry/BOR.json (2714950 bytes)
2026-07-31 10:34:12,353 INFO services.storage: Saved sessions/2026/1/R/telemetry/GAS.json (2687241 bytes)
2026-07-31 10:34:19,227 INFO services.storage: Saved sessions/2026/1/R/telemetry/OCO.json (2716266 bytes)
2026-07-31 10:34:26,075 INFO services.storage: Saved sessions/2026/1/R/telemetry/ALB.json (2733133 bytes)
2026-07-31 10:34:32,903 INFO services.storage: Saved sessions/2026/1/R/telemetry/LAW.json (2730800 bytes)
2026-07-31 10:34:39,788 INFO services.storage: Saved sessions/2026/1/R/telemetry/COL.json (2706071 bytes)
2026-07-31 10:34:46,552 INFO services.storage: Saved sessions/2026/1/R/telemetry/SAI.json (2715322 bytes)
2026-07-31 10:34:53,227 INFO services.storage: Saved sessions/2026/1/R/telemetry/PER.json (2713047 bytes)
2026-07-31 10:34:58,539 INFO services.storage: Saved sessions/2026/1/R/telemetry/STR.json (2130212 bytes)
2026-07-31 10:35:01,379 INFO services.storage: Saved sessions/2026/1/R/telemetry/ALO.json (1071501 bytes)
2026-07-31 10:35:03,446 INFO services.storage: Saved sessions/2026/1/R/telemetry/BOT.json (775663 bytes)
2026-07-31 10:35:04,904 INFO services.storage: Saved sessions/2026/1/R/telemetry/HAD.json (504188 bytes)
2026-07-31 10:35:04,956 INFO services.process: [2026 R1 R] Uploaded telemetry for 22 drivers

However, telemetry was processed only for 20 drivers - there are no PIA/HUL json. I've added log messages with info about missing drivers

Disclaimer: This PR was ai-assisted. Feel free to close it if it does not reach your standards. This project is awesome and I wanted to make it a bit better (and make life of CPU on my orange pi easier)

adn8naiagent and others added 30 commits March 9, 2026 15:51
Merge dev to staging: clipboard paste sync
Add CI workflow for PR checks (typecheck, npm audit, OSV scan)
Feat: add clipboard paste support for leaderboard sync by Clav3rbot
Add a floating PiP window (via Document Picture-in-Picture API) that allows users to detach the track map and leaderboard into a resizable overlay window visible across browser tabs. A PiP button appears in the playback controls (desktop only). The PiP window includes the track map with status flags, the leaderboard, and full playback controls so the replay can be controlled without switching tabs.
feat: add Picture-in-Picture (PiP) window for track map and leaderboard
…e/pip-window-pr

Revert "feat: add Picture-in-Picture (PiP) window for track map and leaderboard"
Docker, Pip, Pit Prediction and Leaderboard Improvements
Qualifying sectors and fix for Pit prediction indicators
Docker, PiP, Pit prediction gap ahead and behind, qualifying sector indicators and overlays
1.2.2: Memory management, live timing fixes, UI improvements
1.2.2: Memory management, live timing fixes, UI improvements
Improve session picker mobile and desktop layout
Improve session picker mobile and desktop layout
1.2.3: Track detail, telemetry expansion, and race finish improvements
1.2.3: Track detail, telemetry expansion, and race finish improvements
1.3.0: Lap analysis panel, last lap time column, and mobile improvements
1.3.0: Lap analysis panel, last lap time column, and mobile improvements
1.3.1: Live banner width fix and medium screen layout improvements
1.3.1: Live banner width fix and medium screen layout improvements
Update README with lap analysis and last lap time features
adn8naiagent and others added 24 commits March 27, 2026 18:16
Enhance README with lap analysis and last lap time features
1.3.2 Practice session improvements, all-panel view, and layout persistence
v1.3.2  Practice session improvements, all-panel view, and layout persistence
fix: showing current lap data in lap analysis panel  (before lap is completed) - now only displays completed laps
fix: showing current lap data in lap analysis panel  (before lap is completed) - now only displays completed laps
Fix timing drift in replay playback loop
Fix timing drift in replay playback loop
Unified single-container architecture
v2.0.0 Unified single-container architecture
Fix npm audit vulnerabilities in brace-expansion and picomatch
Fix npm audit vulnerabilities in brace-expansion and picomatch
Extend broadcast delay slider max from 60s to 5 minutes
Extend broadcast delay slider max to 5 minutes
Add AUTO_PRECOMPUTE env var to control background session fetching
Add AUTO_PRECOMPUTE env var for session fetching control
Implement qualifying knockout greying and lap-completion bubbles
v2.0.2 Qualifying lap-completion timing and qualifying sector timing fixes
2.1 Track elevation, downloaded session markers and leaderboard UI fixes
2.1 Track elevation, downloaded session markers and leaderboard UI fixes
Add reprocess-from-picker with progress modal
2.1.1 Add reprocess-from-picker feature with progress modal
@adn8naiagent

Copy link
Copy Markdown
Owner

I’m glad you’re enjoying the project and appreciate the effort to improve processing. I’m a bit hesitant to change the core processing at this stage, as it took a while to get it working and to sort through issues such as drift and missing data points. I’ll keep this open, and if I can find time to test properly, I will pull it in. Thanks again!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants