Changes in the 2024 releases (versions 1.20.0 and 1.21.0)

Version 1.21.0 (10.10.2024)#

Bugfixes#

  • sumo
    • Fixed unhelpful error message when giving an edge id instead of a lane id for a stop #15158 (regression in 1.11.0)
    • Fixed invalid error when loading a trip directly after a route with repeat #14992 (regression in 1.20.0)
    • Persons joining edge via access don't collide with vehicles again #15030 (regression in 1.20.0)
    • personInfo total duration now includes ride waiting time #14887
    • Fixed jump-related bug when there are two stops on the same edge #14883
    • Fixed saving/loading of maximum time value from state #14904
    • Fixed creeping vehicle approach to oncoming pedestrian on shared space #14920
    • Fixed invalid busStop id in warning "aborted waiting at busStop" #14929
    • Fixed emergency braking at pedestrian crossings #14939
    • Fixed emergency braking at pedestrian crossing in subsecond simulation #14928
    • Fixed emergency braking for right-turning traffic at prioritized pedestrian crossing #14952
    • Fixed emergency braking due to unsafe insertion speed #14941
    • Fixed unsafe insertion speed before prioritized pedestrian crossing when using --step-method.ballistic. #14951
    • Fixed lane-changing related deadlock around stopped vehicles #14322
    • Fixed crash when parallel routing encounters invalid trips #14963
    • Fixed handling of passed stops after rerouting #14918
    • Fixed crash when using junction-taz in railway simulation #14973
    • Fixed non-deterministic behavior with option --device.rerouting.threads --weights.random-factor #10292
    • Electric vehicles now issues a warning on running out of battery power #14980
    • Fixed crash when loading misconfigured NEMA controller #15001
    • Fixed invalid stopping when loading a route with attribute repeat and a single stop #13639
    • Fixed invalid density in edgedata-output in sublane simulation #15017
    • Fixed invalid behavior by GLOSA device when there are junctions ahead of a traffic light within device.glosa.range #15011
    • Removal of JuPedSim-pedestrians in vanishing area with period < 1 is now working. #14900
    • No more cooperative speed adaptation when setting lcCooperative=-1. #14871
    • Fixed invalid initial blinker for continuous lanechange in lefthand network #15058
    • Now avoiding orthogonal sliding in continuos lane change model with attribute lcMaxSpeedLatStanding="0" #15052
    • GLOSA device now follows intended 3-phase speed trajectory (decel, constant, accel) instead of (decel, accel) #15067
    • Fixed negative emissions with HBEFA4 model #15079
    • Fixed duplicate 'started' and 'ended' values in vehroute-output #15086
    • Fixed invalid taxi state when receiving a new dispatch while parking #15080
    • Fixed invalid stopping when a route with a single stop uses attribute repeat #13639
    • Fixed invalid rerouting one edge with change prohibitions #15098
    • Fixed collision in roundabout in network without internal links #15100
    • Fixed invalid GLOSA behavior when loading multiple programs for a traffic light #15139
    • Fixed crash during portion working #15165
    • Fixed skipped stop when train is joined by a vehicle on another edge #15166
    • Fixed high memory usage in simulation with chargingStations when not using --chargingstations-output #15238
    • Fixed bug where simulation does not finish with onDemand stop #15263
    • Fixed queue length estimation for laneAreaDetectors of delay_based traffic lights #15247
    • Fixed invalid laneAreaDetector end position checks #15275
    • Fixed bug where vehicle skips stop after waypoint #15293
    • Fixed emergency braking at zipper with low visibilityDistance #15224
    • Fixed bug where parking rerouter does not reroute occupants #15276
    • Fixed crash when using rerouters on vehicles with stops and looped routes #15290
    • Fixed low insertion speed for departSpeed="max" with waypoint #15308
    • Fixed nondeterministic order of constraint trackers in saved state #15406
    • Fixed infinite loop if rerouter interval end < begin #15416
    • Fixed bug where vType-param "device.rerouting.probability" could not be used to prevent rerouting #15288
    • edgeData output now excludes non-driving lanes from laneDensity computation #15383
    • rerouter closingReroute now preserves all existing stops when computing new route #14610
    • Fixed invalid emergency stop message for waypoint at route end #15485
    • Fixed bug where taxi disappears during dispatch #15508
    • Fixed crash when loading state related to rerouting device assignment #15517
    • Now updating via edges when rerouting to an alternative parkingArea #15545
    • StartUpDelay and ActionStepLength can now be used together #14229
    • StartUpDelay now works with small timesteps and IDM #14289
    • Fixed crash when using taxi with pre-booking and ride sharing #15385
  • netconvert
    • Fixed crash when guessing ramps #14836 (regression in 1.20.0)
    • Fixed crash when edge removal affects roundabouts defined in OSM. #14930 (regression in 1.20.0)
    • OSM: fixed invalid bus permission on tram line #15301 (regression in 1.20.0)
    • Fixed bad ramp geometry when two ramps overlap #14839
    • Fixed invalid connection with option --ramps.guess if the input defines connections #14833
    • Fixed unsafe waiting position within a junction that conflicts with a pedestrian crossing #14946
    • Fixed invalid NEMA controllers in written network #15023
    • Fixed signal precision, signal lane validity and 0-length edges in xodr output. #15078
    • Fixed ugly junction shape #15103
    • Fixed self overlapping crossing outline shape #15111
    • Crossing parameters are now loaded from plain-xml #15135
    • Fixed double-projection of node and crossing shapes when setting option --proj #15136, #15137
    • Option --railway.signal.guess.by-stops can no longer turn switches into signals #15153
    • Fixed invalid pedestrian infrastructure connections that could cause invalid pedestrian routes #15177, #15183
    • Fixed broken lane shape in opendrive import #15197
    • Matsim import now handles node ids with unusual characters #15196
    • Fixed crash during opendrive import with boundary filter #15243
    • Fixed crash when using tlLayout="alternateOneWay" with crossings #14027
    • Connections from the same edge to the same target edge that cross over each other are now recognized as being in conflict. #15257
  • netedit
    • Polygon context menu functions simplify shape and close shape are working again #14857 (regression in 1.6.0)
    • Custom junction shape polygon now has the correct context menu #14858 (regression in 1.6.0)
    • Fixed crash when attempting to transform person to personFlow #15040 (regression in 1.19.0)
    • Fixed Crash during undo-redo of stops/waypoints over stoppingPlaces #15249 (regression in 1.19.0)
    • Fixed crash when editing person and container types for a selection #15255 (regression in 1.19.0)
    • Fixed junction highlighting on hovering in edge mode #15413 (regression in 1.19.0)
    • Fixed invalid "embededRoute" element in view #15492 (regression in 1.19.0)
    • Vehicle type attribute dialog: guiShape combobox is now working with default vClass #14859 (regression in 1.19.0)
    • Fixed invalid tls link indices #14949 (regression in 1.20.0)
    • Fixed inspecting and selecting elements in data mode #14999 (regression in 1.20.0)
    • Fixed bug where additionals were not saved when saving a NeteditConfig #14739 (regression in 1.20.0)
    • Button "center" in "locate additional" dialog is working again #14986 (regression in 1.20.0)
    • Selecting lanes and edges via context menu is working again #14965 (regression in 1.20.0)
    • Inspected trips show the route again #14964 (regression in 1.20.0)
    • Selection rectangle now considers element locks again. #15010 (regression in 1.20.0)
    • TazRelations can be inspected again #15019 (regression in 1.20.0)
    • Fixed crash when joining edges with crossings #15073 (regression in 1.20.0)
    • Fixed crash when removing junction with crossing in loaded network #15112 (regression in 1.20.0)
    • Additional objects no longer disappear at certain zoom levels #15104 (regression in 1.20.0)
    • Fixed invalid dotted contour around calibrators #15138 (regression in 1.20.0)
    • Fixed click detection to rerouter/vaporizer and stoppingPlace symbols #15280 (regression in 1.20.0)
    • Fixed coloring of selected Persons and containers #15254 (regression in 1.20.0)
    • Fixed crash when creating tranships with different speed #15339 (regression in 1.20.0)
    • Fixed crash related to invalid endOffset #15317 (regression in 1.20.0)
    • Fixed invalid coloring for lane change prohibition #15099 (regression in 1.20.0)
    • Fixed highlighting during POIs and parkingSpace movement #15509, #15512 (regression in 1.20.0)
    • Objects with enabled text rendering (i.e. ID) are always visible at any zoom #15519 (regression in 1.20.0)
    • Fixed crash when using "Replace junction by geometry point" and traffic demand is loaded #14863
    • In inspect mode, the junction contour no longer hides link indices #14948
    • Fixed invalid NEMA controller when changing type from static #15007
    • Fixed invalid junction contour #15002, #14488
    • Fixed crash when loading another network while the traffic light frame has an active traffic light #15004
    • Fixed uncontrolled pedestrian crossings after using 'Clean States' #15047
    • Undo-button becomes instantly active after undoable action #14770
    • Edge context menu function apply edge template now applies to the whole selection #14458
    • Rerouters and VSS without edges or lanes are no longer written #15151
    • Hotkey BACKSPACE now works for taking back a stopping place in person mode #14802
    • Fixed crash when replacing junction by geometry point #15233
    • edgeData attribute writeAttributes is now written correctly #15273
    • Fixed error creating POI over lanes #15042
    • Can now parse sumocfg with human readable times #15267
    • Fixed problem when setting stopOffsetException in multiple edges #15297
    • Fixed crash when replacing junction by geometry point in network with person trips #15286
    • Fixed containers creation on top of an existing plan #15344
    • Can now select/inspect/delete person stops clicking over sign #15350
    • Fixed crash recomputing network with volatile recomputing and loaded vehicles #15356
    • Can now create rides with only one edge #15361
    • Fixed clicking Person/container plans over TAZs #15363
    • Fixed crash trying to move persons over TAZ #15365
    • Fixed crash joining junctions with crossings #15328
    • Fixed loss of TAZ edges after recomputing with volatile options #15401
    • Stop attribute parking now takes effect when set in Stop mode #15439
    • Crossings are now preserved when converting a junction to a roundabout #15231
    • Hotkey ESC now aborts creation of edgeRelation #15228
    • Right click over geometry point now opens edge context menu #15322
    • Fixed invalid "Cursor position in view" values in contextual menu for E2 multilane detectors #15064
    • Fixed crash changing type inspecting multiple containers #14081
    • Persons and container may now use any kind of stopping place #12384
    • Target highlighting in person and container modes now works when mouse is over another person / container #14803
    • Fixed slow-down when loading many polygons #14600
    • Fixed junction merging with active grid #15483
    • Can now load laneAreaDetector defined with endPos #14683
    • Copy template now copies the changeLeft/changeRight attributes #15507
    • Contour of non-filled polygons is now reset after moving #15541
    • Fixed crash when attempting to create a joined NEMA controller #15547
    • Fixed lefthand drawing of additional elements #15566
  • sumo-gui
    • Reloading now works if SUMO_HOME is not set #14830 (regression in 1.15.0)
    • Fixed glitch when drawing carriages on edges with custom length. #15075 (regression in 1.17.0)
    • Fixed crash when saving view settings to registry #14909 (regression in 1.19.0)
    • Fixed bad menu spacing and tiny icons when using display scaling on windows (i.e. for high-pixel-count displays) #14882
    • Fixed translation-related crashes where code relied on hard coded english menu entries. #14710
    • Fixed placement of chargingStation and ParkingArea symbol in lefthand networks #14744, #14959, #15110
    • Fixed invalid angle for infrastructure text label in lefthand networks #14743, #14955
    • Fixed invalid scaling of aircraft when zoomed out #14899
    • "Set breakpoint" can no longer cause a crash when no network is loaded #15003
    • Message window "time link" is now working for vehicle-person-collision warning #14931
    • Fixed crash on right-click in "color edge by inclination" mode #14856
    • Fixed invalid lateral placement of wide busStops and containerStops #15089
    • Fixed invalid rotation of articulated vehicles when parked #15168
    • Improved clickable message log in translated GUI #14759
    • Added warning if breakpoint file does not exist #3424
    • Fixed centering on riding person when vehicle exaggeration is active #15397
    • Fixed inconsistent rendering of walkingarea shape depending on zoom #15424
  • meso
    • Fixed invalid segment properties when an edge does not allow passenger cars #15020
    • Fixed invalid laneData when using option --meso-multi-queue #15093
  • TraCI
    • Fixed ignored calls to vehicle.changeTarget and vehicle.setRoute after calling vehicle.moveToXY. #15123 (regression in 1.13.0)
    • Fixed handling of large time input values #14793
    • Fixed crash when trying to call traci.vehicle.dispatchTaxi for an undeparted vehicle #15016
    • Fixed invalid error when constructing a new TraCILogic with libsumo #15164
    • traci.simulation.findIntermodalRoute can now be used to find taxi mode routes #15172
    • traci.vehicle.getNextTLS now works for parking vehicles #15181
    • Fixed crash when calling vehicle.getDrivingDistance2D in meso #15404
    • vehicle.getLeader retrieval now works beyond 3000m if subsequent edges have only 1 lane (i.e. for railways) #15418
    • subscribeContext when used without varIDs now uses the default attributes of the target domain. #15430
    • vehicle.getLanePosition is now working for a parked vehicle #15450
    • Setting stop parameter "expected" now works #15486
    • Setting speedFactor now works for walking stages added with appendStage and appendWalkingStage #15518, #15527
  • tools
    • osmGet.py: Fixed error downloading data from servers that do not provide gzipped data. #15105 (regression in 1.20.0)
    • sumolib.net.readNet now works with old versions of lxml and pathlib.Path arguments #15422 (regression in 1.20.0)
    • generateParkingAreaRerouters.py : No longer fails if there are more than parkingAreas in the input file #14880
    • traceExporter.py: fixed inconsistent trj-output #14925
    • matsim_importPlans.py: now properly quotes all parameters to ensure that the output is valid XML #14988
    • mapDetectors.py: No longer writes invalid lane pos #15117
    • createScreenshotSequence.py: Now works with the same key frame settings in a row #15352

Enhancements#

  • sumo
    • Improved speed of writing xml output by 60% #14994, #8905
    • Added time stamp to E3 warnings #14870
    • personInfo now writes actual stage depart times instead of desired depart #14886
    • added option --max-num-persons to delay person insertion above a given threshold. #14884
    • A warning is now given when starting more persons in a vehicle than it's personCapacity permits #14752
    • Persons and containers now support vType attribute boardingFactor which gets multiplied with the boarding- or loadingDuration of the vehicle. #14869
    • Loaded polygons can be used to influence jupedsim agents #14325
    • PHEMlight5 parameters can now be configured with generic parameters #14285
    • Electric vehicles now support defining variable charge rate #14860
    • The new option --emission-output.attributes can now be used to customize the output #12850
    • Jupedsim pedestrian model now waits at pedestrian crossings #15012
    • EIDM model now has a fixed upper boundary to drivererror-intensity to avoid issues for vehicles with high acceleration. #15066
    • GLOSA device now uses speedFactor to set it's target speed when slowing down to improve interaction with carFollowModels #15067
    • Reduced redundant vClass warnings from taxi device #15090
    • Added extra penalty for turnarounds during routing, configurable with option --weights.turnaround-penalty #4966
    • Individual speedFactor is now adjusted when switching vehicle type (with calibrators, devices or TraCI) #15076
    • Added GLOSA options to increase or reduce safety. #15152
    • Added vType-attribute jmStopSignWait to customize required waiting time at stop sign #15163
    • Actuated traffic lights now support phase attributes earlyTarget="DEFAULT" and finalTarget="DEFAULT". This simplifies combining default switching rules (gap based) with custom conditions #14669
    • chargingStation default power is now 22kW (instead of 0) #15144
    • Added warning for unusual distribution definitions #15146
    • fcd-output now contains the vtype for pedestrians #15210
    • Added option --chargingstations-output.aggregated to write output that is more compact #15240
    • vType attribute jmAllwayStopWait can now be used to customize required waiting time at allwayStop #15428
    • time-to-teleport.disconnected may now be higher than time-to-teleport #15494
    • Stop attribute index can now be used to encode stopping on a later edge of a looped route #15503
    • The battery model now records depletion events in tripinfo output #15529
  • netedit
    • Junctions and edges now have the virtual attribute isRoundabout. This makes it easy to select and find all roundabouts in a network #14865
    • Mode for editing overhead wires now warns about experimental state #14974
    • Using check boxes in submenu now keeps the menu open #15009
    • Loading a single file without options now supports .sumocfg files #15015
    • Add new vClass icons #14646
    • Convert-to-roundabout function now sets roundabout edge properties based on incoming edges #15069
    • Hotkey ESC + SHIFT can be used to clear the selection regardless of editing mode #14481
    • Making person/container plan wider on mouse-over #15337
    • Now Showing junctions while creating person and container plans #15345
    • Added detectPersons to InductionLoop attributes #15515
  • sumo-gui
    • Traffic light dialog for tracking phases can now scroll to see all links #3862
    • Different color schemes are now supported when calibrating colors to the data (recalibrate rainbow) #12483
    • Improved rendering speed on right-click #15035
    • Reduce width of lane parameter dialog (by adding linebreaks) #15051
    • POI attribute width can now be used to configure POI size (in m) #15444
  • meso
    • vType attribute jmTimeGapMinor is now considered when running with option --meso-junction-control #15171
    • depart and arrival lanes are now part of tripinfo output #7680
  • netconvert
    • OSM import now supports distances and speeds with units (i.e. feet, knots) #14885
    • OSM import now warns if ways, nodes or relations are out of order #14892
    • OSM import now handles trolleybus routes #14932
    • Shapefile import now respects option --default.spreadtype #14984
    • Added option --geometry.max-angle.fix for removing sharp angles within edge #15221
    • Added option --default.connection.cont-pos to change the default internal junction position (or disable internal junctions) #13642
  • marouter
    • Loaded trip attributes (i.e. departLane and departSpeed) are now preserved #15049
  • duarouter
    • Added extra penalty for turnarounds during routing, configurable with option --weights.turnaround-penalty #4966
  • traci
    • The new sumo option --keep-after-arrival TIME keeps vehicle objects in memory for a configurable time after their arrival. This makes it possible to retrieve properties of their trip. #9891
    • Fixed missing leader/follower information in lanechange output after forced change. #14912
    • chargingStation attributes can now be modified #12772
    • Added functions edge.getBidiEdge and lane.getBidiLane #15186
    • Added functions getMass and setMass to the vehicle, person and vehicletype domains #15258
    • Added person stages now support all stopping places and not only busStops #15281
    • Meso simulation now supports functions vehicle.getSegmentIndex and vehicle.getSegmentID #14681
    • Meso simulation with option --meso-lane-queue now supports vehicle.getLaneIndex #15341
  • tools
    • plotXMLAttributes.py: can now use special attribute @FILE to simplify plotting of multiple files where each file provides one value #14843
    • plotXMLAttributes.py: added option --robust-parser which handles files without linebreak after each element #15340
    • gtfs2pt.py: Now warns if no valid GTFS inside the network boundaries has been found #14876
    • addStops2Routes.py: Can now create waypoints by setting option --speed. #14895
    • traceExporter.py now supports options -c and -C for loading and saving configuration files #14934
    • generateRailSignalConstraints.py: Added missing constraint for parking vehicles with 'ended' value. #14609
    • generateRailSignalConstraints.py: Added option --abort-unordered.keep-actual which keeps stops after a detected overtaking as valid if they have started/ended values #15065
    • generateRailSignalConstraints.py: Added option --all-inactive for setting all constraints as inactive #15312
    • createVehTypeDistribution.py: now automatically writes speedDev when only speedFactor is defined by the user to avoid a wider distribution than may be expected #15025
    • mapDetectors.py: Option --max-radius can now be used to configure maximum mapping radius #15118
    • mapDetectors.py: Can now handle CSV with BOM #15116
    • net2geojson.py: can now optionally include numLanes and speed as properties #15109
    • distributeChargingStations.py: this is a new tool for adding chargingStations to a network with parkingAreas #14667

Miscellaneous#

  • configuration file root elements are now application-specific #7700
  • Unknown vehicle classes are now ignored by sumo to ensure upwards compatibility when adding classes in the future. Netconvert and duarouter support this behavior by setting option --ignore-errors #14993
  • Saving config files now handles environment variables as absolute path #15022
  • sumolib.checkBinary now finds sumo binaries installed via pip #14982
  • SUMO game language switch is now working in the downloadable zip #13440
  • Fixed broken images in game-cross scenario #15083
  • DEFAULT_CONTAINERTYPE now uses vClass container #15092
  • parkingArea default roadsideCapacity is 1 (instead of 0) if no space definitions are given #15264
  • plotting tools can now handle Matplotlib versions suffix like ".post1" #15372
  • Fixed invalid characters in documentation command examples #15441
  • Fixed inconsistent argument name in libsumo function Vehicle.moveTo #15304
  • A warning is now given when trying to use carFollowModel EIDM with actionSteps #15557

Version 1.20.0 (07.05.2024)#

Bugfixes#

  • sumo
    • Fixed inconsistent edgeData and laneData emissions. #14209
    • Fixed crash with SSM device and incomplete routes. #14201
    • Fixed invalid handling of jumps after stopping twice in the same spot. #14324
    • Teleported vehicles are no longer moved onto restricted lanes. Issue #14168
    • Speeds imposed by variable speed signs (VSS) or TraCI now take precedence of vClass-restricted speeds (this was said to be fixed in 1.19 but didn't work) #13652
    • Fixed crash when using --lateral-resolution with --no-internal-links #14460
    • chargingstations-output no longer records charging when battery is full #14473
    • Fixed undefined behavior during opposite direction driving #14475
    • Fixed crash when loading NEMA controller with pedestrian crossings. #14474
    • NEMA controller now warns about missing green phase #14502
    • Fixed bug where person enters the wrong vehicle on looped public transport line #14526
    • Routes with jumps now support attribute repeat #14549
    • Fixed crash when a person plan contains walks or personTrips where origin equals destination #14558
    • Fixed invalid insertion after jump #14578
    • Fixed emergency braking in roundabout. #14587
    • traffic light detectors no longer assume having seen a vehicle on step before the simulation started #14590
    • Removed unneeded warning when a person uses a vehicular connection #14619
    • Fixed invalid departSpeed for IDM in subsecond simulation #14621
    • Fixed invalid traffic demand when defining poisson flows with rate below 0.001 #14664
    • Fixed crash when loading person stages without a person (now writes an error) #14654
    • Fixed xsd validation error for router interval with human-readable time #14728
    • HBEFA4 electric vehicles can now recuperate #14764
    • A warning is now given when loading a disconnected walk #14779
    • When simulating a disconnected walk, the walking direction is now correct after passing the disconnected part #14780
    • Fixed invalid pedestrian jam warning #14796
    • Taxi
      • Fixed problem with --device.taxi.idle-algorithm taxistand when the destination is unreachable. #14115
      • Taxi reservations from the same busStop are now grouped if the dispatcher permits it #14612
      • Fixed bug where simulation hangs #14821
      • Fixed bug where taxi exits the simulation prematurely #14819
      • Fixed invalid taxi pickup time estimation from busStop #14822
    • Railways
      • Fixed trains getting stuck on reversal due to routing failure. #14332 (also affects duarouter)
      • Inserting vehicle with depart="split" now works on short edges. #14359
      • fixed collision during portion working when train route continues after join. #14350
      • Rail signals now permit train joins where the front is joined to the rear part. #14349
      • Fixed invalid rail signal warnings for looped route with jumps #14554
  • netedit
    • Fixed invalid warning when creating poiGeo #14425 (regression in 1.9.0)
    • Lane markings are rendered below the junction bubble again #14417 (regression in 1.12.0)
    • The unsupported attribute "lines" is no longer written for a personTrip #14463 (regression in 1.15.0)
    • Fixed crash on undo #14702 (regression in 1.15.0)
    • Fixed invalid "save" dialog after loading additionals from file. #14464 (regression in 1.16.0)
    • The size and position of the settings dialog are now stored across sessions. #14571 (regression in 1.16.0)
    • Fixed missing connections after adding edge #14391 (regression in 1.19.0)
    • Alt+Hotkeys for menus are working again #14396 (regression in 1.19.0)
    • Fixed superfluous scrollbars in combo boxes #14412 (regression in 1.19.0)
    • Fixed numerical errors in poisson flow rate #14648 (regression in 1.19.0)
    • Fixed crash when loading vTypeDistribution #14733 (regression in 1.19.0)
    • Fixed invalid default lane permissions when writing a <laneClosingReroute> #14348
    • Tool plot_trajectories.py is now usable. #14147
    • "copy type" now also copies vehicle class #14444
    • Fixed crash when trying to define ride between busStops #14462
    • Fixed use of python tools involving space in paths #14469
    • Fixed saving of python tool config involving space in paths #14506
    • Fixed invalid state of save-sumoconfig button after changing option #14581
    • Saving traffic light programs to a file now writes all attributes #14674
    • Custom connection permissions can now be reset #14723
    • Fixed bad signal plan after applying 'join junctions' to part of a joined traffic light #14797
    • Fixed person mode bug where it was impossible to define a new person on a short that already had a person on it #14801
  • netcovert
    • Fixed crash when importing incomplete OSM data #14766 (regression in 1.15.0)
    • Signal state sequences (green-yellow-green) is no longer generated. #14295
    • Roundabouts defined explicitly in OSM now have correct right-of-way regardless of geometry. #13970
    • Fixed problems related to option --dlr-navteq-output. #14071
    • Option --junctions.minimal-shape now persists when re-processing the network. #14375
    • Fixed invalid permissions in OSM import of ferry routes. #14362
    • Fixed crash when importing Vissim Network with unusual geometry. #14413
    • Prevented writing an invalid network when aborting with an error #14470
    • NEMA junctions now stays consistent on recompute #14491
    • NEMA junctions now work correctly with option --tls.group-signals #14440
    • generated NEMA controller now also gives green to pedestrians #14501
    • Fixed crash when processing NEMA junctions with pedestrian crossings #14555
    • Fixed broken junction shapes in 3D network. #10645
    • Edge parameters are no longer lost when using option --geometry.remove. #14517
    • Fixed invalid route in ptline-output. #14534
    • bike lane default width is now applied to both directions in OSM import #14560
    • Fixed missing bus connection in OSM import. #14507
    • Fixed bug where attribute allowed and disallowed were not minimal #14632
    • Large circular network structures are no longer misclassified as roundabout. The size threshold can be configured with option --roundabouts.guess.max-length #14634
    • Motorway ramp building no longer fails when the default IDs for new junctions and edges are already in the network. #14658
    • Fixed invalid walking area shape #14688, #14731
    • Fixed the root causes for "Unequal lengths of bidi lane" warnings #14699
    • OSM: fixed bug when importing cycle lane #14419
    • Preventing oversized junction join #14769
    • Fixed bad node shape #14777
    • Increased available width on large walkingareas (avoids jamming on shared-space) #14800
  • sumo-gui
    • Fixed wrong context menu when clicking on lane in mesosim #14457 (regression in 1.15.0)
    • Fixed positioning of guiShape "scooter". #13691
    • Fixed misleading visualization of single-car vehicle length in draw-rail-carriages mode. #14330
    • Fixed invalid default for edges minSize when loading incomplete gui settings file. #14384
    • Persons are no longer drawn outside the vehicle when drawn as triangle #14433
    • option --write-license from configfile is now respected #14494
    • Fixed visible grid in satellite background image tiles. #14573
    • Fixed bug where the legend name was unreadable on black background #14651
    • Fixed chargingStation power text label position/rotation #14740
  • meso
    • Fixed bug where taxi fails to pick up person on the current segment. #14500
    • traci functions edge.setMaxSpeed and lane.setMaxSpeed now work correctly when increasing speed #14552, #14566
    • Fixed invalid error when personTrips require walking before taxi use #14575
    • Fixed invalid error during intermodal routing #14575
    • Fixed bug where vehicles skip ahead after lane speed update #14593
  • duarouter
    • Fixed xsd validation error when loading walk or stop with geo-coordinates #14426
    • Fixed invalid intermodal route on looped public transport (also affects routing in sumo) #14343
  • od2trips
    • Fixed extremely high running time when loading large TAZ. #14784
  • TraCI
    • Fixed error in trafficlight.setProgramLogic when loading actuated logic with default minDur and maxDur #14741 (regression in 1.12.0)
    • Fixed missing internal lane length in traci.vehicle.getNextTLS. #14246
    • vehicle.setStopParameter now supports "jump" #14441
    • vehicle.setSpeed no longer causes stop at wrong position #14459
    • Fixed result of vehicle.getLeader for junction leaders #14617
    • Fixed invalid behavior after removing a stop with vehicle.replaceStop #14696
    • Fixed invalid traci constant for traffic light type #14736
    • Stops are no longer lost when calling vehicle.changeTarget #14789
    • Fixed crash when calling simulation.loadState with active vehicle highlights #8511
    • Fixed computation of driving distance along a route #14760
    • Fix for wrong lane occupancy calculation when minGap of vehicles is changed #13024
  • Tools
    • osmWebWizard no longer aborts with error if a configured mode has no infrastructure. #14361
    • xml output from edgeDataDiff can now be loaded in netedit and sumo-gui. #14387
    • tileGet.py is able to use mapQuest service again. #14202
    • checkStopOrder.py: Fixed faulty warnings when generating table for multiple locations #14562
    • osmGet.py: Fixed missing building shapes (also affects osmWebWizard.py) #14598
    • Fixed problem locating binary applications on windows. #14676
  • Activitygen: Fixed wrong working hour fallback times. #14344

Enhancements#

  • sumo
    • Added new vClasses: subway, scooter, aircraft, cable_car, wheelchair, drone, container #12335
    • Access elements support pos="doors" to change the algorithm for placing passengers that exit the vehicle. #14336
    • chargingStation now supports attribute "parkingArea". When set, vehicles will only charge after reaching that parkingArea. #13596
    • Persons and containers that continue in a train after split/join no longer incur boarding or loading delay. #14360
    • Added new attribute departPos="splitFront" which causes a train with depart="split" to be created at the front rather than the rear of the original train. #14358
    • vType attribute mass is now used within carFollowModel="Rail". #13055
    • Option --fcd-output.attributes now supports the value 'arrivalDelay' #14447
    • Sumo now allows specifying departure and arrival positions in network or geo-coordinates #2182
    • carFollowModel "Rail" now permits loading custom model curves for traction and resistance #14258
    • speedFactorPremature can now make use of stop parameter "flexArrival" if a reference time other than the scheduled arrival is needed. #14503
    • Using jumps together with 'via' is now supported. #14585
    • Option --weights.tls-penalty now also applies to tls-controlled pedestrian crossings. #14653
    • Option --vehroute-output.cost now applies to routed persons #14655
    • The battery device now supports saving and loading state. #14624
    • Stages generated from <personTrip> now inherit params from the personTrip. #14513
    • Actuated traffic lights are now more flexible when controlling minor links (reduced warnings of type "... has no controlling detector" warnings) #14692
    • It is now possible to set the vehicle routing mode via <param key="device.rerouting.mode" value="..."/> either in the vType or the vehicle/trip/flow. Setting it to value of 8 lets a vehicle ignore rerouter-induced permission changes on insertion and rerouting. The default routing mode for all vehicles can be set with option --device.rerouting.mode (even for vehicles that do not have such a device). #13494, #14815
    • A personFlow with depart="triggered" can now be distributed over a flow of vehicles #14806
    • vTypes and parkingAreas now support attribute 'parkingBadges' to control access #14482
    • personInfo (in tripinfo-output) now include data that aggregates over all stages of the plan #14823
    • tranship to stopping place other than containerStop can now be defined #15399
  • netedit
    • Now sidewalk and bikelane width can be edited in create edge mode. #9725
    • Added new netedit option --ignore-missing-inputs. #12395
    • Add color legend in person and container modes. #13139
    • Now netedit checks if repeated routes are valid before saving. #13503
    • Disable stopOffsetException row if stopOffset is 0. #14065
    • Improved rendering speed for large networks. #13894
    • Added red contour to moved elements. #14109
    • The maximum number of rows for a combo box can now be configured in the gui settings (persistent across sessions) #14412
    • Added option for selective hiding of short edges when zoomed out (enabled by default to increase frame rate) #14487
    • POIs and polygons now support "show-cursor position / geo-position" in the context menu #14812
  • sumo-gui
    • Hotkey B now sets a breakpoint at the current time. Alt+B ahead of the current time. #10400
    • Train visualization param locomotiveLength now supports value 0, to prevent rendering of a locomotive. #14351
    • The new train visualization param carriageImages accepts a comma-separated list of image files to enable distinct images for the different carriages. #14403
    • Reduced exaggerated size of long vehicles (i.e. trains) when zoomed out. Issue #14423
    • Reduced the number of bike markings being rendered to increase realism and reduce clutter. #14545
    • Airways now have their own default color #14813
    • Added more information to stop info in vehicle parameter dialog #15395
  • netconvert
    • Edge widths are now imported from OSM. The new option --ignore-widths can be used to restore legacy behavior. #4392
    • Added option -junctions.endpoint-shape to compute the junction shape based on custom edge endpoints instead of the usual geometry heuristics. #14341
    • Option --output.street-names is now enabled by default if --shapefile.name is set. #14399
    • OSM import now support importing restricted turn lane information (i.e. turn:bus:lanes) #14476
    • More rail signals are imported from OSM and option --osm.railsignals can be used for fine grained control of signal interpretation. #14483
    • Rail signal direction is now imported from OSM #14512
    • Option --keep-edges.postload now applies to permission and speed based edge filters. This is useful when these values are updated with patches or public transport processing. #14528
    • Loaded ptLine period can now be patched by loading the same id in ptline-files #14586
    • OSM import now exports subways as vClass "subway" and aerialway as "cable_car" #14644
    • Now importing access="no" from OSM #14650
    • Improved now shape computation to allow more slanted stop lines #14778
    • OSM import now distinguishes barrier crossings from no-barrier rail crossings #14786
  • polyconvert
    • Option --osm.merge-relations now handles "holes" #14599
    • Improved import of waterbodies and harbours #14597
  • duarouter
    • Added support for loading ride with geo-coordinates #14427
    • When writing person stops, the stopping place name is now written as a comment. #14521
    • Added option --weights.tls-penalty to improve reliability of travel time. #14653
  • TraCI / libsumo
    • person-stage attributes travelTime now reflects the spent time for the current stage. #11838
    • Function vehicle.replaceStop(..., teleport=1) is now usable without enabling teleports (by using a "jump" to move the vehicle) #14438, #14468
    • inductionloop.getIntervalOccupancy, getIntervalMeanSpeed and getIntervalVehicleNumber are now retrievable in meso #7492
    • TocDevice openGap parameters can now be set via vehicle.setParameter #14582
    • in mesosim, lane.setMaxSpeed now only affects a single queue when running with --meso-lane-queue #14589
    • Added functions edge.getFromJunction, edge.getToJunction, junction.getIncomingEdges, junction.getOutgoingEdges to query the network topology. #14490
    • The routing mode value ROUTING_MODE_INGNORE_TRANSIENT_PERMISSIONS can now be used to ignore temporary permission changes from rerouters. #14205
    • Added function trafficlight.getSpentDuration #14400
    • trafficlight.getParameter(tlsID, "typeName") now retrieves traffic light type #14737
  • Tools
    • added createScreenshotSequence.py to help with creating videos from a simulation with scripted view movements. #14060
    • tileGet.py supports downloading rendered tiles from OSM. #14241
    • added sumolib.net.node.getMaxTLLinkIndex #14373
    • gtfs2pt.py nows support human-readable times output using option -H. #11192
    • matsim_importPlans.py now supports loading input with coordinates #14422
    • plot_trajectories.py now supports meso fcd when setting option --meso. #14592
    • sumolib.net now supports getVersion to retrieve the network version #14636
    • osmWebWizard now takes into account traffic lights for intermodal routing to avoid persons missing their ride #14653
    • osmWebWizard now runs with option --tls.actuated.jam-threshold 30 to improve the capabilities (and efficiency) of traffic lights #14580
    • Added tools/visualization/plotWKT.py for plotting WKT files
    • ptlines2flows.py supports option --join to concatenate lines which serve opposite directions. This reduces conflict on single-track rail lines #5320
    • sumolib.shapes.polygon now supports more attributes. #5429
    • Added tool net/buildFullGraph.py to help with building point-to-point aerial mobility #14811
    • Added tool net/patchVClasses.py for downgrading new networks to be used with older SUMO versions and for manipulating permissions in general. #14798

Miscellaneous#

  • Numerical access restrictions for routing are now documented. #14370
  • Fixed inconsistent documentation for jumps #14316
  • The "build" directory has been renamed to "build_config" to allow "build" to be used for build outputs.
  • Plexe now supports platoon-aware lane change logic #14809, #14395
  • Added 6 new configuration files for the MMPEVEM model. #14499
  • The battery device now uses param "rotatingMass" instead of "internalMomentOfInertia". The old value has been deprecated. The default value was changed to improve realism. #12513, #13422
  • The network now contains outline shapes for pedestrian crossings #11668
  • stop-output has slightly reordered attributes to easier see the busStop-id without horizontal scrolling #14542
  • extractTest.py now works for netdiff.py tests #14725
  • duarouter: adapted Gawron default values to make them consistent with duaIterate.py. #14772