Fixed invalid stop position at busStop when a vehicle became blocked while the stop was occupied #16270 (regression in 1.6.0)
Fixed crash when using rail signal on shared lane #16219 (regression in 1.22.0)
Fixed invalid waitingTime in personinfo output #16164
Fixed failure to overtake two parallel stopped leaders #16232
Fixed invalid error when departing with fixed speed and large offset from best lane #16244
Taxi no longer disappear via teleporting in a jam. They will never teleport while they are on their final drop-off edge. #16268
Fixed bug where taxi fails to drive after picking up passenger #16271
Verbose output now accounts for discarded persons #16261
Verbose output now prints correct number of running persons when setting option --tripinfo-output.write-unfinished#16281
The number of loaded vehicles is no longer impacted by temporary vehicles used during intermodal routing #16259
Fixed oscillating speed during zipper merging #16146
Fixed invalid bestLaneOffset when an edge has usable lanes divided by forbidden lanes. This could result in invalid departure errors #16287
Fixed crash after lane change with E3 detector using detectPersons="car"#16296
Ensured simulation terminates when using LC2013 with sublane model #16297
Fixed crash when using option --device.rerouting.threads with option --weights.random-factor and rerouters #16347
Fixed treatment of stationfinder device parameter checkEnergyForRoute#16380
Fixed collision due to unsafe lane changing ahead of a zipper merge #16305
Fixed duplicate collision output when using --collision-action warn#16397
Fixed misclassification of some frontal-collisions as normal (rear-end) collision #16398
Fixed invalid formula for coasting deceleration in case of steep inclines #16309
Fixed invalid rail behavior after rerouting #16431
Fixed blocked lane changes on a junctionsvehicle on junction #16443
Fixed deadlock between vehicle and pedestrian on walkingarea #16458
The electric vehicle model now honors engine shuttoff via params shutOffStopDuration and shutOffAutoDuration#16341
JuPedSim-pedestrians now take into account traffic lights when walking against the direction of the edge. #16313
SSM device: fixed unhelpful error message on invalid device.ssm.exclude-conflict-types#16511
SSM device: fixed problems with indirect left turn #16519
Fixed bug where right-turning vehicle ignores bicycle on indirect left turn #16520
Option --ignore-junction-blocker now longer triggers junction collisions #16525
Stops in flows are now correctly handled when saving and loading state #16527
Fixed invalid behavior when rerouter closes multiple lanes or edges with different permissions in the same interval #13846
Fixed rare crash on loading rail simulation with internal links #16532
netedit
Restored functionality for setting custom geometry point by entering values #16179 (regression in 1.20.0)
Improved visibility of internal junction markers on connections #16485 (regression in 1.20.0)
Move mode with elevation checkbox active now shows elevation numbers again when zoomed out #16236 (regression in 1.20.0)
Fixed missing edge colors when defining person walk #16461 (regression in 1.21.0)
Fixed overly large endpoint markers in move mode #16266 (regression in 1.22.0)
Fixed crash when TL controlled junction overlaps with another uncontrolled one #16483 (regression in 1.22.0)
Fixed invalid connections after using reset connections#16127
Saving demand that was loaded from a sumocfg in multiple route files is now working #14805
Fixed handling of special vType params for visualizing rail carriages #16334
Fixed nvalid geometry of person plans that end in a stopLane #15355
Fixed invalid geometry of person plan from stoppingPlace to stoppingPlace #15348
Fixed crash after deleting edges with opposite-lane information #16500
sumo-gui
Fixed rendering of rail carriages when scaled by length/geometry #16425
Visualization option scale length with geometry now works for rail carriages and allows rendering with unscaled length #11576
netconvert
Fixed unsafe program transition from 'G' to 'g' #16289 (regression in 1.20.0)
Fixed invalid link state when straight connection passes a crossing after internal junction #16167
Option --bikelanes.guess no longer impacts loaded connection attributes #16196
Fixed invalid right of way rules / junction type when shared tram lanes crosses another tram line #16215
Fixed bug where stops loaded with option --ptstop-files were renamed #16220
failure to map elevation to a network with z-data #16235
Fixed invalid connections when using option --osm.turn-lanes#13586
Fixed invalid bus connections when guessing #16291
Fixed invalid right-of-way rules at traffic lights with uncommon phase layouts. #16338
Fixed missing signalID params in OpenDRIVE import #16403
Fixed crash when using option --join-tram-dist#16393
Fixed bug where option --edges.join-tram-dist didn't join enough #16408
Fixed nan value in generated network when loading connections with custom length value and length-0 geometry #16441
Fixed invalid right of way with respect to left-turns from the oncoming direction at junctiop type left_before_right#16480
Fixed invalid internal lane shape when importin OpenDRIVE #16482
Fixed invalid ptline-output when running with option --ptstop-output.no-bidi#16534
Option --ptline-clean-up now cleans up more stops #16540
durarouter
Fixed invalid route output when loading invalid routes with stops and setting option --ignore-errors#16365
Improved error message when loading --astar.landmark-distances together with taz #16400
Fixed crash when loading restriction-params with taz #16514
TraCI
Setting vehicle parameter 'lcContRight' is now working #16147
Fixed bug where traci.vehicle.moveToXY matched onto the wrong internal lane #15282
Fixed bug where vehicle.slowDown require and additional simulation step to reach the taget speed and vehicle.setAcceleration was achieving the wrong acceleration #7361
Fixed invalid active person count after person removal #16192
person.removeStage now works for a taxi-driving stage if the taxi is already en route to pick-up #11620
Subscription to lane.getAngle is now working #16360
Subscriptions to methods with additional parameters now work in libsumo #16383
Function edge.subscribeContext now correctly collects vehicles at low dist regardless of lane number #16422
Function vehicle.getLeader no longer contains traffic that crosses the path of the ego vehicle (without ever becoming a leader) #13842
Tools
sumolib.net.lane.getClosestLanePosAndDist now gives correct results when lane length differs from shape length #16269
sumolib.xml no properly escapes special characters when generating xml #16318
gtfs2pt.py: Fixed problem that caused invalid routes to be written #16336
gtfs2pt.py: Fixed invalid stop placement on disallowed lane #16352
gtfs2pt.py: Now warning about input that provokes negative stop-until times #16322
route2sel.py: Fixed crash when loading flow/trip that references a route id #16395
randomTrips.py: Fixed inconsistent behavior of option --verbose#11861
departPos=stop now works for any departLane on the stop edge #16133
Pedestrians are now included in full output #16159
Added stop attribute jumpUntil to set a minimum time for the end of a jump #16153
Tram insertion automatically uses moving-block mode when there are no rail signals for tram in the network #16208
Taxis that transfer passengers at a busStop now register at that stop. This shows up in --stop-output. #16263
Road slope is now used in HBEFA computation #16307
Rerouting device now supports <param key="ignoreDest" value="1"/> to support rerouting to any parkingArea regardless of visibility or occupancy of the current destination. One use case is to control to idle-algorithm for finding the next taxi stand#16387
The --full-output now includes vehicle road slope (in degrees) in networks with elevation data #16389
Collisions that happen as the direct result of lane-changing are now distinguished as "side"-collisions in errors and --collision-output#16396
The warning "bus stop too short" no longer occurs if a stop fills the whole length of it's lane or if it's parkingLength is set to a sufficiently high value #16391
Zipper junctions with an arbitrary number of conflicting connections are now supported #11874
Electric vehicle model parameter constantPowerIntake is no longer affected by propulsionEfficiency or recuperationEfficiency#16463
vType attribute jmTimegapMinor may now be negative to provoke collisions #16478
person plan element <stop> now supports attribute jump. When this is set a person may jump between subsequent stops at different locations, taking the configured time to do so #6325
Signal plans where a phase loops back onto itself with no alternative next phase now raise a warning #16487
Emergency vehicles may now perform opposite overtaking of queues even when the downstream edge has no opposite edge #16499
collision-output now writes network coordindates of the front and rear of the involved vehicles #16509
SSM device parameter "write-na" can be used to disable conflict information where all values are n/a#16513
netedit
Each object now tracks the file from which it was loaded to facilitate working with projects where multiple route- or additional-files are used #12430
Now drawing cyan dotted contour around object with open popup menu #16344
In delete mode, hovering over a junction will highlight all edges that would be deleted when deleting the junction #14114
Selection of rerouter edges now uses improved highlight and permits toggling of edges #16430
netconvert
Added option --junctions.join.parallel-threshold DEGREES to increase user control over joining junctions (with --junctions.join) #16140
Added option --osm.annotate-defaults to document whether speed and lane number were based on OSM data or typemap default values #16094
Trams now use safe and efficient zipper merging where possible when no tram rail signals are defined. Option ** --railway.signal.permit-unsignalized** can be used to configure other vClasses that are subject to this behavior #16216
Improved visibility of guishape evehicle (The large black part now takes on a darker version of the vehicle color) #16262
Color settings dialog now features 'recalibrate rainbow' controls for dynamic vehicle coloring schemes #16384
od2trips
Added warning when a taz has no source or sinks #16112
TracI
vehicle.setSpeedMode now supports a 7th bit to control adherence to the road speed limit #3811
traci.start now supports argument traceGetters="print". When this is set, the generated traceFile will print the outputs of all get commands when replayed. #16156
Added lanearea functions getIntervalMeanTimeLoss and getLastIntervalMeanTimeLoss#16311
Added function domainID to all domains. This can be used as the target domain in subscribeContext#16418
Tools
randomTrips.py: When option --validate is set, the generated amount of vehicles is guaranteed (by replacing invalid trips with new valid trips) #8843
netcheck.py: Added option --right-of-way to find selected cases of faulty right-of-way rules (currently only on-ramps are check) #16036
jtcrouter.py: Added option --additional-files which are passed to jtrrouter#16191
csv2xml.py: Added option --flat to convert arbitrary csv files without a schema #16204
plotXMLAttributes.py: Added option --xstr and --ystr to force data interpretation as category #16205
sumolib: function xml.parse is now useful when loading nested elements and not providing argument element_names. The new attribute outputLevel (default 1) controls which elements to retrieve #16211
sumolib: Objects loaded with function xml.parse now preserve their attribute order when serialized with toXML#16254
remap_additionals.py: convert infrastructure from one network to another network (which may differ in geometry, lanes and edge splits) #16206
remap_renamed.py: convert route files and additional files after renaming network ids (i.e. with --numerical-ids) #16252
remap_network.py: New tool for finding correspondence between networks based on geometry #16409
ptlines2flows.py: now sorts written routes and flows by id #16222
ptlines2flows.py: now safely handles missing edges #16293 -
gtfs2pt.py: now supports option --merged-csv for loading transit schedule data from a single file and option --merged-csv-output for creating such a file from GTFS input. #16310
gtfs2pt.py: now supports option --patched-stops to customize stop-to-lane assignment for individual stops #10720
gtfs2pt.py: now supports option --stops for giving a list of candidate stop edges to guide mapping. This can can greatly improve running time #16326
gtfs2pt.py: improved running time through caching #15856
gtfs2pt.py: now supports option --bus-parking to make buses clear the road when stopping #16415
gtfs2pt.py: added option --write-terminals to include vehicle <params>s that describe the known terminal stops of the full route (even if only part of the route is used) #16154
net2geojson.py: option --traffic-lights can now be used to include the shapes of traffic signals #16419
scaleRoutes.py: now uses a non-constant default timeline #16469
Fixed crash when route contains internal edge #15667
Fixed invalid error when using jump after stopping twice on the same edge #15635
Fixed invalid value of diagnostic param 'caccVehicleMode' when using carFollowModel CACC#15682
Fixed invalid speedErr computation for carFollowModel CACC#15683
Actuated traffic light that use the next attribute to skip phases now work correctly if the targeted green phase serves no traffic but leads to a subsequent phase which does #15716
Fixed invalid approach speed at allway_stop when setting lane-stopOffset #15449
Fixed crash when using stop with coordinates and option --mapmatch.junctions#15740
Fixed emergency braking at allway_stop in subsecond simulation #15728
Configuring number of doors now takes effect for JuPedSim #15562
Fixed collision between vehicles and pedestrians involving lanes of different widths #15770
Fixed train collision in network without rail signals #15797
Pedestrians no longer walk onto rail_crossing at yellow #15808
Selection mode function 'select parents' now selects incoming and outgoing lane of selected connections #15968
Fixed invalid weights loading values of TAZ source/sinks #16037
Fixed "freezing" when handling very large TAZ #15844
Fixed bug when saving toolcfg where the tool uses positional arguments #16075
Reloading a demand file now raises warnings rather than errors #16027
Deleting one edge no longer removes crossings from other edges #16017
Fixed selecting TAZ edges with a small selection #16100
Command line options --new -o OUTPUT_FILE is now working together. #14989
sumo-gui
Fixed framerate drop when zoomed in very far #15666
Fixed missing elements in settings dialog when switching to another viewing scheme while the dialog is open #15637
Hotkey ALT no longer has the effect of rendering all POIs and polygons at layer 0. Instead, the layer can be customized in the settings dialog #15558
Fixed invalid breakpoints when clicking time stamps on messages in meso #15780
Fixed invalid travel time when computing pedestrian reachability in a non-pedestrian network #15792
Fixed invalid travel times when computing pedestrian and bicycle reachability #15793
Saving and loading of meso edge scaling scheme is now working #15902
edgedata-file parsing no longer aborts after encountering a single non-numerical attribute #15903
The rainbow colorscheme is now properly stored in gui settings #16080
netconvert
Fixed invalid extra connections from edge where input specifies "no connections" #15944 (regression in 1.2.0)
Fixed invalid sign of geo-coordinate offset in OpenDRIVE input and output #15624
Fixed bug where right-of-way rules could create deadlock at a traffic light #15150
Fixed bug when removing narrow lanes during import #15718
No longer generating invalid signal plan when giving invalid argument --tls.green.time#15719
Fixed invalid linkState for left turns from the major road at junction type allway_stop#15737
Fixed invalid tlLogic after processing net with --keep-edges#15798
No longer building bicycle left turns from a straight-only vehicle lane (starting from a left-turn lane instead) #15943
Fixed invalid handling of negative stop position in ptstop-files #12183
Option --sidewalks.guess.by-permissions no longer puts sidewalks onto paths that are shared between pedestrians and bicycles #16060
OSM: loading typemap osmNetconvertPedestrians.typ.xml no longer puts sidewalks on both sides of oneway streets (i.e. in the middle of a divided road). Legacy behavior can be restored with option --osm.oneway-reverse-sidewalk#16063
OSM: fixed missing vehicle lane where access=yes and busway:right=lane #16061
Added option --chargingstations-output.aggregated.write-unfinished to include still running charging process in charging station output #15677
The new vType attribute lcContRight can be used to configure lane choice at a lane split where all lanes have equal strategic value. #15579
Added option --insertion-checks to set global defaults for vehicle attribute insertionChecks#15149
Added option --pedestrian.striping.jamfactor to configure the speed of jammed pedestrians (default 0.25) #15610
GLOSA Device now looks several phases into the future and can also take queues into account #15614
Added new vType attributes jmAdvance and jmExtraGap to configure the behavior on junctions for crossing and merging streams of traffic #15654
Added new attribute jmStopLineGapMinor to set the distance from the stop line at non-prioritized links #15442
vType attriubte jmStopLineGap now applies to allway_stop #15448
Added new vType attribute lcStrategicLookahead for configuring the lookahead distance when computing strategic best lanes #14718
Added new vType attribute lcSpeedGainRemainTime which controls the minimum time a vehicle can drive on the new lane after a tactical lane change (formerly hard-coded to 20s) #12109
Added new insertion behavior departLane="best_prob" to increase throughput on multi-lane roads #15661
Stationfinder device now supports state saving and loading #15607
Traffic lights now supports the special value offset="begin" which lets the logic start in cycle-second 0 regardless of simulation begin time #15248
Traffic lights of type actuated can now use the next attribute to switch into fixed-duration phases (and the corresponding lanes will obtain detectors to trigger the switch) #15714
Traffic lights of type actuated can now react to a pedestrian crossing #1746
The new option --railsignal.max-block-length can be used to customized the threshold for warnings / driveway truncation #15819
The new option --railsignal-vehicle-output can be used to record entry and exit times of vehicles into signal blocks #14990
The new option --time-to-teleport.railsignal-deadlock can be used to detect signal based deadlocks #15561
The new option --time-to-teleport.remove-constraint can be used to resolve detected deadlocks which are caused by a signal constraint by deactivating a responsible constraint #14543
The new option --deadlock-output can be use to log detected deadlocks and also their method of resolution
Logged deadlocks can be loaded as additional file to prevent them in a subsequent simulation #15569
A warning is given for unreasonable combinations of --time-to-teleport options #15816
netedit
Additional output now writes chargingStation after parkingArea elements #15628
Removed "invert edges" from GNECrossingFrame #15129
Undo-redo functionality can now optionally be disabled to improve operational speed #15663
Undo-redo functionality can now be temporary disabled while loading a file to improve loading speed #15668
street-sign-output now sets the sign angle corresponding to road geometry #15671
Traffic lights now supports the special value offset="begin" which lets the logic start in cycle-second 0 regardless of simulation begin time #15248
Actuated pedestrian crossings are now actuated by pedestrians rather than vehicles #7637
Pedestrian crossings created by option --crossings.guess are now given priority. The old behavior can be obtained by setting option --crossings.guess.roundabout-priority false#15833
Option --plain-output-prefix now also saves a .netccfg-file for rebuilding the network from plain-xml files #12998
Improved geometry of pedestrian crossings when a footpath crosses a road #15975
Removed warning about sharp angles on service roads #16062
routeStats.py: Added option --edges-file for counting the number of times per route that a specific edge (i.e. a counting) location was passed) #15900
routeSampler.py: Added option --verbose.timing to print wall-clock-time performance statistics #15910
routeSampler.py: Major increase in processing speed for long routes #15911
routeSampler.py: Added option --depart-distribution to distribute departures within the counting data intervals #15909
routeSampler.py: now warn about duplicate counting data #15997
routeSampler.py: now includes GEH in mismatch-output #16000
routeSampler.py: Added option --geh-scale to permit custom scaling for GEH value (i.e. to avoid averaging daily counts over 24 hours) #16001
routeSampler.py: Options that set attributse to parse (i.e. --edgedata-attribute) now support a list of comma separated attributes (values are added) #16020
routeSampler.py: Added option --init-input.remove-overflow to downsample demand from a given route file where traffic exceeds counts (and keeping as many of the routes as possible) #15971
edgeDataDiff.py: Added option --geh-scale to permit custom scaling for GEH value and otherwise scaling data to hourly values automatically #16002
edgeDataDiff.py: Added option --attributes to allow comparing files with differing attribute names #15898
xml2csv.py: Added option --keep-attributes to limit the attributes exported to csv #15915
plotXMLAttributes.py: Added options --split-x and --split-y for plotting attributes with list values #15934
sumolib: Geometry helper functions for rotation at offset is now available #15445
duaIterate.py: When loading trips with taz or junction-taz, vehicles may change their depart and arrival edge in each iteration #15983
filterDistricts.py: New options --remove-ids and --remove-ids-file allow filtering out explicit edges #16038
countEdgeUsage.py: Now issues a warning when encountering attributes fromJunction or toJunction #15804
countEdgeUsage.py: print output on number loaded / filtered routes when option --verbose is set #16040
countEdgeUsage.py: New option --subpart.via allow filtering subparts with gaps (i.e. via edges) #16041
netdiff.py: Modified file extension for generated polygons to simplify file filtering in netedit #16042
poly2edgedata.py: Added new tool to transform traffic data from polygons (i.e. from geojson) to edgedata (i.e. for routeSampler.py) #16051
edgesInDistrict.py: now supports .xml.gz inputs #16066
edgeDepartDelay.py: New tool for edge-wise analysis of departDelay from tripinfo-output #16021
geoTrip2POI.py: New for visualizing geoTrips #16028
duaIterate_routeCosts.py: New tool to analyze route choice in a finished duaIterate run in an interactive manner #15912
Added analysis on the effects of attribute departLane on insertion capacity.
Fixed compatibility issues with Ubuntu 24 affecting geo-projections #15618
Option --device.rerouting.railsignal is now inactive by default #15597
If a turning movement has more than one lane and may wait within the intersection, the lanes after the internal junction are now joined into the same internal edge #14776
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
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
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 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
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
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
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
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
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
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