MotoQuant Pro:
A First-Principles Drag-Racing Physics Engine for Motorcycles
Hritwik Mudhai · Arya Desai
MotoQuant Pro · Pune, India · dhisetu@gmail.com
MotoQuant Pro is a first-principles physics engine for predicting motorcycle quarter-mile drag-racing elapsed times. The model couples 15 independent sub-models — engine torque (Willans friction), Pacejka tire grip with thermal evolution, gear-shift and clutch slip dynamics, weight transfer and rider centre-of-gravity shift, aerodynamic drag with per-bike Cd × A, environmental conditions (density altitude, surface μ, ambient temp), and parasitic loss budget — through a fixed-step fourth-order Runge–Kutta integrator running at one-millisecond resolution. We validate against 74 source-quality-weighted published quarter-mile benchmarks across an 8-cluster taxonomy. Overall weighted bias is +0.006 s; weighted mean absolute error is 0.306 s. Within instrumented-magazine-data clusters (litre-sport ≥195 hp), weighted bias is −0.011 s and |Δ| is 0.150 s. Three reference baselines — GSX-R 1000 K5, YZF-R1 4C8, and Suzuki Hayabusa Gen1 — are preserved exactly to the fourth decimal place across every code change since April 30, 2026.
Introduction
Motorcycle drag racing in India has grown rapidly across Aamby Valley (Lonavala, Maharashtra), MMRT Chennai, the Buddh International Circuit, Kari Motor Speedway (Coimbatore), and the Hyderabad strips. The community has outgrown the available tooling: spreadsheet calculators that treat power-to-weight as the sole input, regression-based estimators trained on limited international data, and per-bike rules of thumb that fail to generalise across mass, aero, gearing, traction, and venue conditions.
MotoQuant Pro is built to fill that gap. We aim for an open, audit-able simulator whose every coefficient traces back to a physical measurement — not a fitted curve. This whitepaper documents the architecture, validation methodology, and the honest residual error budget against which we benchmark every release.
Architecture
The simulator is structured as a fixed-step fourth-order Runge–Kutta integrator over the bike state vector ⟨x, v, ω_e, T_tire, T_clutch, gear⟩. Each timestep evaluates 15 coupled sub-models that share state through the bike configuration. The integration step is fixed at dt = 1 ms; an adaptive step-size variant is available for clutch-slip-dominated regions where the engine RPM derivative changes faster than the tyre temperature derivative.
- ›engine — 3D torque curve (Willans friction model), peak-power and peak-torque RPM, redline, idle, two-stroke expansion-chamber resonance for piston-port engines
- ›forced_induction — turbo, supercharger, nitrous; boost ramp, mechanical loss, injection windows
- ›drivetrain — gear ratios, primary/final drive, clutch slip ratio, shift time
- ›clutch — basket inertia, slipper-clutch ramp, engagement RPM and curve, lockup transition
- ›chain — drive efficiency, sprocket geometry, chain pitch (428 / 520 / 525 / 530)
- ›tire — Pacejka magic formula with thermal evolution, slip ratio, slip angle, peak μ, optimum temperature
- ›aero — drag coefficient × frontal area per-bike (Cd × A range 0.293–0.68 m²)
- ›weight_transfer — longitudinal load shift, front/rear normal force, traction limit
- ›rider_dynamics — centre-of-gravity shift on launch and during run, tucked / sit-up Cd × A transition
- ›staging — staged-position rollout (~1 ft), reaction-time floor, two-step launch RPM
- ›environmental — air density ρ, density altitude, ambient and track temp, wind, surface grip
- ›braking — μ-limited deceleration, brake bias, fade (used for shutdown after the 402 m line)
- ›wheelie — front-wheel lift detection, wheelie-bar logic for drag-prep builds
- ›parasitic — alternator, oil pump, water pump, valvetrain power draw
- ›rolling_resistance — Crr per surface and pressure
Category-Flavoured Physics
A single set of physics constants would either over-tune for litre-class superbikes (which dominate published benchmarks) or under-tune for small-cc commuters where engine inertia, basket inertia, and chassis fluid mass are systematically smaller. As of April 30, 2026, every catalog bike is auto-tagged into one of an 8-cluster taxonomy — litre_sport_195p, litre_sport_600_1000, mid_twin_500_700, mid_twin_300_500, entry_200_300, entry_150_200, two_stroke, cruiser_1300p — with per-cluster knobs for over-clutching factor, engine-deceleration limit, parasitic loss multiplier, and launch RPM floor.
The dispatch is back-compat-safe: bikes constructed before the taxonomy existed reproduce their pre-April-30 results bit-exactly through an "unknown" profile that preserves the legacy code path. Our three reference baselines (K5, R1, Hayabusa) have not drifted by more than 0.0000 s during the entire taxonomy roll-out.
Validation Methodology
We benchmark against 74 published quarter-mile elapsed times where the bike, year range, and venue conditions are unambiguous. Sources are classified by quality and weighted accordingly:
- ›instrumented (Cycle World, Sport Rider, Motorcyclist with timeslip photo) — weight 1.0
- ›magazine (MCN, RideApart, BikeWale published article) — weight 0.7
- ›aggregator (FastestLaps, MotoStatz) — weight 0.5
- ›forum or unverified timeslip — weight 0.3
- ›unknown / single-source — weight 0.4
- ›derived (0–100 km/h × 1.6 multiplier with declared ±0.7 s) — weight 0.1
Per-cluster bias and weighted MAE are reported with N (sample size) so the reader can judge which clusters are statistically meaningful. Clusters dominated by derived benchmarks (the Indian small-cc and 2T entries) inherit the underlying ±0.7 s data uncertainty regardless of model fidelity.
Results
The most accurate cluster is litre-sport ≥195 hp at −0.011 s weighted bias and 0.150 s weighted MAE — within the ±0.20 s tolerance the modern instrumented Cycle World and Sport Rider tests themselves report as 1-σ test-to-test variation. Overall weighted bias of +0.006 s indicates the model is essentially centred at zero. The remaining residual is bounded by benchmark-data quality, not by physics model fidelity: the small-cc and two-stroke clusters draw heavily from derived benchmarks with declared ±0.7 s uncertainty, fundamentally limiting validation precision regardless of how well the physics is modelled.
| Cluster | N | Weighted bias | Weighted |Δ| |
|---|---|---|---|
| Litre Sport ≥195 hp | 20 | −0.011 s | 0.150 s |
| Litre Sport 600–1000 | 24 | −0.130 s | 0.198 s |
| Mid-Twin 300–500 | 11 | −0.057 s | 0.668 s |
| Entry 200–300 | 4 | +0.410 s | 0.440 s |
| Entry 150–200 | 4 | +0.285 s | 0.851 s |
| Two-stroke | 5 | +0.306 s | 0.731 s |
| Cruiser 1300+ | 2 | +0.406 s | 0.406 s |
| Other | 4 | +0.185 s | 0.283 s |
| All clusters · weighted | 74 | +0.006 s | 0.306 s |
Reference Baselines
Three bikes are designated reference baselines and gated in the test suite to reproduce exactly to the fourth decimal place across every commit:
| Bike | Year | Power | Reference ET | Δ (current) |
|---|---|---|---|---|
| Suzuki GSX-R 1000 K5 | 2005 | 178 hp | 10.0334 s | ±0.0000 s |
| Yamaha YZF-R1 4C8 | 2007 | 180 hp | 10.2859 s | ±0.0000 s |
| Suzuki Hayabusa Gen1 | 1999 | 197 hp | 10.4712 s | ±0.0000 s |
These baselines have not drifted since April 30, 2026 — across catalog expansions, physics tuning passes, importer changes, and the introduction of the 8-cluster taxonomy. A regression in any of them fails CI immediately.
Reproducibility
MotoQuant Pro is open to external audit. The simulator code, all sub-model coefficients, the 334-bike catalog, the 555-part library, and every venue's seasonal weather profile are inspectable. Every parts ROI calculation is deterministic given the bike configuration and venue conditions. We publish:
- ›reports/ directory with full validation sweeps (JSON + Markdown summaries) — one report per release
- ›tests/ — 976 regression tests covering catalog integrity, physics, API, and silent-failure detection across all 334 bikes
- ›/docs/validation — the complete benchmark table with per-bike sources
- ›CLAUDE.md — the project diary, with every design decision and trade-off recorded chronologically
External calibration is supported through the Phase 3 import pipeline: Dragy GPS logs (CSV / JSON / VBO), dyno sheets (DynoJet, generic metric, MoTeC) with full SAE J1349 atmospheric correction, and ECU logs (Woolich Racing, Power Commander PC-Link, MoTeC i2). The auto-calibrator fits Cd and μ-peak jointly via differential evolution followed by Nelder–Mead refinement.
Known Limitations
We are honest about where the model is bounded. The two-stroke cluster carries +0.306 s weighted bias because piston-port 2T launch dynamics include an off-pipe / on-pipe transition whose integral-of-power-over-time is not perfectly captured by the current expansion-chamber Gaussian curve. The Indian small-cc cluster (entry-150-200, entry-200-300) is bounded by the declared ±0.7 s uncertainty of its derived benchmarks; reaching the published ≤0.05 s stretch goal requires per-bike Dragy / VBox-measured stock data, not further physics tuning.
The cruiser 1300+ cluster has only N=2 (VMAX 1700, Rocket 3) — too small to draw statistically meaningful conclusions. The Apache RTR 200 4V is a documented outlier (sim 19.3 s vs derived 15.9 s) where the derived benchmark is suspiciously fast for a 20.5 hp / 153 kg bike; we have flagged it for audit but have not adjusted the model on the strength of one data point.
Roadmap
Three open work items, in priority order: (1) replace derived benchmark entries with measured Dragy / VBox runs from the Indian community; (2) port the unused profile knobs (Cd ceiling, Pacejka C, μ-peak override, chain efficiency override, tuck transition time, engine inertia multiplier) into their respective sub-models so future tuning passes have richer per-cluster expression; (3) audit the bidirectional spread on mid-twin 300–500 (CB350RS / Ninja 400 systematically slow vs Apache RR 310 / Benelli 302R systematically fast) to determine whether the residual is gear-cassette catalog drift or physics model gap.
A Phase 5 calibrator-v2 will accept user-uploaded Dragy logs and contribute their measured ETs back to the benchmark corpus on opt-in. This closes the data-quality loop the small-cc clusters need without requiring any change to the physics model itself.
Citation
If you reference this whitepaper or use MotoQuant Pro outputs in your own analysis, please cite as:
Mudhai, H. & Desai, A. (2026). MotoQuant Pro: A first-principles drag-racing physics engine for motorcycles. Pune, India. https://motoquant.in/whitepaper