We have released RumiCar Simulator v8.5.0. The release notes below are also available on GitHub.
v8.5.0
Cars and instruments are now readable even on large courses (Stage BB; driving physics untouched). It started with a submitted 18.4×18.7 m course: opening it drew cars 5.0×2.1 px wide and squeezed the meter and standings text down to 1.5–3.4 px, so nothing could be read (measured at 1440/1920/390 widths). ① Instruments are now drawn at the same size regardless of course size — the meter, standings, tyre HUD and distance labels are drawn in screen pixels, so across all 66 shipped + 2 submitted courses × 3 screen widths the smallest text is 11.00 px (it was 1.49 px before; a permanent real-browser gate machine-checks “at least 10 px” over that same population on every run). Distance labels no longer grow when you zoom. On narrow screens the tyre HUD moves to the top right of the meter (stacking vertically if it does not fit) and the standings go below it. ② Position marker (display option, on by default): while the on-screen car length is under 20 px, a ring of fixed size (about 22 px across) is drawn at the centre of each car. It disappears automatically once you zoom in far enough (the car itself is drawn exactly as before). ③ Follow camera (display option, off by default): keeps the selected car at the centre of the view and picks a zoom level that makes it at least 24 px long on screen (zoom is capped at 32×, so on very large courses it may still fall short of 24 px). Dragging the view, pressing “Fit view ⤢”, or entering the course editor turns it off (the + / − buttons do not; on a touch device use “Fit view ⤢”). Turning it off drops the zoom back to 8× or less — the cap is raised only while following, so if you were following at 18× the view widens a step. ④ Minimap: while zoomed in or following, the bottom right shows the whole course with a frame around the part you are looking at (it is not shown when no space clear of the instruments is large enough to be readable). ⑤ Loading of submitted courses is now robust — their format and size are checked, and any submission that fails is left out of the list while one line tells you how many, which files and why (file names are listed for the first 10; the count is always complete, and submissions that fail to download at all are skipped silently as before). Previously a submission whose content was null stopped the list from being built there, so that submission and every community course after it vanished from the list (if it came first, all of them did). Other kinds of breakage stayed in the list but did nothing when selected. The limits are 0.5–1000 m per side of the frame, 20,000 walls and so on; every shipped course passes (their frame sides run 0.907–748.36 m). ⑥ A submitted course was renamed: after consulting the person who submitted it, the course is now called “🌐 Racing Course” (its previous name was that of a real circuit and could have conflicted with a trademark; the change was made with their agreement). The English course list also uses a submission’s name_en when it has one. Because of the rename, this course’s practice best is not carried over — practice records are keyed by course name (and car type), so the old records stay in your browser but are no longer shown. Known limits: at phone width (390 px) the readable instruments cover a large part of the course; on courses with a short display height the bottom of the instruments can be cut off, and opening a large course at that width leaves no room for the minimap, so it is not shown. One more permanent gate was added (wf_bb2_course_check.mjs, the submitted-course check), bringing the total to 66, and the counts stated in README, REBUILD and browser/README were corrected to the actual figures.
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 suiteThe 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.
