MotoQuant 2.0 is open source, including where it is wrong
MotoQuant 2.0 is out, and the whole thing is now free and open source under the Apache License 2.0: the physics engine, the catalog of 534 bikes, the website and the test suite. There are no accounts and no paid plans. Before you trust a number from it, you should know where it is wrong, so most of this post is about that.
Where it is good
We check every catalog bike against 250 published quarter-mile tests from Cycle World, Sport Rider, MCN, MotoStatz and others, which gives 263 bike-to-test matches. Weighted by how trustworthy each source is, the simulated time is off by 0.25 s on average, and it is not systematically quick or slow (the average bias is +0.02 s).
Litre and 600 cc sport bikes do best, because most of their benchmarks come from instrumented magazine tests. The 600–1000 cc fours and triples are off by 0.15 s on average over 76 matches, and the ten closest matches against measured tests are, on average, 0.006 s from the published time.
Where it is wrong
Small bikes, singles and two-strokes are the weak spot. Entry 200–300 cc bikes come out about 0.27 s slow on average, 300–500 cc singles about 0.27 s quick, and two-strokes about 0.26 s slow. Part of that is the benchmarks: few instrumented timeslips exist for these bikes, so their numbers lean on estimates with a declared uncertainty of ±0.7 s. Part of it is the model.
The clearest model problem is gearing. Many small bikes fall back to a primary gear ratio meant for a litre bike, which gears them too tall. In November we sourced the real gearing for 53 bikes and applied it. The weighted error got worse, from 0.2495 s to 0.2525 s, because the current tuning had been compensating for the wrong gearing. So we did not ship it. The sourced data and the full write-up are in the repository, and fixing it properly means re-tuning the small-bike launch at the same time.
Even the reference bikes are not perfect matches. The Suzuki GSX-R1000 K5 simulates at 10.04 s against 9.97 s in Cycle World, the Yamaha YZF-R1 at 10.11 s against 10.30 s in Sport Rider, and the Hayabusa at 10.11 s against 10.40 s in Cycle World. Those three are pinned in the test suite so that no change can move them by accident; they are a fixed point for the code, not a claim that the model is exact.
Every result on the site states the conditions it was computed for: the place, its altitude, the air and the track surface. If you compare a simulated time with a timeslip, compare like with like.
What changed in 2.0
MotoQuant was once planned as a paid product. No payment was ever taken, and that plan is gone: there is no pricing page, no sign-in and no licence key. Runs you save stay in your own browser, and a timeslip link lets you share one. The link re-runs the physics when it opens, so it always shows the engine’s current answer for that setup and those conditions.
Underneath, the physics now has a Rust core that gives the same answer as the Python reference to the last digit and runs about 40 times faster. The accuracy pass in this release times each run from the 1-ft rollout beam, the way a drag strip does. It also treats the rider and bike as one centre of mass when the front wheel lifts.
How you can make it better
The most useful thing you can send is a real run. If you have a Dragy, a VBOX or a timeslip from a drag strip, especially for a bike under 400 cc, send it with the "Submit a timeslip" form on GitHub. A maintainer checks each one before it joins the benchmark set, and every accepted run tightens the numbers for everyone who rides that kind of bike.
If your bike is missing, suggest it from the bike list. If you have a dyno sheet or an ECU log, there is a form for that too. And if you write code, the repository has issues labelled for first-time contributors, a short guide to the rules, and a test suite that tells you within minutes whether a change broke the physics.