You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(vehicle-editor): navigation, data safety and legible physics (#18)
Iterative UX work on the vehicle editor. The form itself was already
sound; what was missing was finding your way around it, protecting the
work in it, and seeing what the numbers describe.
Navigation and layout
- Jump bar over the data panel, one chip per section, marking the section
being read. The form runs two to three panel-heights long, and the only
way to learn a section existed was to scroll past it.
- Heading, name and file stay out of the scroll areas, so the vehicle
being edited never leaves the screen.
- Hairline and 12 px above each section title; the panel read as one long
list before.
- Values sit at the field's left edge, on the same column as combo box
text, instead of centred where the gap depended on the number's length.
- Subheadings move to TEXT: at 11.5 px they were smaller than the labels
they head and shared their colour.
- The scroll handle is visible at rest (egui hides it entirely).
- Substring filter over the node list, with an n-of-m count.
Data safety
- Nothing discards work silently: New, Open, Quit and the window's close
button ask first. The close button needed close_when_requested: false.
- Undo/redo over a snapshot of the spec, one step per interaction rather
than per frame, covering both panels.
- Window title names the vehicle and its unsaved state.
- Save is disabled when it would do nothing, and warns before rewriting a
file that carries comments — ron::ser drops them.
- Failures are drawn in ERROR and raise a dialog on user-triggered paths;
a RON syntax error used to fail invisibly.
- Bindings whose glTF node the model no longer has are marked.
Legible physics
- Sparklines under every (x, y) table, and under the running resistance,
friction and tractive effort curves the vehicle computes — sampled from
sim-core's own functions, never a copy. Zero baseline, since these are
magnitudes; hover reads the value out.
- Braked weight percentage closes the brake section.
- One-metre ground grid under the vehicle: length over buffers and axle
base are what the form is about, and the viewport gave nothing to
measure them against.
Coverage and settings
- adhesive_mass_fraction and the coupler group were unreachable in the
editor; a locomotive built here could not transmit a newton.
- The custom friction curve could be selected but never edited.
- The editor remembers recent vehicles, language, window size, panel
widths and view toggles.
Every branch of the form has been rendered and checked, including the
four drive types and their optional sub-groups.
0 commit comments