Skip to content

Menu Bar

The menu bar is the entry point for project management, path operations, undo/redo, and robot configuration.

Project

Action Description
Open Project… Select a BLine project directory (any directory with config.json + a paths/ subfolder). Typically your robot project's src/main/deploy/autos.
Recent Projects Quick access to recently opened project directories.

Always point BLine at your robot project's autos/ directory

The GUI reads and writes the same JSON files BLine-Lib loads at runtime. There's no "export to robot" step — saving is the export.

Path

Action Description
Current: [name] Shows the currently loaded path (read-only label).
Load Path ▸ Submenu listing every .json file under paths/. Click to load.
Create New Path Starts a fresh path with zero elements. Save As… when ready.
Save Path As… Write the current path to a new .json file under paths/.
Rename Path… Rename the current path's .json file.
Delete Paths… Multi-select delete dialog across the project's paths.

Edit

Action Shortcut Description
Undo Ctrl/Cmd + Z Undo the last action.
Redo Ctrl/Cmd + Y / Ctrl/Cmd + Shift + Z Redo the last undone action.

The undo stack covers element moves, rotations, additions, deletions, reorders, constraint edits, and type conversions. Trivial actions like simple element selections are coalesced so a plain click doesn't create a spurious undo entry (v0.4.0+).

Settings

Settings → Edit Config… opens the project configuration dialog. Values are saved to config.json as you edit them — click OK to accept or Cancel to revert.

The dialog is organized into two groups:

GUI

These fields affect only the GUI's visual rendering. BLine-Lib ignores them.

Field Units Description
Robot Length (m) meters Length used to draw the simulated robot footprint.
Robot Width (m) meters Width used to draw the simulated robot footprint.
Enable Protrusions bool Turn the protrusion rendering system on. See Protrusions.
Protrusion Distance (m) meters How far the protrusion extends from the robot perimeter.
Protrusion Side enum none / left / right / front / back.
Default Protrusion State enum shown / hidden — the state each element uses unless overridden by event keys.
Show On Event Keys csv Event-trigger keys that flip protrusions to shown during sim.
Hide On Event Keys csv Event-trigger keys that flip protrusions to hidden during sim.

Why robot size/protrusions are GUI-only

BLine-Lib does its own tracking math — it doesn't need to know the robot's bumper perimeter. The dialog fields only control what the canvas draws. That means the size and protrusion configuration cost nothing at runtime, so use them liberally for visualization.

Kinematic Constraints

These fields are written to config.json and are read by BLine-Lib. They form the global defaults every Path falls back to when the path itself doesn't override them.

Field Units Description
Default Max Velocity m/s Default translational velocity cap.
Default Max Accel m/s² Default translational acceleration cap.
Default Handoff Radius meters Default radius at which the follower advances to the next translation target.
Default Max Rot Vel deg/s Default holonomic rotational velocity cap.
Default Max Rot Accel deg/s² Default holonomic rotational acceleration cap.
End Translation Tolerance meters Global position tolerance for declaring a path complete.
End Rotation Tolerance degrees Global rotation tolerance for declaring a path complete.

See Constraints for how these values interact with path-specific constraints, and Key Parameters for guidance on picking good values.

Set constraints before designing paths

Robot configuration is global state for the project. If you design paths first and then change global defaults, the velocity profile of every path changes. Configure once, then design.

Config file schema

For reference, the dialog persists values like this:

{
    "robot_length_meters": 0.78,
    "robot_width_meters": 0.85,
    "protrusion_enabled": true,
    "protrusion_distance_meters": 0.30,
    "protrusion_side": "front",
    "protrusion_default_state": "hidden",
    "protrusion_show_on_event_keys": ["deploy"],
    "protrusion_hide_on_event_keys": ["retract"],

    "default_max_velocity_meters_per_sec": 4.5,
    "default_max_acceleration_meters_per_sec2": 10.0,
    "default_intermediate_handoff_radius_meters": 0.25,
    "default_max_velocity_deg_per_sec": 600,
    "default_max_acceleration_deg_per_sec2": 2000,
    "default_end_translation_tolerance_meters": 0.03,
    "default_end_rotation_tolerance_deg": 2.0
}

Older config files produced by earlier GUI releases are migrated automatically when opened. You can also hand-author this file if you prefer — BLine-Lib accepts both the flat layout and the nested kinematic_constraints shape the newer GUI uses.