Categories
News

RumiCar Simulator v8.9.0 released

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


v8.9.0

Fixes to arrow keys in drop-downs and dialogs, garbled car names, “Saved” shown when nothing was saved, a stale check after overriding a built-in car, course-record matching for bundled courses, and how the rankings split courses into tables (Stage BF; the driving physics is untouched — official records and driving on the shipped courses are unchanged; the official-race verifyHash c731ecce and the frozen hashes f0–f3 are the same as before). (1) Pressing an arrow key in a drop-down or a dialog drove the car behind it — with focus on a drop-down (course, regime, language, each car’s type and so on) or in the ❓ Help, 📋 Specs & Limits or 🚗 Car Types dialog, an arrow key did not move the selection but drove the car instead (measured while the key was held: 55–66 px in drop-downs, 25–60 px in dialogs). Arrow keys now move the selection in drop-downs and scroll the dialog text, and the car does not move. If you click a drop-down while holding an arrow key, the car stops once the held key’s repeat input reaches the drop-down. (2) Garbled car names and car-type keys, and “Saved” shown when nothing was saved — (a) car names containing " or & were garbled when you changed the number of cars (for example a"b became a, and & became &). (b) For custom and submitted car types whose key contains ", the key was cut off before the " in the drop-downs for each car’s type and for the event’s spec car. (c) Saving a course under the name __proto__ showed “Saved” although nothing was saved; that name can now be saved. Also, when storage was full, saving a course or adding or duplicating a custom car type showed “Saved” or “Added”; now only the failure is reported. (d) A custom car type cannot use a key such as constructor that every JavaScript object already has. It used to be refused with the wrong reason (“conflicts with a built-in car type”); the correct reason is now shown. Submitted car types with such a key are not loaded, and the reason (reserved) is given. (e) A share URL whose car type or program was constructor or a similar name caused an error at startup, and one whose regime was toString or similar left the regime selection empty; both are fixed. (3) After overriding a built-in car with Edit, the check of whether any car can pull away was stale — if you changed the Normal FR’s performance through Edit on a built-in car in 🚗 Car Types (an override saved in this browser only), the check made when you press ▶ (“not one of them can actually pull away” and the like) still gave the answer from before the override if the same check had already run on that page (the check test-drives the Normal FR). After an override the check now uses the overridden performance, and after “Reset” it goes back to the default performance. (4) Course records are now matched for official races that bundle a course definition — “re-run locally to verify” on an official race that bundles a course definition almost always said “New course record!”, even when there was a practice best. Now, when the bundled course drives exactly like a shipped course, the result is matched against that shipped course’s practice best and says “Course record beaten!” and so on. Races where bundling drops the slope or surface settings and the driving changes (the mountain-pass and rain courses, for example) are still not matched, as before. (5) The course tables in 🏅 Rankings are now split by the shape of the course — (a) tables used to be split by how a race referred to its course (name or file name), so races held on the same submitted course by name and by file name ended up in separate tables, with the file name as a heading. Now they are split by the shape of the course and gathered into one table, headed the same way as in the course drop-down. Submitted courses that differ only in name but have the same shape also share one table, with their headings joined by ” / “. The world best, the “your record has been beaten” notices, the fastest per language and the number of course records follow the same split. (b) Races that bundle a course definition were all gathered into one table called “[object Object]”, and “👻 You vs world best” on that table said “No trajectory to replay.” and could not start. Now they get a table per course shape (the heading adds “course definition bundled with the race”), and the ghost battle works. Even a race that bundles a shipped course’s definition gets a table separate from that shipped course when importing drops information such as the centerline and changes the shape. (c) Headings for shipped courses were in Japanese even in the English display; this is fixed. (d) When several submitted courses share a name, the heading adds the file name. (e) The “your record has been beaten” notice at startup now waits until the list of submitted courses has been read (up to 10 seconds). If the list arrives while the rankings are open, they are redrawn. While the list of submitted courses has not been loaded (including when only part of it has), only races that refer to a submitted course are still split by how they referred to it. We also improved the verification tooling (real-browser checks 37 → 41; the permanent verification gates stay at 73; three of them gained checks and one was updated to match the new code).


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 →