RumiCar Simulator v4.1.0

🏁 最速プログラム ⧉ GitHub

使い方

1. コースを選ぶ

2. 車両を用意する

3. 走行プログラムを選ぶ・作る

4. 走らせる

5. 観察する

6. GitHub で共有する (作る → 走らせる → 保存 → みんなで再利用)

7. プログラミング API (主要)

8. もっと詳しく (GitHub)

🏁 レースガイド (使い方・ルール・設計思想)

RumiCar のレースは決定論を土台にした上級者向けの機能です。

二層モデル — 練習と公式

使い方 — ボタン別

コース試走で学ぶ — Recon Racer (上級者向け学習モデル)

レースの体感・演出

ルール

装備と条件 — エンジン・タイヤ・試走・摩耗 (精密 v2)

設計思想

仕様と制限

車両・物理モデル

車種特性 (6種)

センサー

実行モデル

プログラミング言語の対応範囲

その他

システム仕様(技術アーキテクチャ)

このシミュレータは静的配信の単一ページアプリ (SPA) です。サーバーに状態を持たず、物理・学習プログラムの実行・描画はすべてブラウザ内で完結します。以下は外部からデータで拡張・自作するための技術仕様です (実装=ソースを正とします)。コースデータの書式は別ダイアログ「📐 コースデータ仕様」にまとめています。

システム構成

独自車種 JSON

プログラム API(学習側)

ブラウザ保存データ(localStorage)

上記のブラウザ保存データをまとめて 1 つの JSON に書き出し / 読み戻せます (端末の移行・誤消去への備え。サーバーには送信されません)。読み込み時、現在の値と異なるキーがあるときは件数を確認してから上書きします。

コースデータ仕様 (courses.json)

同梱コースは public/data/courses.json (配列) で定義します。

共通フィールド (全 kind 共通)

kind: "track" — 中心線+道幅で内外2本の壁 (一定幅の周回路)

kind: "annulus" — 外周と内周を独立形状で定義

kind: "touge" — 頂上→麓の下り道 (周回でない)

kind: "raw" — 壁を直接列挙

start / finish の補足

検証とメンテナンス

🔬 物理モデル — いま車に何が起きているか

画面の中の車は、タイヤが路面に生む力を毎フレーム積分して動いています。アンダーステアもドリフトもスピンも、個別の演出ではなくこの力学から自然に出てくる結果です。以下は「なぜそう動くのか」を数式とともに辿れるように書いてあります。各見出しは後から読み返し・自分で調べた内容との対比に使ってください。

1. 解いている運動方程式 — シングルトラック(自転車)モデル

2. タイヤが出せる力には上限がある — 摩擦円

3. 横の力はどこから出るか — スリップ角とタイヤ曲線

4. 前後の力 — 駆動・制動・荷重移動

5. 車輪のスリップ率(フルスケール領域)

6. 空力 — 抗力とダウンフォース(フルスケール領域)

7. 領域(スケール) — 同じエンジンで卓上から実車まで

8. 駆動方式が挙動を決める(動力学パラメータ)

FF/FR/4WD の差は、次の数値だけで表現しています(残りは全部共通の力学から創発)。

駆動重心位置 a/L駆動配分 前:後後輪横μ倍率性格
FF0.42(前寄り)1.0 : 0.01.05強アンダー・発進空転大・制動安定
FR0.55(後寄り)0.0 : 1.00.80(先に流れる)よく曲がる・パワーオーバー・制動でリア軽い
4WD0.50(中央)0.4 : 0.60.95発進最速・安定・流れても回復速い

数値ごとの意味と全車種の一覧は「🚗 車種」ダイアログに。独自車種も追加できます。

9. 現実と違う点・利用上の注意(まとめ)

10. もっと深く調べる人へ(索引)

車両物理モデル — 設計: Fable 5(初代キネマティクス・Racing Line)/ 動力学化・タイヤ/空力/領域モデル・精密動力学 v2 エンジン(4輪 two-track・インパルス接触・Stage AO)・本解説: Opus 4.8。RumiCar 実機の特性を土台に、教育目的で「なぜそう動くか」を辿れるよう構成しています。

車種パラメータ

各車の物理パラメータ(config.js の DRIVE)です。これが挙動の正体。数値の意味は下の表で。

組込の6車種も「編集」でローカルに上書きできます (実験用・このブラウザに保存)。出荷時の既定は変わらず、「既定に戻す」でいつでも完全に元へ戻せます。

パラメータの意味

独自の車種を追加する


      

フォームで作る

スライダーや数値で各パラメータを設定できます。下の JSON とリアルタイムに双方向同期します。

登録済みの独自車種

各車種を個別に編集 (上の欄へ読込)・複製・削除できます。組込の6車種はこの一覧には出ません (上の車種パラメータ表「編集」で上書きできます)。

作った車種は「🌐 GitHubで共有」ボタンで投稿でき (プルリクエスト方式)、承認後は全利用者の車種メニューに「🌐 名前」として並びます。まずは自分のブラウザで自由に試せます。

質問・アイデアを投稿 (コミュニティ)

走行ロジック・物理・プログラムの書き方・改良アイデアなど、技術的な質問や提案を投稿できます。 投稿は GitHub のディスカッション(Issue)に送られ、Fable 5 や他の利用者が読んで回答します。 みんなでアイデアを出し合って成長するのが目的です。

🏁 開催 (ローカル)

クラス (ワンメイク/バランス/無制限) を決めてエントリーを集め、3台未満は補充車で成立させて公式レースとして走らせます。先回り警告はせず「走った結果」で適不適が分かります。

🏁 レース結果

🏆 公式レース (GitHub)

GitHub の races/ で開かれている公式レースです。締切で確定したエントリー列を決定論エンジンで再実行すれば、誰でも結果を検証できます。

🏅 ランキング (公式記録)

GitHub の公式レース結果から集計したリーダーボードとドライバー称号です。検証済記録のみを反映します。

👻 ゴースト再生

記録の決定論リプレイをコース上に重ねて表示します。複数の車を同じ時間軸で走らせ差を体感できます。

0.0s
プログラム編集
編集はこの場で即反映されます(カード側と同期)。
🔍 +/- ボタンで拡大縮小・拡大時はドラッグで移動 1.0×
状態:停止速度:0 手動: PWM 200
決定論レース。先回り警告はしません — コースへの適不適は「走った結果」(クラッシュ地点・周回数・μ円使用率・β) で分かります。
DEPTH VIEW (一人称)A の視点 L:- C:- R:- x=0 y=0
車両 (横に並べて同時比較)
システムログ