# Lappy v0.1.0 — China circuits and timing refinement

The built-in Track catalog now contains Tianma, Zhejiang, Zhuhai, Shanghai International GP and Ningbo full-circuit routes. They are available offline, without recording a reconnaissance lap or installing files on SD. Course selection remains explicit and timing starts disarmed. Street keeps v0.0.14 behaviour; Drag retains its seven tests and existing controls.

## Track pack and qualification

The pack uses pinned OpenStreetMap geometry, reviewed start/finish anchors and published timing-map facts. Zhejiang, Shanghai GP and Ningbo have two intermediate gates; Tianma and Zhuhai provide whole-lap timing. Unknown sector positions are not replaced with invented equal divisions. Geometry uses WGS84 throughout and is never shifted to match a different map datum or stretched to match a published lap length.

**All five courses are source-reviewed and software replay-tested. None is field-tested by Lappy, and gate coordinates are approximate rather than surveyed timing-loop positions.** Archived event maps establish the documented configuration, not its continued use by every event. See the [pack documentation and attribution](../assets/tracks/china/README.md), editable recipes and [review maps](../assets/tracks/china/generated/index.html).

Two independently recorded public Tianma GPS exports check the imported shape and finite control line. All 10,338 positions lie inside the configured 20 m corridor. Maximum mapped-line discrepancies are 11.42 m and 18.50 m. All four labelled lap boundaries match finite forward gate crossings within 2.8 ms in those exports; distant line-extension crossings are rejected. That agreement is a cross-check against the export's own lap labels, not independent physical timing accuracy. Missing receiver iTOW, hAcc and sAcc are not fabricated to pass production quality checks.

## Catalog, results and compatibility

- Five read-only factory templates occupy ROM, separate from the eight custom revision slots. Only the selected route becomes engine working geometry.
- Editing a factory course creates a custom revision. Factory templates and their original PBs are retained. No reference or personal best is bundled; a valid completed attempt creates the first reference.
- Factory records use stable course ID plus exact geometry/policy identity in their SD filenames. Pack changes cannot silently attach an incompatible PB. Existing `course-N.lpt` custom files remain readable in place.
- Completed PB/history/reference data retains the existing CRC, temporary-file, backup and summary recovery. Reference traces are reloaded for the selected clean stored course instead of retaining every stored reference in RAM. Unsaved volatile records remain bounded by the catalog limits.
- A valid but incompatible primary cannot mask a compatible backup. Summary-only recovery retains the PB/history and correctly shows no live reference.
- GPS gate endpoints are cached at course load, removing repeated route walks and trigonometry on every fix. The 45 real-geometry replay results match the uncached implementation exactly. A desktop sanitizer benchmark observed roughly 3.9× median per-replay speedup; this is not an ESP32 performance measurement. The bounded Engine object grows from 616 to 744 bytes.

Track page geometry, fonts, colors, header and controls are preserved. Distances to the next gate at or above approximately 1 km use compact kilometre values in the existing value/unit positions, avoiding four-digit metre overlap. The native simulator has five new **China / … GPS lap** scenarios. Their reference and live lap are generated through the shared engine, and remain labelled DEMO.

## Drag refinement

The new benchmark covers 63 results across all seven tests at 5/10/25 Hz, curved launch/braking profiles, 0/0.02/0.05 m/s synthetic speed noise and arrival jitter. Maximum error against those mathematical profiles is about 24.1 ms (50 ms test bound); noiseless maximum is about 11.5 ms. These are estimator tests, not real GPS accuracy claims. No calculation change or relaxed quality threshold was justified. Drag policy 1 and existing saved PBs remain compatible. Raw captures and timing inputs are unchanged.

## Verification and remaining physical checks

Both ESP32 profiles build. Decoder, Street, Drag, Track, calendar, 13 Python tests, China-pack sanitizer replays and native interaction/storage/shutdown checks pass. Pack conversion is reproducible byte-for-byte, including native LPT identities. The simulator renders 113 states, including the five imported Timing/Map/Session sets, and checks text clipping and shared header pixels. Prior artboards are compared with v0.0.14; the only expected prior-screen change is Settings' version text.

No ESP32 USB serial device was connected during this release. New firmware has not been flashed or bench-tested here. Board CPU/heap/task margins, real SD fault behaviour, manual PWR shutdown on these courses and independent on-track timing remain physical acceptance work. The simulator cannot establish them. GPS quality policy is unchanged: an attractive map never makes a poor fix eligible for timing.

Release contents include both board profiles/ELFs/manifests, source snapshot, China pack and licenses, per-course SVG review maps, public Tianma geometry-check extracts and simulation reports. The owner's private captures and coordinate-bearing private replay CSVs are excluded.
