RaceShift
Predicts a Formula 1 driver's next lap time, and tests whether a network trained one layer at a time (no backpropagation through the network) can match standard models.

01Problem
Can Forward-Forward-style regression get close, with less training memory?
A research question, tested on real FastF1 timing rather than a toy dataset.
02What I built
A leakage-safe pipeline and an honest bake-off.
SOLO · MIT LICENSE
AA leakage-safe feature pipeline over FastF1 timing: tyre age and stint, weather, gaps, rolling pace, lagged laps, and priors from earlier events only.
BA layer-local FFR regressor in three sizes, compared against naive, ridge and gradient-boosted tree baselines on held-out races, an unseen circuit and the 2026 rule change. Paired-bootstrap tests and interval calibration.
CA React/TypeScript + FastAPI dashboard with forecast, backtest, driver comparison and experiment pages. The Forward-Forward-style regressor is a NumPy implementation, not PyTorch.
03Result
119k clean training laps (2018–2024). Test MAE 0.327–0.331 s for the FFR models vs 0.303 s for gradient-boosted trees — typically within about a third of a second on ~90 s laps. 82.2% of laps within 0.5 s (FFR-S). The hoped-for memory advantage did not appear (trees: 439 MB in 43 s; FFR-S: 593 MB in 8 min).
04Stack
NumPypandasFastAPIReact
05Gallery