v7.6.0
v7.6.0
Added a surface type to courses (precision v2 engine only; nothing changes if you leave the default). Writing surface:"loose" in a course definition gives you a loose surface like gravel, dirt or snow. On a loose surface the tire sinks into the top layer and builds a bank of material ahead of itself and pushes it aside (digging). That force is set not by friction but by how much material was displaced, so it grows the more you slide and lateral force stops falling off. This is why the optimal slip angle is 5–10° on tarmac but 20–30° on dirt; in the simulator the peak likewise moves from a slip angle of 8.0° to 22.8°, and the lateral-force-to-peak ratio at large slip goes from 0.89 (tarmac) to 1.19 (loose). Until now a surface was described by grip (peak multiplier) and muDecay (post-peak asymptote), and both can only make a curve that falls as you slide (muDecay is clamped to 0.95 in the implementation, so writing 1.0 still does not give you a surface that never falls off). Its effect on drifting turned out not to be straightforward. Making the low-μ benchmark loose raised the number of drift runs that get round without breaking from 38 to 202 (about ×5.3), and one hairpin that no drift line could clear on tarmac became clearable (this effect stays at ×5.3–5.4 when the sweep is made coarser or finer). But neither of the two expectations we started from was confirmed: ① "the drift-versus-grip lap-time ratio drops on loose" flips sign when the search grid changes, and ② "more ways of getting round with deep slip (sideslip angle above 20°) become available" does not hold in aggregate (28→18 runs). Some cells gain and some lose, and we have not identified the mechanism (the minimum turning radius was not the dividing line). Nor does digging make a surface slippery — adding it to the same grip makes the surface uniformly grippier, so real dirt being "slippery" comes from its low grip. To get dirt-like behaviour, lower grip as well as setting surface:"loose". No physical invariant is broken: the term changes only the magnitude and never the direction, so the steady-state tire force stays dissipative and the friction circle |F| ≤ μ_eff·Fz is still guaranteed structurally. A standing gate (wf_av1_loose.mjs, 39 assertions) and a real-browser gate (25 checks) verify this by machine, and with the default (no surface field) the frozen benchmarks f0–f3 and the official race verification hash do not change by a single bit. Note that the HUD "friction-circle usage" shows the normalized slip as a percentage, so on a loose surface the maximum-grip point reads 300% (a display-layer matter; the physics is unchanged). We also filled in the missing description of muDecay in the 📐 course data specification, and fixed the section ordering in the physics notes (13.14 had ended up after the index).
日本語
コースに「路面種別」を追加しました (精密 v2 エンジン専用・既定のままなら従来と完全に同じ)。コース定義に surface:"loose" と書くと、砂利・ダート・雪のようなルーズ路面になります。ルーズ路面ではタイヤが表層へ潜り、進む先に材料の土手を作って押しのけます (掘り込み)。この力は摩擦ではなく「押しのけた材料の量」で決まるので、滑らせるほど積み上がり、横力が落ちません。舗装路の最適スリップ角が 5〜10° なのにダートでは 20〜30° になるのはこのためで、本シミュレータでもピークが滑り角 8.0° から 22.8° へ移り、大きく滑らせたときの横力/ピーク比が 0.89 (舗装) から 1.19 (ルーズ) になります。これまで路面は grip (ピークの倍率) と muDecay (ピーク後の漸近比) の2つで表していましたが、どちらも「滑るほど落ちる」曲線しか作れませんでした (muDecay は実装で 0.95 にクランプされるため、1.0 と書いても落ちない路面にはなりません)。ドリフトへの効き方は素直ではありませんでした。 低μベンチをルーズ化すると、破綻せずに回れるドリフト走行は 38→202 通り (約5.3倍) に増え、舗装ではどう試しても回れなかったヘアピンが1つ回れるようになりました (この効果は掃引の粗さを変えても 5.3〜5.4 倍で安定しています)。一方、着手時に見込んでいた2つの予想はどちらも確かめられませんでした — ①「ドリフトとグリップ走行の所要時間比が舗装より下がる」は探索の格子を変えると符号が反転し、②「深い滑り (横滑り角 20° 以上) で回れる走り方が増える」は合計では成り立ちません (28→18 通り)。セルごとに増える所と減る所があり、その機序は特定できていません (最小回転半径は判別境界になっていませんでした)。また掘り込みは「滑りやすさ」を作りません — 同じ grip に掘り込みを足せば路面は一様にグリップが上がるので、実在のダートが「滑りやすい」のは grip が低いからです。ダートらしさを出すには grip を下げたうえで surface:"loose" を併用してください。物理の不変条件は1つも壊していません: 力の向きは変えず大きさだけを足すので、定常タイヤ力は常に散逸的なままで、摩擦円 |F| ≤ μ_eff·Fz も構造的に保証されます。常設ゲート (wf_av1_loose.mjs・39 アサート) と実ブラウザゲート (25 項目) で機械検査しており、既定 (surface 未指定) では凍結ベンチ f0〜f3・公式レースの検証ハッシュとも 1 ビットも変わりません。なお HUD の「摩擦円使用率」は正規化スリップをそのまま百分率にした表示なので、ルーズ路面では最大グリップ点が 300% と出ます (表示層だけの話で物理は不変)。あわせて、これまで📐コースデータ仕様に載っていなかった muDecay の説明を補い、物理モデル解説の節の並び順 (13.14 が索引の後ろに入っていた) を直しました。
Verifying this release yourself
cd 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 Simulator/browser/ additionally need npm install and a display.