OpenTrailPaper
Open-source bike computer firmware for the LilyGO T5S3 4.7" E-Paper PRO, with offline maps, GPX routes, FIT recording and Bluetooth sensors.
3D 400 m race simulator for athletes and coaches: race real Olympic and World Championship splits, upload your own runs, race your ghost, and get a report on what to train.
Sports & fitnessGitHub @ThomasMavroOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A 3D 400 m race simulator for athletes and coaches. You build an athlete profile, race it against real Olympic and World Championship performances or your own recorded runs, and get a report on where the race was won or lost and which improvements would gain the most time.
Open the live tool · User guide · How accurate is it?
Each runner is a force-velocity sprinter (in the Keller and Ward-Smith tradition) with:
Fatigue settings are calibrated so the suggested plans match the average split shape of championship finalists. Real athletes' top speed and anaerobic capacity are fitted to their published splits.
Accuracy. Fitted profiles reproduce all 222 real performances within 0.08 s at every published split. On unseen races, a profile fitted to a semi-final predicted the final within 0.29 s on average when the semi was a full effort, against 0.33 s for an "average fade" rule. Details and limitations are in docs/VALIDATION.md.
Nothing to install: use the live version or open docs/index.html in a browser. three.js loads from a CDN, and your history and recorded runs are kept in your browser.
To rebuild and test, use Node 18 or later:
npm test # model, data and file-reader tests
npm run build # writes docs/index.html (the page GitHub Pages serves)
npm run validate # semi-final → final validation, writes validation/results.json
npm run fit # refits every real performance into data/fits.js
src/model.js race model (physics, energy, race plan, fitting)
src/parsers.js readers for typed splits, CSV, GPX, TCX and FIT files
src/app/*.js the interface: lanes, editor, 3D view, report, history, guide
src/index.template.html page markup and styles
data/benchmarks.js real championship splits, lanes, reaction times, conditions
data/fits.js fitted profiles for every real performance
scripts/ build, fitting and validation
test/ node:test suites
docs/ the built page (index.html), user guide, validation report, screenshots
Race data belongs to its publishers and is used here for analysis.
Built by Thomas (@ThomasMavro) during the MSc in Sport Analytics & AI at Loughborough University London.