Eclipse SUMO 1.26.0 Is Now Available!

Thursday, January 29, 2026 - 05:28 by Angelo Banse

We are happy to announce the release of SUMO version 1.26.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.18406080 (https://doi.org/10.5281/zenodo.18406080 )

This release brings multiple features and fixes relating to public transport which affect network import, GTFS import, simulation behavior and output.
It also fixes various bugs related to lane changing and roundabouts.

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
  - Timeloss is now discounted when braking/accelerating for planned stops. Thus, a punctual public transport vehicle does not have any timeLoss.
  - Routing with randomized weights (--weights.random-factor) is now stable with respect to network changes, vehicle composition and state loading.
  - The new option --output-suffix can be used to modify the names of all output files (similar to --output-prefix).
  - edgeData output definitions now support attribute aggregate="taz" which will aggregated data within each loaded taz definition 
  - ChargingStation attribute 'totalPower' can now be used to limit the total power when charging multiple vehicles at the same time. 
  - Tram simulation now defaults to moving block mode and works better with sparse rail signals

- netedit
  - Automatically sets sumo option --junction-taz if at least one vehicle is configured to start/end at a junction 
  - Added support for junction attribute 'roundabout' 
  - The written sumocfg now tracks network file name changes 

- duarouter
  - Added option --max-traveltime which lets routing fail if traveling takes too long 
  - Rerouters with element closingReroute or closingLaneReroute can now be loaded from an --additional-file to influence routing 

- TraCI
  - function traci.simulation.findRoute now supports optional attributes departPos, arrivalPos 
  - traci.vehicle.setSpeedMode bit 2 (ignoring deceleration constraints) now also applies when validating deceleration for traci.vehicle.setStop 

- tools
  - visum_convertXMLRoutes.py: new tool for importing VISUM routes file 
  - patchRailConflicts.py: new tool for adding tram rail signals
  - generateRerouters.py: Added option --closed-edges.input-file for loading edges to close from a selection file, major speedup 
  - tazRel2POI.py: Added option --reference-taz to allow filtering relations to those that interact with a specific taz 
  - edgesInDistricts.py: now supports geo polygons 
  - addStops2Routes.py: allows placing stops on vias 
  - filterElements.py: Added option --remove-parent which filters parent element based on child attributes 
  - gtfs2pt.py: now warns about large detours (i.e. implausible routes) 

## Bugfixes

- sumo
  - Fixed deadlock in roundabout (regression in 1.24.0)
  - Fixed several bugs related to lane changing
  - Fixed several bugs related to roundabouts
  - Fixed several bugs related to rail signals and train insertion
  - Fixed several bugs related to car-pedestrian interactions
  - Fixed inconsistent computation of attribute flow in edgeData output 
  - Fixed missing events when vehicle is inserted on <instantInductionLoop> 
  - Fixed invalid braking at intersection with sublane model 
  - A closingReroute with configured permissions no longer affects vehicle with an unaffected vehicle class 
  - Fixed infinite traffic from poisson flow at specific random seeds 
  - Fixed bug where vehicle stops despite stop attribute 'onDemand' when there is no demand 
  - Fixed non-deterministic moving-block simulation 

- netedit
  - lane selection count now updates when selecting with shift-click  (regression in 1.11.0)
  - In move mode, grabbed and merged geometry points are indicated again (with contour instead of color)  (regression in 1.20.0)
  - Fixed crash in calibrator dialog  (regression in 1.25.0)
  - Merging junctions in move mode is working again  (regression in 1.25.0)
  - Creating calibrator flows is working again  (regression in 1.25.0)
  - Remove some unsupported combinations of taz/junctions for rides, transport, and tranships 

- sumo-gui
  - fixed crash when tracking a vehicle which already left 
  - Fixed crash when person performs a jump 

- netconvert
  - Fixed crash when removing traffic light crossing via xml input 
  - Fixed multiple bugs related to <split> element
  - Fixed invalid trainStop direction in ptline-output 
  - Fixed invalid ptlines when option --ptstop-output.no-bidi is set

- duarouter
  - Fixed crash when loading invalid routes with option --skip-new-routes and --ignore-errors  (regression in 1.25.0)
  - Any routes that are repaired with option --repair no longer trigger an error (and thus do not require option --ignore-errors anymore) 
  - Fixed problems related to looped routes

- TraCI / Libsumo
  - function traci.vehicle.rerouteParkingArea now finds looped route from the current edge 
  - libsumo macOS wheels work again 

- tools
  - osmGet.py: fixed missing road nodes when using option --shapes (regression in 1.20.0)
  - generateRerouters.py: now finds notification edges for consecutive closed edges 
  - countEdgeUsage.py: Fixed invalid count for vehroute-output involving replaced routes 
  - sumolib.xml.parse_fast: No longer yields records for element names that start with the same string as the requested element 
  - gtfs2pt.py: Fixed bug that was causing invalid stop assignments and large detours 
  - remap_additionals.py: fixed bug where wrong edge was picked among parallel edges 


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