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