NEWS

Which recording is fit for corner analysis?

Kurvenfokus imports rides from nine sources — from a calimoto GPX to a RaceBox at 25 Hz. We measured what the files actually contain: how often they store the position, where the gaps are, whether timestamps and lean angle come along. The result is surprising: for corner counting, the best sensors do not make the best source.

Finding 1

All apps sample at 1 Hz

calimoto, Motobit, Komoot and the RideLink GPX export store exactly one point per second. Only the RaceBox measures at 25 Hz; Kurviger routes sit at 0.77 Hz.

Finding 2

Point spacing is speed

Motobit rides looking “denser” than calimoto (12.3 vs. 15.9 m) only means they were ridden more slowly — 41 vs. 52 km/h. Technically the files are the same.

Finding 3

Compare corner counts only within one source

Denser recording means more detected corners on the same road. And without naming the device, any kilometer or corner count is accurate to about 5% only.

Kurvenfokus evaluates GPS tracks. What matters for corner detection is how often and how completely an app stores the position and whether it supplies timestamps — not how many sensors it has. All smartphone apps in our data record at 1 Hz. Differences in corner counts come from speed, device and export format, not from the app.

1 · The sources at a glance

What each source delivers and how it gets into Kurvenfokus. Sampling rates for calimoto, Motobit, Komoot, Kurviger, RideLink GPX and RaceBox measured on September 15, 2026 across 212 rides; Relive from two files of April 2026, Curve Tracker from the cross-check of September 22, 2026, MotionRecord from the product documentation. Fields from the export formats.

SourcePath into KurvenfokusSampling rateFields per pointLean angleiOSAndroid
calimoto GPX export · Plus data export (JSON) 1.00 Hz GPX: position, altitude, time · JSON: plus speed, course, gyro angle GPX: computed · JSON: measured (phone gyro) ✓ ✓
Motobit GPX export 1.00 Hz Position, time (millisecond bursts on GPS reacquisition) computed ✓ ✓
Komoot GPX export 1.00 Hz¹ Position, altitude, time computed ✓ ✓
Kurviger GPX (planned route) 0.77 Hz Position, altitude, time — our Kurviger files are planned routes, not recordings computed ✓ ✓
Relive GPX export 0.3–0.7 Hz Position, time, altitude — 77% empty in our two files, gaps up to 119 s computed ✓ ✓
RideLink WingMan JSON export of the WingMan app · GPX export ~1 Hz Position, speed, course, altitude, acceleration, gyro lean angle measured (gyro on the bike) ✓ ✓
Curve Tracker storage.json (app database) · GPX ~1 Hz (JSON) · GPX without time JSON: position, time, altitude, speed, sensor angles in corners · GPX: position only sensor angle without recognizable gyro fusion — not taken from storage.json ✓ ✓
RaceBox Mini S VBO 25 Hz Position, speed, course, altitude, 3-axis acceleration, gyro, lean angle, satellites measured (gyro) ✓ —
MotionRecord JSON export 1 Hz GPS · up to 100 Hz IMU Position, speed, course, altitude, GPS accuracy, sensor fusion measured (sensor fusion) ✓ ✓

¹ Komoot: the September file samples at 1.00 Hz; an older file from April sat at 0.2 Hz with gaps up to 63 s — the export apparently depends on the setting. “Computed” means: Kurvenfokus derives the lean angle from speed and corner radius, as described on the technology page. RaceBox VBO is currently read by the iOS app only. Relive and Kurviger go through the generic GPX import.

2 · GPS geometry: 212 rides, 14 sources

Evaluation of September 15, 2026 across our entire GPX and VBO data. Point density in Python, corner counting with the production code of Kurvenfokus iOS.

SourceRideskmPoint spacing (median)p90Gaps / 100 kmCorners / kmType
RaceBox 9 559 0.8 m 1.2 m 0.0 —² recording
Kurvenheld 1 269 7.2 m 23.6 m 8.2 10.65 recording
Relive 2 243 11.4 m 16.0 m 23.4 9.82 recording
Motobit 18 4,860 12.3 m 20.1 m 2.2 4.65 recording
BMW Connected 1 303 13.1 m 23.4 m 6.6 7.22 recording
Kurvenfokus export 1 188 13.6 m 18.0 m 4.8 7.98 recording
Curve Tracker (GPX) 18 2,566 14.0 m 21.7 m 5.8 —³ recording
Curve Tracker (MotoLeaning export) 8 1,555 14.3 m 27.2 m 6.6 4.34 recording
RideLink WingMan (JSON) 111 7,292 14.4 m 23.0 m 5.4 —³ recording
calimoto 28 10,095 15.9 m 22.2 m 4.3 5.14 recording
Komoot 1 128 16.1 m 22.1 m 2.3 3.17 recording
RideLink WingMan (GPX) 2 225 17.2 m 27.9 m 1.0 2.76 recording
Kurviger 6 3,245 20.6 m 70.7 m 195.1 3.81 planned route
Kurvenfokus routing 6 1,169 35.0 m 118.0 m 312.7 2.15 planned route

The median point spacing measures riding speed (speed ÷ sampling rate), not quality — see the addendum in section 5. Gaps are real jumps over 100 m; 1–8 per 100 km in recordings, 195–313 in planned routes, because planners only place a point at direction changes. ² Via the GPX detour our pipeline counted 0 corners in this test — the cause was our source detection, not the file; the current version recognizes RaceBox GPX. The intended path is the VBO import anyway. ³ Not counted without timestamps (Curve Tracker GPX) or in the WingMan JSON. The two Curve Tracker rows are two export states of the same program from two folders; for the first group the pipeline delivered no corner count. Corners per km are comparable only within the same source.

3 · What this means for corner detection

Three rules that follow from the measurements — and that Kurvenfokus follows in the app and on this website.

  1. 1

    Compare corner counts only within the same source

    Kurvenfokus detects corners from the shape of the track. Denser recording means more detected corners on the same road. A planned calimoto route has 361 m point spacing, the ridden recording 14 m — which is why a different number shows up there. The example is worked through on the page 1,997 corners (German).

  2. 2

    Without naming the device, a number is accurate to about 5%

    The same ride, iPhone 11 and iPhone 12 at once: 85.72 vs. 90.24 km unfiltered. Where the source supplies a GPS accuracy, Kurvenfokus discards poor points — from 25 m for MotionRecord imports, from 50 m for the other JSON sources. In our measurement a 25 m threshold shrank the gap between the two devices to 0.07 km, discarding 0.2% of the points. GPX files carry no accuracy value; no filter applies there.

  3. 3

    GPX without timestamps: speed and lean angle are estimates

    If the file has no time, every evaluation has to assume the speed — and with it the lean angle computed from it. This affects the Curve Tracker GPX export and some converter outputs. Better: import the original format (storage.json, RideLink JSON, VBO).

4 · Curve Tracker in detail

The app stores more than its GPX export reveals. What arrives by which path — and why Kurvenfokus does not take over the sensor angles from the app database.

Path A · GPX export

Position only, no time

In the exports we checked (MotoLeaning / Geo Converter) there is only latitude and longitude. Timestamps and altitude are missing; lean angle and speed appear as text in waypoint names such as “33° 62km/h”. The import places these few corner maxima at the matching points; everything in between and the speed has to be estimated without timestamps — the corner count stays usable, the per-corner values do not.

Path B · app database

storage.json: time, altitude, speed per point

The app’s Documents folder (reachable via file sharing) holds the complete recording: ~1 Hz positions with timestamp, GPS altitude and speed, plus the corner list. Kurvenfokus iOS has read it directly since September 11, 2026; Android imports the converted JSON or the GPX export.

Sensor angle — cross-check of September 22, 2026: The same ride (67 min, 49.9 km) ran in parallel with RaceBox (25 Hz, gyroscope) and Curve Tracker (iPhone 11). The zero point of the Curve Tracker angle sat at 47.6° — on June 7 it was 47.7°, so it is the mounting position, not a one-off. After subtracting the zero point the signal stayed flat: 3.5 s above 5° versus 100 s for the RaceBox. Further evidence from our data: 48° with the motorcycle standing still, a right-hand maximum of exactly 0 on an Alpine tour. The cause is physical: gravity and centrifugal force add up in a corner to one vector along the motorcycle’s axis — without gyroscope fusion the lean angle stays invisible to a pure accelerometer. That is exactly how the signal behaves; whether the app fuses sensors, we do not know. From the app database Kurvenfokus therefore takes only the GPS track and computes the lean angle from speed and corner radius — just as with every other GPX source. On the GPX path the import places the few corner maxima from the waypoints; everything in between is computed. The findings apply to our recordings with an iPhone 11; a different mounting position may yield different zero points.

5 · Data basis: which data, when, how often

This page rests on four measurement series and one archive. Every number above can be traced to a measurement here.

Measurement seriesDateQuestionData set
Sensor depthApril 16, 2026Which fields does a source deliver per data point?One file per source (Relive two): calimoto 11,240 points · Motobit 9,509 · Komoot 7,099 · RideLink 18,447 · RaceBox 20,673 · Relive 17,982 + 4,419 · MotionRecord one session. Result on motionrecord.de.
GPS geometrySeptember 15, 2026Point spacing, gaps, corners per km212 rides, 14 sources — the table in section 2. RideLink WingMan (JSON) with 111 rides there; since September 26 the archive holds 423 rides (570 JSON files), calimoto 226 instead of 28. Sampling rates from the interval between consecutive points.
Cross-check Curve Tracker ↔ RaceBoxSeptember 22, 2026Sensor lean angle on the same ride1 ride, 67 min, 49.9 km, 4,213 points — iPhone 11 and RaceBox Mini S in parallel.
Device spreadSeptember 15, 2026How far apart are two phones on the same ride?1 ride on May 23, 2026 with iPhone 11, iPhone 12 and Samsung at once: unfiltered 85.72 vs. 90.24 km (+5.3%), with a 25 m filter +0.07 km.

Population: our ride archive (as of September 28, 2026)

The samples come from our own archive with 688 rides, 61,592 km, August 2019 to September 2026. The figures come from the catalog via SQL, not from estimates.

SourceRecordingsRidesPeriodkmGPS points
calimoto22622608/2019 – 09/202640,4702.23 M
RideLink WingMan570 (147 of them variants)42309/2023 – 06/202617,8081.18 M
MotionRecord51 (10 reconstructed)2606/2026 – 09/20261,40771 K
Curve Tracker201809/2025 – 09/20262,630146 K
RaceBox13309/2026195252 K

Motobit, Komoot, Relive and Kurviger exist only as individual GPX files (evaluation of September 15), not in the archive. RideLink: 147 of the 570 recordings are file variants of the same ride and count only once for rides, kilometers and GPS points. Kilometers per source via the assigned rides; six rides (770 km) were recorded by several devices at once, 2 of them by three; they count for each source, which adds 918 km of multiple counting — that is why the column adds up to 62,510 km instead of 61,592 km. Sampling rates come from the interval between consecutive points — not from the recording duration, which includes breaks. Method: our own recordings and rides from test riders with their consent; evaluation with AI assistance, cross-checks by hand. No lab measurement, no manufacturer commission.

Addendum September 15, 2026 — point spacing is speed: Measured across 212 rides, Motobit, Komoot, calimoto, RideLink GPX and the Kurvenfokus export sample at exactly 1.00 Hz, Kurviger at 0.77 Hz, RaceBox at 25 Hz. The mean point spacing of a recording is therefore speed ÷ sampling rate: Motobit rides looking “denser” at 12.3 m than calimoto at 15.9 m only means they were ridden more slowly (41 vs. 52 km/h). Three things reliably distinguish sources: the sampling rate, the gap rate and the fields supplied — altitude, GPS accuracy, measured lean angle.

Sensors in detail

This page rates the sources as corner sources. If you want to know which app delivers which sensors at which rate — acceleration, gyroscope, barometer, signal processing — the technical test report with star ratings and field lists is on motionrecord.de.

Sensor test report on motionrecord.de →

calimoto, Motobit, Komoot, Kurviger, Relive, RideLink, WingMan, Curve Tracker, MotoLeaning, RaceBox, BMW Connected and Kurvenheld are trademarks or products of their respective owners and are not affiliated with Kurvenfokus or MVXLabs. They are named solely to state format compatibility and to describe our own recordings. All information without guarantee, as of September 28, 2026.