Categories
News

RumiCar Simulator v8.6.0 released

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


v8.6.0

Touch input now works on phones and tablets, and on narrow screens the instruments no longer cover the course (Stage BC; driving physics untouched). ① Touch input — on a touch device, dragging the view used to do nothing (the browser took the gesture away as a page scroll), you could not turn the follow camera off with a finger, you could not grab and move a car, and you could not draw walls continuously in the course editor. The app now claims a touch gesture only when there is something to grab, so panning, dragging a car and editing a course all behave exactly as they do with a mouse (the measured travel matches), while on empty space you can still scroll the page with a finger as before. ② The instruments now move to a band below the course — this happens when the meter and the standings do not fit side by side (keeping them readable would otherwise make them cover much of the course) or when the instruments are too tall for the course view. Across all 68 courses (66 shipped + 2 submitted) at 390 px and 320 px width, the share of the course covered by instruments went from a median of 59.6% / 71.6% to 0.0%, and the number of courses whose instruments were cut off at the bottom went from 20 / 37 to 0. The minimap now appears even at 280 px width (previously it was not shown for large courses on narrow screens). The decision is made from the size of the course view, not the window width, so whenever the standings grow wider — an English UI, a note about non-default equipment, or the “(was vX)” tag on a practice best set in an earlier version — the band can appear on a wide screen too. The default view (Japanese, one car, default equipment) is the same picture as before (the pixel hashes of the 104 cells that were stable across two runs match, as do the bounding boxes of the instruments in 136 of 136 cells). ③ Broken and oversized courses are now handled the same way on every path that opens a course — there are 4 such paths (JSON import in the editor, selecting a saved or community course, the course bundled with an official race, and ✔ Apply), but only community courses were being checked. Those 4, plus the check made just before you submit, now go through the same single entry point (shipped courses are passed straight through, since a permanent gate guarantees that all 66 of them pass; a data restore is contracted to give back the string it was handed, so it is not checked). When a course does not pass, one line tells you what the problem is and the course you already have open is not replaced behind your back (previously it would silently fail to switch, or produce a stream of rendering errors). The criteria differ by where the course came from: anything that reaches other people (submissions, the course bundled with an official race) is checked as strictly as before, while anything you made and open yourself (saved courses, JSON import, ✔ Apply) is checked more loosely — otherwise a course you saved after shrinking its frame to 1 m in the editor could never be opened again. If a course fails the submission check, one line tells you at that moment that it would not appear in anyone’s list (the file is still exported). Community car types that could not be loaded are now reported with a reason too (previously they were skipped silently). ④ The selected community course is now preserved — community courses (🌐) alone used to jump back to the first course in the list when you switched between Japanese and English, and could not be restored from a share link. The restore key is now the same value the list uses, which fixes both, and older share links still open. Community courses load after start-up, so when the restore has to wait for them, one line tells you so. Cache-Control: no-cache is now sent — your browser revalidates with the server before using its cached copy (nothing is re-sent when the file has not changed, so the speed you feel is essentially unchanged). This prevents the failure where a version bump leaves old and new files mixed together and the app will not start. It cannot help with the update to this version, however — a browser that already holds a cached copy will not ask the server until that copy goes stale, so the benefit starts with the next update. ⑥ Wording fixes: the introductions to Official races, Rankings, Ghost replay and Challenges now match what the app actually does, and the “How to use” entries for dragging, the follow camera and the instruments were updated for the changes above. Known limit: at 320 px width the minimum frame of the standings is 12 px wider than the course view, so it overhangs slightly to the left (this does not happen at 390 px; it predates these changes, and a gate now pins it to a derived upper bound). The permanent verification gates went from 66 to 68, and the real-browser checks from 23 to 29.


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 →