Skip to content

v7.7.0

Choose a tag to compare

@z10000 z10000 released this 06 Sep 05:39
· 7 commits to main since this release

v7.7.0

Added an optional braking system to cars (precise v2 engine only; with the default, nothing changes at all). The real RumiCar brakes with the reverse torque of its drive motor alone, so until now an FR car locked only its rear wheels while the fronts kept rolling freely. Measured (full-scale, 40 m/s down to 2 m/s) the stopping distances are FR 138.97 m / FF 88.11 m / AWD 65.85 m — more than a factor of two apart for the same mass and tires, purely because of the drivetrain. Choosing the new four-wheel friction brakes spreads the same total braking force over four wheels with a front/rear split (60/40 by default, plus front-biased 75/25 and rear-biased 45/55), which cuts the FR stopping distance from 138.97 m to 63.40 m, a 54% reduction. AWD barely moves (0.2%) — motor braking already reaches all four wheels there, so this equipment matters for cars that have wheels receiving no braking at all. Lock-up emerges from the wheel rotation equation; there is no lock threshold anywhere in the code. Raising the front share 45% → 60% → 75% raises the front lock fraction monotonically 0.52 → 0.76 → 0.84 and lowers the rear one 0.68 → 0.36 → 0.00. In a straight line the three splits barely differ, because the braking command (4.013 g) is 2.87× the tire capacity (1.40 g) and every wheel saturates however you distribute it. The split matters in corners. Trail braking was measured over two independent grids (54 and 288 cells) sweeping radius, entry speed, brake duration, road μ and steering type. What can be claimed (1): an FR car’s rear always locks less (mean 0.800 → 0.210 and 0.662 → 0.123; not one of the 342 cells got worse). (2): an FR car’s recovery never degrades (cells returning to the corner went 13 → 39 and 88 → 200; 138 gained, 0 lost). (3): an FF car locks its rear more (0.000 → 0.320) — a motor-braked FF puts no braking on the rear at all, so spreading to four wheels necessarily increases it. This is not equipment that is always safer. What cannot be claimed: that peak sideslip falls. The mean does fall (FR 55.1° → 22.7°) but individual cells go the other way (9 of 54, 54 of 288), so it is recorded as a continuous measurement, not a law. ⚠ The effect changes sign with the regime — at full scale an FR car brakes 2.11× harder, but on the tabletop and mid-scale it is 0.77×, i.e. weaker. The cause is not the regime as such but the semi-implicit wheel ODE enabled there for speed: its damping uses a safe-side (over-large) tire stiffness, so less force reaches the road than was commanded (equally true of the default motor brake at 0.59 delivered/commanded; 0.43 once spread over four wheels). Where that path is not taken the ratio is 0.96–2.11, so any loss stays within 4%. FF and AWD cars lose recovery cells (over 288 cells FF 283→270, AWD 258→251); only FR never gets worse in a single cell. For drifting the effect was "loses speed, keeps robustness". Re-running the standing drift re-examination gate with four-wheel friction brakes fitted, the trail-braking driver’s robustness (cells surviving a ±10% entry-speed error) did not drop: 14/24 → 15/24, but its speed advantage fell from 8/8 conditions to 3/8, and the single free-space window where drifting was faster closed (1/8 → 0/8). The cause is not that grip driving got faster (on dry it is bit-identical at 3.53 s → 3.53 s, and on low μ it got slightly worse) — the drifting side got slower in all 8 conditions, which confirms as a causal experiment the earlier conjecture that the trail-braking advantage rests on the FR rear-axle lock. Fit real brakes and the entry to that technique — breaking the rear loose by locking it — disappears. This is machine-checked by a standing gate (wf_av2_brake.mjs, 56 assertions) and a real-browser gate (28 checks); with the default motor brake the frozen benchmarks f0–f3, official-race verifyHash values and existing share URLs are all unchanged.

日本語

車両に「制動装置」の任意装備を追加しました (精密 v2 エンジン専用・既定のままなら従来と完全に同じ)。実機 RumiCar のブレーキは駆動モーターの逆トルクだけなので、これまでは FR 車で後輪だけがロックし、前輪は自由に転がったままでした。実測すると (フルスケール・40m/s から 2m/s まで) 停止距離は FR 138.97m / FF 88.11m / AWD 65.85m と、同じ車重・同じタイヤなのに駆動方式だけで 2 倍以上違います。新しい〈4輪摩擦ブレーキ〉を選ぶと、同じ総制動力を前後配分 (既定は前60%/後40%・前寄り 75/25・後寄り 45/55 の 3 択) で 4 輪へ配るようになり、FR の停止距離は 138.97m→63.40m と 54% 短くなりますAWD はほとんど変わりません (0.2%) — モーターブレーキでも既に 4 輪へ配られているからで、この装備が効くのは「制動が掛からない輪がある」車です。ロックは車輪の回転を解く方程式から創発します (コードにロック閾値は 1 つもありません)。配分を前45%→60%→75% と上げると、前輪ロック率が 0.52→0.76→0.84 と単調に増え、後輪ロック率は 0.68→0.36→0.00 と単調に減ります。直線では 3 種の配分にほとんど差が出ません — 制動指令 (4.013g) がタイヤ容量 (1.40g) の 2.87 倍あり、どう配っても全輪が飽和するためです。配分が効くのは旋回中です。コーナー内で踏む「トレイルブレーキ」を、半径・進入速度・制動時間・路面μ・舵の型を振った2つの独立な格子 (54セルと288セル) で測りました。言えること①: FR の後軸ロックは必ず減ります (平均 0.800→0.210 と 0.662→0.123・342セル中 増えたセルは 0)。②: FR の旋回復帰は 1 セルも悪化しません (戻れたセルが 13→39 と 88→200・得 138 / 失 0)。③: FF は逆に後軸ロックが増えます (0.000→0.320) — モーターブレーキの FF は後輪に制動が一切掛からないので、4輪化すれば必ず増えます。常に安全になる装備ではありません言えないこと: 横滑り角のピークが下がること — 平均は下がります (FR 55.1°→22.7°) が、セル単位では増える所があり (格子1で9/54・格子2で54/288)、これは法則ではなく連続量の記録です。⚠ 効果は領域で符号が変わります — フルスケールでは FR の制動が 2.11 倍強くなるのに、卓上/中スケールでは 0.77 倍と弱くなります。原因は領域そのものではなく、卓上/中スケールで有効な車輪 ODE の半陰的化(高速化のための近似)がタイヤ剛性に安全側(過大)の値を使い、指令より小さい力しか路面へ届かないためです (既定のモーターブレーキでも同じで実力/指令 0.59、4 輪へ配ると 0.43)。半陰的化を通らない条件では 0.96〜2.11 倍で、悪化しても 4% 以内です。FF と 4WD は旋回復帰を失うセルがあります (288 セルで FF 283→270・4WD 258→251)。1 セルも悪化しないのは FR だけです。ドリフトへの効き方は「速さを失い、頑健さは失わない」でした。 常設のドリフト再検証ゲートを 4輪摩擦ブレーキで走らせ直すと、トレイルブレーキ型の頑健性 (進入速度±10% でも崩れない数) は 14/24→15/24 と下がりませんでしたが、速さの優位は 8/8 条件→3/8 条件へ落ち、自由空間に 1 つだけあった「ドリフトの方が速い窓」も閉じました (1/8→0/8)。原因はグリップ走行が速くなったからではありません (乾燥路では 3.53s→3.53s と完全に不変・低μでは僅かに悪化) — ドリフト側が全 8 条件で遅くなったためで、これは「トレイルブレーキ型の優位は FR の後軸ロックを前提にした運転から出ている」という以前の推測を、装備を替える因果実験として確認したものです。本物のブレーキを積むと、その運転の入口 (リアを破る後軸ロック) が無くなります。常設ゲート (wf_av2_brake.mjs・56 アサート) と実ブラウザゲート (28 項目) で機械検査しており、既定 (モーターブレーキ) では凍結ベンチ f0〜f3・公式レースの verifyHash・既存の共有 URL がすべて不変です。


Verifying this release yourself

cd Simulator
node wf_run_all.mjs        # the full assertion-gate suite

The suite runs from a fresh clone with no dependencies beyond Node.js.
The real-browser checks under Simulator/browser/ additionally need npm install and a display.