Eclipse SUMO 1.27.0 Is Now Available!

Thursday, May 21, 2026 - 10:54 by Angelo Banse

We are happy to announce the release of SUMO version 1.27.0. The download links are at https://sumo.dlr.de/Download.
If you cite the new release in your publications, please use the DOI 10.5281/zenodo.20312733 (https://doi.org/10.5281/zenodo.20312733)

Starting with this release, vehicles will default to departSpeed "avg" and departLane "best_prob".
As a result, the insertion flow rate is much higher, especially on multi-lane roads.
This release also brings multiple features and fixes relating to taxi simulation, railways and state saving/loading.
The toolchain for GTFS import received major improvements in speed and accuracy.
A significant number of regressions that went unnoticed (by us) over the last 5 years have been fixed.

There are many more features and fixes in this release and the most important ones are listed below.
For a full list of changes, as always see https://sumo.dlr.de/Changelog.

## Enhancements

- sumo
  - Cars no longer enter a bidi-edge if it is occupied or already being approached from a higher-priority road
  - Added parkingArea attribute reservable (<BOOL>) which prevents multiple vehicles from targeting the same spot when cruising for parking
  - The symbolic departSpeed values "desired", "speedLimit", "last" and "avg" now automatically adjust to upcoming stops and intersections
  - Taxis:
    - Intermodal routing now works with taxis of arbitrary vClass.
    - Taxis with idle algorithm taxistand now advance in queue when parking with onRoad="true" and overtaking is not possible
    - Added taxi param which permits idle taxis to receive dispatch tasks before pickup is complete from other taxis in the same swapGroup if that would reduce time to pickup
    - Saving and loading state is now supported for taxi simulation
  - meso simulation now supports internal links 

- netedit
  - Edge attribute routingType is now supported
  - Added 18 more tools to the menu

- netconvert
  - VISUM import supports geo-projection and type-files
  - Added option --railway.topology.ptline-priority to set railway routingType from ptlines
  - Improved heuristic generation of rail signals at stops (optionally splits edges)
  - OSM: various geometry improvements (i.e. by interpreting 'placement' tag)
  - OSM: various railway directionality improvements

- TraCI: Added function vehicle.getReferenceDistance to retrieve the position of the vehicle in the underlying linear reference system

- tools
  - osmWebWizard.py: Adds menu for changing the tileset (i.e. OpenTopoMap and ÖPNVkarte / public transport)
  - routeSampler.py: Added option --keep-attributes to preserve vehicle attributes loaded from route input including departure time
  - instantOutDiff.py: Added tool for comparing instantInductionLoop output from two simulation runs
  - tls_analyzeSplit.py: Added tool to analyze green split of static signal plans (or plan-like logs of dynamic plans)
  - sumolib.net.getOptimalPath now uses caching by default (configurable with readNet attribute maxcache) and runs much faster in one-to-many routings (i.e. gtfs2pty.py).
  - gtfs2pt.py: Added multiple options increase robustness and correctness of railway simulation
  - patchRailPriorities.py: Added tool to patch edge routingType in rail networks (and optionally add stops and signals) to ensure smooth operations on single track lines with passing loops.
  - randomTrips.py: Added option --threads to speed up validation. Uses half the number of available cpus by default
  - tileGet.py now supports reprojection to UTM and stitching of the downloaded tiles

## Bugfixes

- sumo
  - Fixed bug where vehicles that are blocked from entering a stopping place do not collect enough timeLoss (regression in 1.26.0)
  - Fixed invalid error when setting option --device.rerouting.mode 8 (regression in 1.26.0)
  - Stopping on a long busStop before reaching the designated spot due to jamming now permits passengers to exit if the vehicle is fully within the busStop
  - Fixed platform dependency in lane changer
  - Rerouters now act according to device.rerouting.mode even when vehicles are not equipped with a rerouting device
  - Fixed various issues with symbolic departLane values
  - Fixed bugs related to stopping after rerouting
  - Fixed invalid timeLoss computation for stopping vehicles
  - Fixed unsafe insertion at zipper link
  - Fixed crash in scenarios with bidirectional edges
  - Fixed various issues that caused behavior to diverge after state loading
  - Various fixes to taxi pickup and idling behavior
  - Various fixes to railway simulation with respect to safety and deadlocks

- sumo-gui
  - Fixed missing text in lane and vehicle dialogs (lane permissions, stop attributes and current driveways) (regression in 1.21.0)
  - Fixed multiple crashes when drawing persons
  - Fixed bug where fcd-output differs from non-gui simulation after loading state

- netedit
  - Fixed multiple minor regressions since version 1.6.0
  - Editing custom lane and junction shapes on top of edges is working again (regression in 1.20.0)
  - edgedata mode: clicking on intervals works again (regression in 1.22.0)
  - It is now possible to select edges that belong to a TAZ using selection mode (regression in 1.22.0)
  - taz mode: clicking edge for membership toggle works again (regression in 1.23.0)
  - Errors when loading additionals from the command line, are now visible in the message window again (regression in 1.23.0)
  - python tool dialogs now permit selecting multiple files (regression in 1.25.0)
  - Fixed crash when calling python tool and using the 'back' button (regression in 1.25.0)
  - Fixed crash after deleting an object from a group of overlapped objects (regression in 1.25.0)
  - Saving of loaded unmodified additionals to a new file name is working again (regression in 1.26.0)
  - The network file name shows up in the window title again (regression in 1.26.0)
  - Fixed invalid default extension when saving plain-xml (regression in 1.26.0)
  - Fixed invalid error when loading stop that ends on lane end
  - Fixed problems when setting vehicle attribute departEdge / arrivalEdge
  - Fixed crash when defining trip between junctions with stop
  - Disabling randomTrips options checkbox 'validate' now takes effect
  - Function split edge now takes into account current front element

- netconvert
  - Fixed superfluous bidi-edges when repairing ptLine (regression in 1.26.0)
  - NEMA computation now works for 4-arm junction without right-turns (also affects some signal plans of non-NEMA junctions)
  - Zipper junctions no longer feature internal junctions (which could cause deadlock in the simulation)
  - Multiple fixes to VISUM import (connections, permissions)
  - OSM: Fixed invalid permissions when bicycles are explicitly forbidden on a pedestrian path
  - OSM: fixed bug that was causing invalid rail signals to be generated
  - OSM: fixed invalid distances (kilometrage)

- meso: Fixed bug that prevented taxi simulation from terminating (regression in 1.13.0)

- duarouter
  - Fixed invalid vehicle departure times when defining poisson flow (very noticeable at low rate)
  - Using options --skip-new-routes --ignore-errors no longer writes invalid routes

- TraCI: fixed bugs in vehicle.insertStop

- tools
  - gtfs2pt.py: fixed invalid error when block_id is missing (regression in 1.26.0), various other fixes to mapping
  - osmWebWizard.py: fixed various platform issues that prevent running.
  - osmWebWizard.py: fixed bug that was causing OSM data download to fail
  - countEdgeUsage.py: fixed interpretation of poisson and random flows
  - generateRerouters.py: various fixes (crashes, notification edges)
  - sumolib.net.getShortestPath: fixed bug where no path was found when a route had to loop back to the starting edge
  - net2geojson.py now writes valid polygons (i.e. w.r.t. orientation)

## Miscellaneous

- Simulation of railway-taxis with vClass "taxi" no longer triggers rail signals. Instead railway taxis can now be defined as vClass "rail" and taxi behavior will work as expected.
- Option --netstate-dump (also known as raw dump) is now deprecated. fcd-output has been upgraded to permit all attributes formerly only available in netstate-dump.
- The Python module SUMOPy was superseded by hybridPY which extends the functionality and supports Python 3

Have fun with the new release,
Jakob, Yun-Pang, Pablo, Angelo, Micha and Robert