We have released RumiCar Simulator v8.2.0. The release notes below are also available on GitHub.
v8.2.0
We reverse-engineered a corner that steering physically cannot take, and measured whether sliding actually gets through it (Stage AY; tabletop x the precise v2 engine; the driving physics is unchanged). One inequality governs it: when the corridor’s outer radius R_out falls below the minimum turning radius R_min, steering cannot take the corner at all. R_min = “wheelbase / tan(max steering angle)” is a kinematic floor that does not depend on speed; on the tabletop it is 0.2920 m (= 0.130 m / tan 24°). Across the 20 shipped touge corners and the 60 derived-touge corners, not one corner meets that condition (the closest is 1.086x the denominator R_min). So the reason no “drift is mandatory” regime ever showed up is not that drift lost, but that no such stage existed in the courses. Building the stage (outer-radius ratio R_out/R_min = 1.02 / 0.95 / 0.856 / 0.80 x road width 0.16 m / 0.28 m = 8 cells, 180° heading change) gave three findings. 1. There is no regime where drift is mandatory — in the 12 cells steering cannot take, even an optimiser forced to slide to |beta| 90° with 41° of rear-axle slip angle (67°/22° across the 6 default-surface cells, 90°/41° across the 6 low-mu ones) never stayed inside the corridor (the closest miss still leaves it by 0.0345 m), and that held across seeds and at double the budget. 2. No regime where drift is advantageous was found under these conditions — GO came out 0 of 8, and 0 of 8 again on low-mu. But we do not write “there is none”: change the random seed and the combined time ratio spreads over 0.932 to 1.168, straddling the 0.98 threshold (the speed condition flips in 2 of the 4 rows where a comparison existed; with the main seeds GO is 0, and across the other seeds 0 of 12 are GO while 2 of 12 land at a ratio <= 0.98). Finding 1 is solid, finding 2 is not; please do not merge them. 3. If a win exists, it is confined to cells steering can also take — the R5 cell we previously described as “the one window that opens in free space” sits at an outer-radius ratio of 1.23, above the floor, so it meant “sliding was 11.9% faster through a corner steering could also take” (that passage has been rewritten). The boundary where steering stops working is two lines, not one: if the entry lateral position can be chosen, R_out/R_min = 1.004 (0.16 m width) / 1.003 (0.28 m); entering down the middle of the corridor, 1.073 / 1.174 (the latter formula is specific to a 180° heading change). That is a point path (rear-axle centre); the body makes it stricter — the swing-out of 0.0365 m eats 91% of the 0.0400 m margin at a 0.16 m road width, and the body-aware ratio is below 1 in all 8 cells. The 7 of these benches that exist as real walls have been added as courses ([Steering-Limit Bench], at the end of the course list; the cell at ratio 0.80 with a 0.28 m width is excluded because its inner wall radius goes negative). Measured when added, the three built-in samples finish 1 of 21 across the 7 courses (the engine is the tabletop default, the dynamic model; on precise v2 it is 0/21). Because they cannot be completed by design, these 7 are excluded from the challenge completion badges, so the badge denominators are unchanged. What is still unmeasured is the multi-point-turn line — if anything gets through here, that is it. A new permanent gate wf_ay1_rmin_bench.mjs (37 assertions) and the library wf_drift_opt.mjs bring the gate count to 62.
Verifying this release yourself
git clone https://github.com/RumiCar-group/RumiCar-Simulator.git
cd RumiCar-Simulator
node wf_run_all.mjs # the full assertion-gate suiteThe suite runs from a fresh clone with no dependencies beyond Node.js.
The real-browser checks under browser/ additionally need npm install and a display.
