Categories
News

RumiCar Simulator v8.4.0 released

We have released RumiCar Simulator v8.4.0. The release notes below are also available on GitHub.


v8.4.0

The check for whether the cars fit is now faster when you switch course, regime or car scale (and right before ▶/🏁) (Stage BA; the driving and placement results do not change by a single bit). Some combinations had long been slow to check (the numbers only became visible once v8.3.0 made the check measurable on its own: across 1,188 combinations — 66 shipped courses × 3 regimes × 6 car-scale steps — the worst took about 4.5 seconds). We measured where the time went before changing anything: in the worst combination the “can six cars be placed?” evaluation ran 27 times, and most of the time was spent searching along the corridor from the start for places to put the cars. So we kept the steps used to shrink the car and instead removed repeated evaluations and made each one lighter: ① the same dimensions are never evaluated twice within one check ② the corridor search stops as soon as a placement has been found ③ the wall-hit and line-of-sight tests no longer build temporary data for every wall. None of them changes the answer (for ② and ③ even the formulas and the order of computation are the same). Cost of one check (permanent gate node wf_az2_fitguard.mjs, section E, measured before and after on the same machine; the figures vary by machine and exclude the trial drive that runs only right before ▶/🏁): median about 20 ms → about 6 ms, worst about 4.5 s → about 0.35 s, combinations above the 50 ms budget for interactive use 434 → about 180 (out of 1,188). Where things settle, the initial placement and official records do not change: all 1,188 combinations settle exactly where they did before, and the digest of the placement oracle’s output (such as the sequence of six-car placements) matches the pre-change tree (locked down by the new gate wf_ba1_fitcore.mjs). The official-race verifyHash (c731ecce) and the frozen hashes f0–f3 are unchanged as well. The step that shrinks the car to find a size that fits was not turned into a binary search, because “does it fit?” is not monotonic in car scale (65 of the 198 course × regime pairs have counterexamples; in a table of car scales 0.5–4.0 in steps of 0.1, a binary search would change the shrink result in 877 of the 5,562 entries that do not fit at entry). Some combinations still exceed 50 ms; nearly all of them repeat the “does not fit” evaluation over many steps (within what we tried, we found no way to shorten that without changing the answer). We also corrected the number of verification gates stated in README and REBUILD to the actual count (65) and the number of JS modules to the actual count (46).


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 suite

The 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.

How this site is built (v1.4.0)

Some components are open source:

Enjoyed the machinery? The main event is our autonomous-driving simulator — it runs in your browser.
Try the simulator → / GitHub →