Manual /Compare

Manual · Compare

The compare page sets two laps from the same event side by side and answers what changed. Lap A is shown in white, lap B in amber — that convention carries through every chart on the page.

Δ TIME row · continuous delta-time vs distance

Topmost row of the OverlayTraces panel

The headline chart on the compare page. Plots the cumulative time difference between lap B and lap A along the distance axis — showing not just how much faster one lap was, but where the time came from.

How to read it
  • X axis — distance along the lap, in meters from the start line.
  • Y axis — Δt (B − A) in seconds. Above zero = A is ahead at this point; below = B is ahead.
  • Line colorgreen wherever A is ahead, amber wherever B is ahead. The line itself flips color at the zero crossing.
  • "Δ at finish" badge in the header — the final cumulative delta when both laps cross the line.
  • Drag to zoom · double-click to reset — same as every uPlot row. The throttle / brake / steer rows below stay synced.
Reading the shape
Steady upward slope A is pulling away from B continuously.
Step changes Big gain/loss at a specific corner — drop the cursor on the step and look at the input traces below for the cause.
Line wobbles near zero across the whole lap Pace was very similar; differences are pattern-level.
Switches color mid-lap One lap is stronger in one part of the track, the other elsewhere.
Doesn't end at the badge value Lap-time (from lap.timeMs) and resampled-trajectory delta can differ by a few ms — the badge is the resampled end-Δ; the header card is the truth-net from lap times.
See alsoSector times and min speed per sector below give the discrete equivalent. The track map below shows the same delta in space.

Track map · A · B overlay

Below OverlayTraces

Both laps' routes rendered on the same top-down view, in their legend colors (A white, B amber). The color-mode chips you see on /replay are hidden here because each trace has a fixed identity.

How to read it
  • A trace = white (#fafafa), B trace = amber (#fbbf24).
  • Start marker at lap-distance = 0. No live cursor (nothing to scrub).
  • Click-to-seek is disabled on this surface (it's a comparison view, not a replay).
Reading the shape
Traces fully overlap Same line; differences are in timing / inputs, not path.
Split at a corner entry Different braking points or turn-in points.
Split at a corner exit Different throttle-application or apex-clipping line.
One trace consistently wider through bends That lap is running a wider racing line — could be more committed exits, or running off-line for traffic.
See also The single-trace version on /replay has color-mode chips and a click-to-seek cursor that this comparison view drops.

A vs B damper velocity histograms

Between the track map and the sector tables

Two damper velocity histograms side by side — one per lap, each showing a 2×2 grid of corners (FL · FR · RL · RR). Same axes and zone-color convention as the /replay version.

How to read it

The two panels are independent — they auto-scale their Y axis separately. To compare peak heights between A and B, look at the 12 % reference line rather than at the bars' apparent height. (Both panels draw that line at the same data position; if A's peak sits at the reference and B's peak is well above, the cones really are different shapes regardless of relative bar height.)

Otherwise the reading is the same as the single-lap version on /replay.

Reading the shape
A peak much taller than B peak A's dampers tuned tighter (or driving was smoother on A's lap).
Asymmetry flipped between A and B The bump/rebound balance shifted between tunes — pair with the setup diff to see which damper sliders changed.
B has much more fast-zone time than A B is hitting kerbs/bumps harder, or its dampers are softer in the fast zone.
See alsoSingle-lap damper histogram for the full reading guide; setup diff below to see which damper sliders actually differ.

A vs B damper position × velocity

Below the damper histograms

The two position×velocity scatters side by side. Reading is identical to the /replay version; here the question is whether the bump/rebound coupling — the "C" lean — changed between the two tunes.

Reading the shape
B's cloud leans into a "C", A's is symmetric A damper change introduced bump/rebound imbalance — pair with the setup diff.
B's cloud shifted right vs A B rides lower through the lap — check the ride-height histograms below.

A vs B ride-height histograms

Below the damper scatters

Two ride-height histograms side by side — where each lap's chassis sat over the travel range. The direct read of how a spring / ride-height / aero change moved the platform.

Reading the shape
B's bars shifted right vs A B rides lower — softer springs, lower ride height, or more downforce loading the platform.
B's bottoming band grew vs A B runs out of travel more often — pair with the setup diff.

A vs B dyno curves

Below the ride-height histograms

Two dyno curves side by side — engine torque, power, and boost (when applicable) vs RPM. Compare's only power-curve view; fills the gap when the setup diff contains build-side changes (engine swap, aspiration, displacement) that move the curve.

Reading the shape
Curves overlap closely Same engine package; differences are tune-side or driving.
B's peak power higher / further right Build change moved the engine — pair with the setup diff.
One curve missing the boost line Aspiration changed between builds (N/A ↔ turbo / SC).

A vs B slip-angle balance

Below the dyno curves

Two slip-angle balance histograms side by side. The cleanest read of did chassis balance shift between these two tunes — pair with ARB, spring, and alignment rows on the setup diff.

Reading the shape
A peak at 0, B shifted right (positive) B leans understeery — fronts working harder than on A.
A peak at 0, B shifted left (negative) B leans oversteery — rears working harder than on A.
B's spread is wider than A's B's balance varies more through corners — less consistent.

A vs B tire temperature distribution

Below the balance histograms

Per-corner (FL · FR · RL · RR) temperature distributions, A vs B. Diagnoses alignment and tire-pressure changes — they move heat patterns. Optimal grip band sits around 85-100 °C; well below = tire under-loaded, well above = overworked or under-inflated.

How to read it
  • X axis — tire temperature, fixed 40-130 °C scale (out-of-range temps clamp into the end bins).
  • Y axis — % of lap frames at that temp (auto-scaled per corner).
Reading the shape
B's bars shifted right vs A on one corner That tire is running hotter — typically more camber, lower pressure, or more cornering load on B.
FL ≠ FR (or RL ≠ RR) shape within a build Left/right asymmetry — track-direction bias, camber/toe imbalance, or alignment difference between sides.
Fronts much hotter than rears (or vice versa) Forward/rearward load bias — pair with balance histogram above and ARB / spring rows on the setup diff.

Sector times table

Below the histograms, paired with min speed per sector

Splits each lap into three equal-distance sectors and reports the clock time spent in each. A vs B side-by-side with a delta column.

How to read it
  • Sector boundaries — at 1/3 and 2/3 of this lap's `lap.distance`. Equal splits, not user-marked sector points.
  • A / B columns — each lap's sector time, formatted as M:SS.mmm.
  • Δ column — B − A in seconds. Positive = A was faster, negative = B was faster.
  • Color rulegreen when A did better, amber when B did better, neutral within ±50 ms.
Reading the shape
Sum of the three Δs equals the header net delta Sanity check — should always be true within rounding.
One sector contains most of the delta That stretch is where to focus the next lap or tune change.
Mixed signs (A faster S1, B faster S2) Different strengths — different lines or tune-side trade- offs.
See alsoCaveat: equal-distance splits are an approximation. For tracks with explicit corner-based sector points this works well; for routes where a single sector contains very different speeds, the per-sector reading is coarser than a real corner-by-corner breakdown.

Min speed per sector · apex proxy

Paired with sector times

Lowest speedKmh observed in each equal-distance sector, A vs B with a delta. A rough apex-speed reading — each sector tends to contain the slowest point of one or two corners.

How to read it
  • A / B columns — lowest speed observed in that sector, in your preferred unit (km/h or mph).
  • Δ column — B − A in the same unit. Higher apex speed is better, so the color rule is inverted vs the sector-times table: green when A carried more speed (Δ < 0), amber when B carried more.
  • "A did better" resolves to green across both tables — only the math sign of "better" flips.
Reading the shape
A carries more speed AND has a faster sector time Unambiguous win — higher commit, no time penalty.
A carries more speed BUT has a slower sector time Probably running wider line — gained mid-corner speed but lost time elsewhere in the sector.
Big apex-speed gap with small sector-time gap One lap was much more committed but didn't convert it into time — usually a tune or exit-traction issue.
See also "Apex" here means "slowest moment in a sector," not a curvature-detected corner apex. A real corner-enumeration view is on the wishlist; this is the cheap version that falls out of the sector structure already in the code.

Setup diff

Below the sector / apex tables

The flat list of every build + tune field that differs between the two laps' sessions. The headline glass-box-measurement view — "you changed X in the tune; here's what changed in the data."

How to read it
  • Header count — "N changes" tells you the size of the setup delta at a glance.
  • Per row — source (Build / Tune) · section · field · A value · B value.
  • Source labelsBuild = upgrade decisions that shape the car physically (tires, drivetrain, weight, power); Tune = slider settings layered on top (springs, dampers, ARBs, alignment, gearing).
  • Values run through the same formatter the form / display surfaces use, so the same unit prefs apply (psi vs bar, mm vs in, etc.).
  • No row appears when both sides are null/empty or numerically identical.
Reading the shape
Empty (panel hidden) Same build + same tune. Lap-time difference is from driving, conditions, or noise.
One or two rows Targeted change — pair with trace and histogram deltas to see what it did.
Many rows across both Build and Tune Comparing across builds — measurement deltas are still valid but you can't attribute them to any single change.
See alsoCaveat: the snapshot is captured at session start — patching a tune value mid-session is not reflected here. Per-session build/tune attachments stay editable; the diff reads whatever the snapshot said when the session began.