ECLIPSE(1)
π ECLIPSE(1) β the group chat version π
okay bestie, buckle up, this is the manual page for ECLIPSE, and it is long. we're doing this in parts. iykyk. π¦
β¨ NAME β¨
Eclipse β a microscopic, multi-modal traffic simulation. yes, microscopic. yes, multi-modal. she contains multitudes, periodt. π
π SYNOPSIS π
sumo [OPTION]*
literally just run it with whichever options you want, no cap.
π DESCRIPTION π
Eclipse SUMO β sumo 1.27.1
Copyright (C) 2001-2026 German Aerospace Center (DLR) and others; https://sumo.dlr.de
A microscopic, multi-modal traffic simulation. that's the whole vibe. π¦ππ²πΆ
βοΈ Configuration Options βοΈ
like, the settings settings. how you tell her where to read from and where to dump stuff. πΈ
-c,--configuration-fileFILE β loads the named config on startup. your lil startup recipe.-C,--save-configurationFILE β saves the current configuration into FILE. so she remembers what you two did. π«Ά--save-configuration.relativeβ enforce relative paths when saving the configuration. keeps things cute and portable.--save-templateFILE β saves a configuration template (empty) into FILE. a blank lil canvas, iconic.--save-schemaFILE β saves the configuration schema into FILE.--save-commentedβ adds comments to the saved template, configuration, or schema. so future you isn't confused, bestie.
π₯ Input Options π₯
where all the data comes in. the reading era.
-n,--net-fileFILE β load the road network description from FILE. this is the actual map, the bones of it all. πΊοΈ-r,--route-filesFILE β load route descriptions from FILE(s). plural, she can take many.-a,--additional-filesFILE β load further descriptions from FILE(s). the extras.-w,--weight-filesFILE β load edge/lane weights for online rerouting from FILE.-x,--weight-attributeSTR β name of the xml attribute which gives the edge weight.--load-stateFILE β loads a network state from FILE. mid-scene entry, main character energy.--load-state.offsetTIME β shifts all times loaded from a saved state by the given offset.--load-state.remove-vehiclesSTR[] β removes vehicles with the given IDs from the loaded state. bye babes. π--junction-tazβ initialize a TAZ for every junction, to use the attributestoJunctionandfromJunction.
π€ Output Options π€
okay this is the big one. everything she can spit out at you. hydrate. π§
--write-licenseβ include license info into every output file. receipts, legally.--write-metadataβ write parsable metadata (configuration etc.) instead of comments.--output-prefixSTR β prefix applied to all output files. the special string'TIME'gets replaced by the current time. β¨--output-suffixSTR β suffix applied to all output files. also swaps'TIME'for the current time.--precisionINT β how many digits after the comma for floating point output.--precision.geoINT β how many digits after the comma for lon,lat output.--output.compressionSTR β defines the standard compression algorithm (currently only for parquet output).--output.formatSTR β defines the standard output format if it can't be derived from the file name ('xml','csv','parquet').--output.column-headerSTR β how to derive column headers from attribute names ('none','tag','auto','plain').--output.column-separatorSTR β the separator used in CSV output.-H,--human-readable-timeβ write time values ashour:minute:secondorday:hour:minute:secondrather than seconds. she's being nice to your eyeballs.--netstate-dumpFILE β save complete network states into FILE.--netstate-dump.empty-edgesβ write also empty edges completely when dumping. don't skip the quiet ones.--netstate-dump.precisionINT β write positions and speeds with the given precision (default 2).--emission-outputFILE β save the emission values of each vehicle.--emission-output.precisionINT β write emission values with the given precision (default 2).--emission-output.geoβ save the positions in emission output using geo-coordinates (lon/lat).--emission-output.step-scaledβ write emission values scaled to the step length rather than as per-second values.--emission-output.attributesSTR[] β list attributes that should be included in the emission output.--battery-outputFILE β save the battery values of each vehicle. π--battery-output.precisionINT β write battery values with the given precision (default 2).--elechybrid-outputFILE β save the elecHybrid values of each vehicle.--elechybrid-output.precisionINT β write elecHybrid values with the given precision (default 2).--elechybrid-output.aggregatedβ write elecHybrid values into one aggregated file.--chargingstations-outputFILE β write data of charging stations.--chargingstations-output.aggregatedβ write aggregated charging event data instead of single time steps.--chargingstations-output.aggregated.write-unfinishedβ write aggregated charging event data for vehicles which have not arrived at simulation end.--overheadwiresegments-outputFILE β write data of overhead wire segments.--substations-outputFILE β write data of electrical substation stations.--substations-output.precisionINT β write substation values with the given precision (default 2).--fcd-outputFILE β save the Floating Car Data.--fcd-output.geoβ save the Floating Car Data using geo-coordinates (lon/lat).--fcd-output.utmβ save the Floating Car Data using utm/unshifted coordinates (x/y).--fcd-output.signalsβ add the vehicle signal state to the FCD output (brake lights etc.).--fcd-output.distanceβ add kilometrage to the FCD output (linear referencing).--fcd-output.accelerationβ add acceleration to the FCD output.--fcd-output.speed-relativeβ add relative speed (vehicle speed / edge speed limit) to the FCD output.--fcd-output.max-leader-distanceFLOAT β add leader vehicle information to the FCD output (within the given distance).--fcd-output.paramsSTR[] β add generic parameter values to the FCD output.--fcd-output.filter-edges.input-fileFILE β restrict fcd output to the edge selection from the given input file.--fcd-output.attributesSTR[] β list attributes that should be included in the FCD output.--fcd-output.filter-shapesSTR[] β list shape names that should be used to filter the FCD output.--fcd-output.skip-emptyβ do not save data for time steps which have no vehicles / transportables. silence, we love her.--person-fcd-outputFILE β save fcd for persons and container to a separate FILE.--device.ssm.filter-edges.input-fileFILE β restrict SSM device output to the edge selection from the given input file.--full-outputFILE β save a lot of information for each timestep (very redundant). she's an over-sharer, we stan. π--queue-outputFILE β save the vehicle queues at the junctions (experimental).--queue-output.periodTIME β save vehicle queues with the given period.--vtk-outputFILE β save complete vehicle positions inclusive speed values in the VTK format (usage:/path/outwill produce/path/out_$TIMESTEP$.vtpfiles).--amitran-outputFILE β save the vehicle trajectories in the Amitran format.--summary-outputFILE β save aggregated vehicle departure info into FILE.--summary-output.periodTIME β save summary-output with the given period.--person-summary-outputFILE β save aggregated person counts into FILE.--tripinfo-outputFILE β save single vehicle trip info into FILE.--tripinfo-output.write-unfinishedβ write tripinfo output for vehicles which have not arrived at simulation end.--tripinfo-output.write-undepartedβ write tripinfo output for vehicles which have not departed at simulation end because of depart delay.--personinfo-outputFILE β save personinfo and containerinfo to a separate FILE.--vehroute-outputFILE β save single vehicle route info into FILE.--vehroute-output.exit-timesβ write the exit times for all edges.--vehroute-output.last-routeβ write the last route only.--vehroute-output.sortedβ sorts the output by departure time.--vehroute-output.duaβ write the output in the duarouter alternatives style.--vehroute-output.costβ write costs for all routes.--vehroute-output.intended-departβ write the output with the intended instead of the real departure time.--vehroute-output.route-lengthβ include total route length in the output.--vehroute-output.write-unfinishedβ write vehroute output for vehicles which have not arrived at simulation end.--vehroute-output.skip-ptlinesβ skip vehroute output for public transport vehicles.--vehroute-output.incompleteβ include invalid routes and route stubs in vehroute output.--vehroute-output.stop-edgesβ include information about edges between stops.--vehroute-output.speedfactorβ write the vehicle speedFactor (defaults to'true'if departSpeed is written).--vehroute-output.internalβ include internal edges in the output.--personroute-outputFILE β save person and container routes to a separate FILE.--link-outputFILE β save link states into FILE.--railsignal-block-outputFILE β save railsignal-blocks into FILE.--railsignal-vehicle-outputFILE β record entry and exit times of vehicles for railsignal blocks into FILE.--bt-outputFILE β save bluetooth visibilities into FILE (in conjunction withdevice.btreceiveranddevice.btsender).--lanechange-outputFILE β record lane changes and their motivations for all vehicles into FILE.--lanechange-output.startedβ record start of lane change manoeuvres.--lanechange-output.endedβ record end of lane change manoeuvres.--lanechange-output.xyβ record coordinates of lane change manoeuvres.--stop-outputFILE β record stops and loading/unloading of passenger and containers for all vehicles into FILE.--stop-output.write-unfinishedβ write stop output for stops which have not ended at simulation end.--collision-outputFILE β write collision information into FILE. π--edgedata-outputFILE β write aggregated traffic statistics for all edges into FILE.--lanedata-outputFILE β write aggregated traffic statistics for all lanes into FILE.--statistic-outputFILE β write overall statistics into FILE.--deadlock-outputFILE β write reports on deadlocks into FILE.--save-state.timesSTR[] β useTIME[]as the times at which a network state gets written.--save-state.periodTIME β save state repeatedly after the TIME period.--save-state.period.keepINT β keep only the last INT periodic state files.--save-state.prefixFILE β prefix for network states.
okay bestie that's the config + input + output stack, and there's more coming, so don't go anywhere. π
--save-state.suffixSTR β okay so this sets the suffix for network states, bestie, and the vibe is either.xml.gzor.xml. β¨--save-state.filesFILE β tells it whichFILEs to use for network states. π--save-state.rngβ saves random number generator states. The RNG gets its own little snapshot, periodt. π²--save-state.transportablesβ saves person and container states. Heads up: this one is experimental, so it's giving handle-with-care energy, fr fr. π«Ά--save-state.constraintsβ saves rail signal constraints. π¦--save-state.precisionINT β writes internal state values with the given precision (default is2). π
β° Time Options β°
-b,--beginTIME β defines the begin time in seconds; the simulation starts at this time. β°-e,--endTIME β defines the end time in seconds; the simulation ends at this time. π--step-lengthTIME β defines the step duration in seconds. π
π οΈ Processing Options π οΈ
--step-method.ballisticβ whether to use ballistic method for the positional update of vehicles (default is a semi-implicit Euler method). Physics bestie moment. π--extrapolate-departposβ whether vehicles that depart between simulation steps should extrapolate the depart position. π--threadsINT β defines the number of threads for parallel simulation. Parallel besties, assemble. π―--lateral-resolutionFLOAT β defines the resolution in m when handling lateral positioning within a lane (with-1all vehicles drive at the center of their lane. π£οΈ-s,--route-stepsTIME β load routes for the next number of seconds ahead. πΊοΈ--no-internal-linksβ disable (junction) internal links. π§--ignore-junction-blockerTIME β ignore vehicles which block the junction after they have been standing forSECONDS(-1means never ignore). π«--ignore-route-errorsβ do not check whether routes are connected. π--ignore-accidentsβ do not check whether accidents occur. π₯--collision.actionSTR β how to deal with collisions:[none,warn,teleport,remove]. π--intermodal-collision.actionSTR β how to deal with collisions between vehicle and pedestrian:[none,warn,teleport,remove]. πΆ--collision.stoptimeTIME β let vehicle stop forTIMEbefore performingcollision.action(except for action'none'). βΈοΈ--intermodal-collision.stoptimeTIME β let vehicle stop forTIMEbefore performingintermodal-collision.action(except for action'none'). π--collision.check-junctionsβ enables collisions checks on junctions. π¦--collision.check-junctions.mingapFLOAT β increase or decrease sensitivity for junction collision check. π--collision.mingap-factorFLOAT β sets the fraction ofminGapthat must be maintained to avoid collision detection. If a negative value is given, thecarFollowModelparameter is used. π--keep-after-arrivalTIME β after a vehicle arrives, keep it in memory for the givenTIME(for TraCI access). π§--max-num-vehiclesINT β delay vehicle insertion to stay within the given maximum number. π--max-num-personsINT β delay person insertion to stay within the given maximum number. πΆ--max-num-teleportsINT β abort the simulation if the given maximum number of teleports is exceeded. π--scaleFLOAT β scale demand by the given factor (by discarding or duplicating vehicles). βοΈ--scale-suffixSTR β suffix to be added when creating ids for cloned vehicles. π·οΈ--time-to-teleportTIME β specify how long a vehicle may wait until being teleported, defaults to300, non-positive values disable teleporting. β³--time-to-teleport.highwaysTIME β the waiting time after which vehicles on a fast road (speed >69km/h) are teleported if they are on a non-continuing lane. π£οΈ--time-to-teleport.highways.min-speedFLOAT β the waiting time after which vehicles on a fast road (default: speed >69km/h) are teleported if they are on a non-continuing lane. π--time-to-teleport.disconnectedTIME β the waiting time after which vehicles with a disconnected route are teleported. Negative values disable teleporting. π§--time-to-teleport.removeβ whether vehicles shall be removed after waiting too long instead of being teleported. ποΈ--time-to-teleport.remove-constraintβ whether rail-signal-constraint based deadlocks shall be cleared by removing a constraint. π¦--time-to-teleport.rideTIME β the waiting time after which persons / containers waiting for a pickup are teleported. Negative values disable teleporting. πΊ--time-to-teleport.bidiTIME β the waiting time after which vehicles on bidirectional edges are teleported. π--time-to-teleport.railsignal-deadlockTIME β the waiting time after which vehicles in a rail-signal based deadlock are teleported. π--waiting-time-memoryTIME β length of time interval, over which accumulated waiting time is taken into account (default is100s.). β±οΈ--startup-wait-thresholdTIME β minimum consecutive waiting time before applyingstartupDelay. π--max-depart-delayTIME β how long vehicles wait for departure before being skipped, defaults to-1which means vehicles are never skipped. π¦--sloppy-insertβ whether insertion on an edge shall not be repeated in same step once failed. π«--eager-insertβ whether each vehicle is checked separately for insertion on an edge. ποΈ--emergency-insertβ allow inserting a vehicle in a situation which requires emergency braking. π¨--insertion-checksSTR β override default value for vehicle attributeinsertionChecks. π§--random-depart-offsetTIME β each vehicle receives a random offset to its depart value drawn uniformly from[0, TIME]. π²--lanechange.durationTIME β duration of a lane change maneuver (default0). π--lanechange.overtake-rightβ whether overtaking on the right on motorways is permitted. π--tls.all-offβ switches off all traffic lights. π¦--tls.actuated.show-detectorsβ sets default visibility for actuation detectors. π--tls.actuated.jam-thresholdFLOAT β sets default jam-threshold parameter for all actuation detectors. π--tls.actuated.detector-lengthFLOAT β sets default detector length parameter for all actuation detectors. π--tls.delay_based.detector-rangeFLOAT β sets default range for detecting delayed vehicles. π‘--tls.yellow.min-decelFLOAT β minimum deceleration when braking at yellow. π‘--railsignal-moving-blockβ let railsignals operate in moving-block mode by default. π--railsignal.moving-block.default-classesSTR[] β list vehicle classes that default to moving-block operations. π--railsignal.moving-block.max-distFLOAT β maximum signal distance above which zipper conflicts are ignored. π--railsignal.max-block-lengthFLOAT β do not build blocks longer thanFLOATand issue a warning instead. β οΈ--railsignal.default-classesSTR[] β list vehicle classes that uses block-based insertion checks even when the network has no rail signals for them. π¦--time-to-impatienceTIME β specify how long a vehicle may wait until impatience grows from0to1, defaults to300, non-positive values disable impatience growth. π€--default.departspeedSTR β select default depart speed. π--default.departlaneSTR β select default depart lane. π£οΈ--default.action-step-lengthFLOAT β length of the default interval length between action points for the car-following and lane-change models (in seconds). If not specified, the simulation step-length is used per default. Vehicle- or VType-specific settings override the default. Must be a multiple of the simulation step-length. β±οΈ--default.carfollowmodelSTR β select default car following model (Krauss,IDM, ...). π--default.speeddevFLOAT β select default speed deviation. A negative value implies vClass specific defaults (0.1for the default passenger class). ποΈ--default.emergencydecelSTR β select defaultemergencyDecelvalue among ('decel','default',FLOAT) which sets the value either to the same as the deceleration value, a vClass-class specific default or the givenFLOATinm/s^2. π--overhead-wire.solverβ use Kirchhoff's laws for solving overhead wire circuit. β‘--overhead-wire.recuperationβ enable recuperation from the vehicle equipped withelecHybriddevice into the overhead wire. π--overhead-wire.substation-current-limitsβ enable current limits of traction substation during solving the overhead wire electrical circuit. β‘--emergencydecel.warning-thresholdFLOAT β sets the fraction of emergency decel capability that must be used to trigger a warning. β οΈ--parking.maneuverβ whether parking simulation includes maneuvering time and associated lane blocking. π ΏοΈ--use-stop-endedβ override stop until times with stop ended times when given. βΉοΈ--use-stop-startedβ override stop arrival times with stop started times when given. βΆοΈ--pedestrian.modelSTR β select among pedestrian models['nonInteracting', 'striping', 'jupedsim', 'remote']. πΆ--pedestrian.timegap-crossingFLOAT β minimal acceptable gap (in seconds) between two vehicles before starting to cross. πΈ--pedestrian.striping.stripe-widthFLOAT β width of parallel stripes for segmenting a sidewalk (meters) for use with model'striping'. π¦--pedestrian.striping.dawdlingFLOAT β factor for random slow-downs[0,1]for use with model'striping'. π’--pedestrian.striping.mingap-to-vehicleFLOAT β minimal gap / safety buffer (in meters) from a pedestrian to another vehicle for use with model'striping'. π--pedestrian.striping.jamtimeTIME β time in seconds after which pedestrians start squeezing through a jam when using model'striping'(non-positive values disable squeezing). π§--pedestrian.striping.jamtime.crossingTIME β time in seconds after which pedestrians start squeezing through a jam while on a pedestrian crossing when using model'striping'(non-positive values disable squeezing). πΈ--pedestrian.striping.jamtime.narrowTIME β time in seconds after which pedestrians start squeezing through a jam while on a narrow lane when using model'striping'. π§--pedestrian.striping.jamfactorFLOAT β factor for reducing speed of pedestrian in jammed state. π--pedestrian.striping.reserve-oncomingFLOAT β fraction of stripes to reserve for oncoming pedestrians. βοΈ--pedestrian.striping.reserve-oncoming.junctionsFLOAT β what fraction of the stripes we're setting aside for the pedestrians coming the other way, on crossings and walkingareas. sharing is caring bestie π--pedestrian.striping.reserve-oncoming.maxFLOAT β the maximum width, in m, that you'll reserve for those oncoming pedestrians.--pedestrian.striping.legacy-departposlatβ readdepartPosLatfor walks the old-school legacy way, no cap.--pedestrian.striping.walkingarea-detailINT β generate INT intermediate points so the lanes inside the walkingarea get smoothed out. it's giving β¨polishedβ¨.--ride.stop-toleranceFLOAT β the tolerance you apply when matching pedestrian and vehicle positions for boarding at individual stops. gotta line up perfectly π--mapmatch.distanceFLOAT β the farthest distance allowed when you're mapping input coordinates (likefromXYetc.) onto the road network. miss by more than this and it's a no π--mapmatch.junctionsβ match positions to junctions instead of edges, periodt.--mapmatch.tazβ match positions to taz instead of edges. girlboss behaviour π«Ά--weights.turnaround-penaltyFLOAT β slap this time penalty on whenever routing costs get computed for turnaround internal lanes.--weights.reversal-penaltyFLOAT β same energy but for the routing costs of train reversal. heads up: negative values disable reversal entirely, so be careful what you wish for π--persontrip.walk-opposite-factorFLOAT β use FLOAT as a factor on walking speed whenever someone's walking against the direction of vehicle traffic.
β¨ Routing Options β¨
okay this is the part where the routes get chosen and honestly it's the main character of the whole simulation π
--routing-algorithmSTR β pick your fighter from'dijkstra','astar','CH','CHWrapper'.--weights.random-factorFLOAT β edge weights for routing get randomly disturbed, with the factor drawn uniformly from[1,FLOAT). yes it's chaotic, that's the point π--weights.random-factor.dynamicβ when you're using--weights.random-factor, let that randomness vary over time.--weights.minor-penaltyFLOAT β apply this time penalty when computing the minimum routing costs for minor-link internal lanes.--weights.tls-penaltyFLOAT β scaled travel time penalties based on the green split, applied when computing minimum routing costs for internal lanes at traffic lights. traffic lights get their own lil weighting, iconic π¦--weights.priority-factorFLOAT β consider edge priorities on top of travel times, weighted by this factor.--weights.separate-turnsFLOAT β distinguish travel time by turn direction, and shift a fraction of the estimated time loss ahead of the intersection onto the internal edges. it's giving nuance β¨--astar.all-distancesFILE β initialize the astar lookup table from this given file (generated bymarouter --all-pairs-output).--astar.landmark-distancesFILE β initialize the astar ALT-variant lookup table from this given file.--persontrip.walkfactorFLOAT β use FLOAT as a factor on pedestrian maximum speed during intermodal routing.--persontrip.transfer.car-walkSTR[] β where are mode changes from car to walking even allowed? possible values:'parkingAreas','ptStops','allJunctions'and combinations of them.--persontrip.transfer.taxi-walkSTR[] β where taxis can drop off customers ('allJunctions','ptStops','parkingAreas').--persontrip.transfer.walk-taxiSTR[] β where taxis can pick up customers ('allJunctions','ptStops','parkingAreas').--persontrip.default.groupSTR β when you set this, trips going between the same origin and destination will share a taxi by default. carpool core π--persontrip.taxi.waiting-timeTIME β the estimated time it takes for a taxi pickup.--persontrip.ride-public-lineβ only use the intended public transport line, not any alternative line that happens to stop at the destination. loyalty π--railway.max-train-lengthFLOAT β use FLOAT as the maximum train length when initializing the railway router.--replay-reroutingβ replay the exact rerouting sequence from vehroute-output. a little reroute rewind, we love to see it π--device.rerouting.probabilityFLOAT β the probability that a vehicle has a'rerouting'device.--device.rerouting.explicitSTR[] β assign a'rerouting'device to named vehicles.--device.rerouting.deterministicβ the'rerouting'devices get set deterministic using a fraction of 1000.--device.rerouting.periodTIME β the period with which the vehicle shall be rerouted.--device.rerouting.pre-periodTIME β the rerouting period before depart.--device.rerouting.adaptation-weightFLOAT β the weight of prior edge weights for the exponential moving average.--device.rerouting.adaptation-stepsINT β the number of steps for the moving average weight of prior edge weights.--device.rerouting.adaptation-intervalTIME β the interval for updating the edge weights.--device.rerouting.threshold.factorFLOAT β only reroute if the new route is faster than the current route by the given factor.--device.rerouting.threshold.constantTIME β only reroute if the new route is faster than the current route by the given TIME.--device.rerouting.with-tazβ use zones (districts) as routing start and endpoints.--device.rerouting.modeSTR β set routing flags (8ignores temporary blockages).--device.rerouting.init-with-loaded-weightsβ use the weight files you passed with--weight-filesfor initializing edge weights.--device.rerouting.threadsINT β the number of parallel execution threads used for rerouting. multitasking queen π--device.rerouting.synchronizeβ let rerouting happen at the same time for all vehicles.--device.rerouting.railsignalβ allow rerouting triggered by rail signals.--device.rerouting.bike-speedsβ compute separate average speeds for bicycles. bikes deserve their own numbers fr fr π²--device.rerouting.outputFILE β save the adapting weights to FILE.--person-device.rerouting.probabilityFLOAT β the probability that a person has a'rerouting'device.--person-device.rerouting.explicitSTR[] β assign a'rerouting'device to named persons.--person-device.rerouting.deterministicβ the'rerouting'devices get set deterministic using a fraction of 1000.--person-device.rerouting.periodTIME β the period with which the person shall be rerouted.--person-device.rerouting.modeSTR β set routing flags (8ignores temporary blockages).--person-device.rerouting.scopeSTR β which part of the person plan is to be replaced (stage, sequence, or trip).
π Report Options π
the "tell me everything" section, and honestly? we're nosy, we want the tea β
-v,--verboseβ switches to verbose output.--print-optionsβ prints option values before processing.-?,--helpβ prints this screen, or selected topics.-V,--versionβ prints the current version.-X,--xml-validationSTR β set the schema validation scheme for XML inputs ("never","local","auto"or"always").--xml-validation.netSTR β set the schema validation scheme for SUMO network inputs ("never","local","auto"or"always").--xml-validation.routesSTR β set the schema validation scheme for SUMO route inputs ("never","local","auto"or"always").-W,--no-warningsβ disables output of warnings. ignorance is bliss I guess π--aggregate-warningsINT β aggregate warnings of the same type whenever more than INT of them occur.-l,--logFILE β writes all messages to FILE (and yes, this implies verbose).--message-logFILE β writes all non-error messages to FILE (implies verbose too).--error-logFILE β writes all warnings and errors to FILE.--log.timestampsβ writes timestamps in front of all messages.--log.processidβ writes the process ID in front of all messages.--languageSTR β language to use in messages.--duration-log.disableβ disable performance reports for individual simulation steps.-t,--duration-log.statisticsβ enable statistics on vehicle trips. numbers girlies rise π--no-step-logβ disable console output of the current simulation step.--step-log.periodINT β number of simulation steps between step-log outputs.
π«οΈ Emissions Options π«οΈ
vroom vroom but make it measurable π
--emissions.volumetric-fuelβ return fuel consumption values in the (legacy) unitlinstead ofmg.--phemlight-pathFILE β determines where to load PHEMlight definitions from.--phemlight-yearINT β enable fleet age modelling with the given reference year in PHEMlight5.--phemlight-temperatureFLOAT β set the ambient temperature to correct NOx emissions in PHEMlight5.--device.emissions.probabilityFLOAT β the probability for a vehicle to have an'emissions'device.--device.emissions.explicitSTR[] β assign an'emissions'device to named vehicles.--device.emissions.deterministicβ the'emissions'devices are set deterministic using a fraction of 1000.--device.emissions.beginSTR β recording begin time for emission-data.--device.emissions.periodSTR β recording period for emission-output.
π‘ Communication Options π‘
bluetooth device girlies, this one's for you π¦
--device.btreceiver.probabilityFLOAT β the probability for a vehicle to have a'btreceiver'device.--device.btreceiver.explicitSTR[] β assign a'btreceiver'device to named vehicles.--device.btreceiver.deterministicβ the'btreceiver'devices are set deterministic using a fraction of 1000.--device.btreceiver.rangeFLOAT β the range of the bt receiver.--device.btreceiver.all-recognitionsβ whether all recognition points shall be written.--device.btreceiver.offtimeFLOAT β the offtime used for calculating detection probability (in seconds).--device.btsender.probabilityFLOAT β the probability for a vehicle to have a'btsender'device.--device.btsender.explicitSTR[] β assign a'btsender'device to named vehicles.--device.btsender.deterministicβ the'btsender'devices are set deterministic using a fraction of 1000.--person-device.btsender.probabilityFLOAT β the probability for a person to have a'btsender'device.--person-device.btsender.explicitSTR[] β assign a'btsender'device to named persons.--person-device.btsender.deterministicβ the'btsender'devices are set deterministic using a fraction of 1000.--person-device.btreceiver.probabilityFLOAT β the probability for a person to have a'btreceiver'device.--person-device.btreceiver.explicitSTR[] β assign a'btreceiver'device to named persons.--person-device.btreceiver.deterministicβ the'btreceiver'devices are set deterministic using a fraction of 1000.
π Battery Options π
--device.stationfinder.probabilityFLOAT β the probability for a vehicle to have a'stationfinder'device.--device.stationfinder.explicitSTR[] β hand out astationfinderdevice to the vehicles you name, bestie, you pick 'em π--device.stationfinder.deterministicβ makes thestationfinderdevices deterministic by using a fraction of1000β¨--device.stationfinder.rescueTimeTIME β how long to wait for a rescue vehicle at the roadside when the battery's dead π--device.stationfinder.rescueActionSTR β what to do with a vehicle that has to stop because the battery's low:[none, remove, tow]π--device.stationfinder.reserveFactorFLOAT β scale the battery need by this factor so unexpected traffic situations don't catch you off guard π«Ά--device.stationfinder.emptyThresholdFLOAT β the battery percentage at which it goes into rescue mode π--device.stationfinder.radiusTIME β search radius, in travel time seconds β±οΈ--device.stationfinder.maxEuclideanDistanceFLOAT β Euclidean search distance in meters (yes queen, a negative value disables that restriction entirely) π--device.stationfinder.repeatTIME β when to trigger a brand new search if no station has been found π--device.stationfinder.maxChargePowerFLOAT β the max charging speed of the vehicle battery β‘--device.stationfinder.chargeTypeSTR β type of energy transfer π--device.stationfinder.waitForChargeTIME β after this waiting time, the vehicle goes looking for a new station when the first one is blocked π--device.stationfinder.minOpportunityDurationTIME β only stops predicted to last at least this threshold long get considered for opportunistic charging π--device.stationfinder.saturatedChargeLevelFLOAT β the target state of charge after which the vehicle stops charging πΈ--device.stationfinder.needToChargeLevelFLOAT β the state of charge at which the vehicle starts searching for charging stations π--device.stationfinder.opportunisticChargeLevelFLOAT β the state of charge below which the vehicle may hunt for charging opportunities along its planned stops π¦--device.stationfinder.replacePlannedStopFLOAT β the share of stopping time of the next independently planned stop that gets used for charging instead π--device.stationfinder.maxDistanceToReplacedStopFLOAT β max distance in meters from the original stop that can be replaced by the charging stop π--device.stationfinder.chargingStrategySTR β set a charging strategy to alter time and charging load, from the set:[none, balanced, latest]π§--device.stationfinder.checkEnergyForRouteβ only search for charging stations if the battery charge isn't estimated as sufficient to complete the current route π₯--device.battery.probabilityFLOAT β the probability that a vehicle has abatterydevice π--device.battery.explicitSTR[] β assign abatterydevice to named vehicles β¨--device.battery.deterministicβ thebatterydevices get set deterministic using a fraction of1000π«--device.battery.track-fuelβ track fuel consumption for non-electric vehicles β½
π Example Device Options π
--device.example.probabilityFLOAT β the probability for a vehicle to have aexampledevice π--device.example.explicitSTR[] β assign aexampledevice to named vehicles π--device.example.deterministicβ theexampledevices are set deterministic using a fraction of1000β¨--device.example.parameterFLOAT β an exemplary parameter which can be used by every single instance of theexampledevice π
π SSM Device Options π
--device.ssm.probabilityFLOAT β the probability for a vehicle to have assmdevice π¦--device.ssm.explicitSTR[] β assign assmdevice to named vehicles πΈ--device.ssm.deterministicβ thessmdevices are set deterministic using a fraction of1000β--device.ssm.measuresSTR β says which measures get logged (as a space- or comma-separated sequence of IDs in('TTC', 'DRAC', 'PET', 'PPET', 'MDRAC')) π--device.ssm.thresholdsSTR β space- or comma-separated thresholds that correspond to the specified measures (peep the documentation and watch the order!). Only events that exceed the thresholds get logged β οΈ--device.ssm.trajectoriesβ says whether trajectories get logged (if false, only the extremal values and times are reported) π―--device.ssm.rangeFLOAT β the detection range in meters. For vehicles below this distance from the equipped vehicle, SSM values are traced π--device.ssm.extratimeFLOAT β the time in seconds to be logged after a conflict is over. Required>0if PET is to be calculated for crossing conflicts π--device.ssm.mdrac.prtFLOAT β the perception reaction time for MDRAC computation π§--device.ssm.fileSTR β give a global default filename for the SSM output ποΈ--device.ssm.geoβ whether to use coordinates of the original reference system in the output πΊοΈ--device.ssm.write-positionsβ whether to write positions (coordinates) for each timestep π--device.ssm.write-lane-positionsβ whether to write lanes and their positions for each timestep π£οΈ--device.ssm.write-naβ whether to write conflict outputs with no data asNAvalues or just skip it π--device.ssm.exclude-conflict-typesSTR β which conflicts get excluded from the log, based on the conflict type they've been classified as (a combination of values in'ego','foe','', any numerical valid conflict type code). An empty value will log all of them, and'ego'/'foe'refer to a certain conflict type subset π
π ToC Device Options π
--device.toc.probabilityFLOAT β the probability for a vehicle to have atocdevice π--device.toc.explicitSTR[] β assign atocdevice to named vehicles β¨--device.toc.deterministicβ thetocdevices are set deterministic using a fraction of1000π--device.toc.manualTypeSTR β vehicle type for the manual driving regime π--device.toc.automatedTypeSTR β vehicle type for the automated driving regime π€--device.toc.responseTimeFLOAT β average response time a driver needs to take back control β±οΈ--device.toc.recoveryRateFLOAT β recovery rate for the driver's awareness after a ToC π±--device.toc.lcAbstinenceFLOAT β the attention level below which a driver restrains from performing lane changes (value in[0,1]) π«--device.toc.initialAwarenessFLOAT β the average awareness a driver has initially after a ToC (value in[0,1]) π§--device.toc.mrmDecelFLOAT β the deceleration rate applied during a 'minimum risk maneuver' π--device.toc.dynamicToCThresholdFLOAT β the time the vehicle requires to have ahead of it to continue in automated mode. The default value of0means no dynamic triggering of ToCs π--device.toc.dynamicMRMProbabilityFLOAT β the probability that a dynamically triggered TOR is not answered in time β--device.toc.mrmKeepRightβ if true, the vehicle tries to change to the right during an MRM β‘οΈ--device.toc.mrmSafeSpotSTR β if set, the vehicle tries to reach the given named stopping place during an MRM π ΏοΈ--device.toc.mrmSafeSpotDurationFLOAT β how long the vehicle stays at the safe spot after an MRM π--device.toc.maxPreparationAccelFLOAT β the maximal acceleration that may be applied during the ToC preparation phase π--device.toc.ogNewTimeHeadwayFLOAT β timegap for the ToC preparation phase β³--device.toc.ogNewSpaceHeadwayFLOAT β extra spacing for the ToC preparation phase π--device.toc.ogMaxDecelFLOAT β the maximal deceleration applied for establishing the increased gap in the ToC preparation phase π--device.toc.ogChangeRateFLOAT β rate of adaptation towards the increased headway during ToC preparation π--device.toc.useColorSchemeβ whether a coloring scheme shall be applied to indicate the different ToC stages π¨--device.toc.fileSTR β switches on output by specifying an output filename π
π§ Driver State Device Options π§
--device.driverstate.probabilityFLOAT β the probability for a vehicle to have adriverstatedevice π--device.driverstate.explicitSTR[] β assign adriverstatedevice to named vehicles π--device.driverstate.deterministicβ thedriverstatedevices are set deterministic using a fraction of1000β¨--device.driverstate.initialAwarenessFLOAT β the initial value assigned to the driver's awareness π±--device.driverstate.errorTimeScaleCoefficientFLOAT β the time scale for the error process β±οΈ--device.driverstate.errorNoiseIntensityCoefficientFLOAT β the noise intensity driving the error process π--device.driverstate.speedDifferenceErrorCoefficientFLOAT β the general scaling coefficient for applying the error to the perceived speed difference (the error also scales with distance) π--device.driverstate.headwayErrorCoefficientFLOAT β the general scaling coefficient for applying the error to the perceived distance (the error also scales with distance) π--device.driverstate.freeSpeedErrorCoefficientFLOAT β the general scaling coefficient for applying the error to the vehicle's own speed when driving without a leader (the error also scales with own speed) ποΈ--device.driverstate.speedDifferenceChangePerceptionThresholdFLOAT β the base threshold for recognizing changes in the speed difference (the threshold also scales with distance) π--device.driverstate.headwayChangePerceptionThresholdFLOAT β the base threshold for recognizing changes in the headway (the threshold also scales with distance) π--device.driverstate.minAwarenessFLOAT β the minimal admissible value for the driver's awareness π«Ά--device.driverstate.maximalReactionTimeFLOAT β the maximal reaction time (~action step length) induced by a decreased awareness level (it's reached for awareness=minAwareness) β
π¨ Bluelight Device Options π¨
--device.bluelight.probabilityFLOAT β the probability for a vehicle to have abluelightdevice π--device.bluelight.explicitSTR[] β assign abluelightdevice to named vehicles β¨--device.bluelight.deterministicβ thebluelightdevices are set deterministic using a fraction of1000π«--device.bluelight.reactiondistFLOAT β set the distance at which other drivers react to the blue light and siren sound π--device.bluelight.mingapfactorFLOAT β reduce the minGap for reacting vehicles by the given factor π
FCD Device Options: π
--device.fcd.probabilityFLOAT β The probability for a vehicle to have a'fcd'device.--device.fcd.explicitSTR[] β Assign a'fcd'device to named vehicles.--device.fcd.deterministicβ The'fcd'devices are set deterministic using a fraction of 1000.--device.fcd.beginSTR β Recording begin time for FCD-data.--device.fcd.periodSTR β Recording period for FCD-data.--device.fcd.radiusFLOAT β Record objects in a radius around equipped vehicles.--person-device.fcd.probabilityFLOAT β The probability for a person to have a'fcd'device.--person-device.fcd.explicitSTR[] β Assign a'fcd'device to named persons.--person-device.fcd.deterministicβ The'fcd'devices are set deterministic using a fraction of 1000.--person-device.fcd.periodSTR β Recording period for FCD-data.
ElecHybrid Device Options: β‘
--device.elechybrid.probabilityFLOAT β The probability for a vehicle to have a'elechybrid'device.--device.elechybrid.explicitSTR[] β Assign a'elechybrid'device to named vehicles.--device.elechybrid.deterministicβ The'elechybrid'devices are set deterministic using a fraction of 1000.
Taxi Device Options: π
--device.taxi.probabilityFLOAT β The probability for a vehicle to have a'taxi'device.--device.taxi.explicitSTR[] β Assign a'taxi'device to named vehicles.--device.taxi.deterministicβ The'taxi'devices are set deterministic using a fraction of 1000.--device.taxi.dispatch-algorithmSTR β The dispatch algorithm[greedy|greedyClosest|greedyShared|routeExtension|traci].--device.taxi.dispatch-algorithm.outputFILE β Write information from the dispatch algorithm to FILE.--device.taxi.dispatch-algorithm.paramsSTR β Load dispatch algorithm parameters in formatKEY1:VALUE1[,KEY2:VALUE].--device.taxi.dispatch-periodTIME β The period between successive calls to the dispatcher.--device.taxi.dispatch-keep-unreachableTIME β The time before aborting unreachable reservations.--device.taxi.idle-algorithmSTR β The behavior of idle taxis[stop|randomCircling|taxistand].--device.taxi.idle-algorithm.outputFILE β Write information from the idling algorithm to FILE.--device.taxi.vclassesSTR[] β Network permissions that can be accessed by taxis.
GLOSA Device Options: π¦
--device.glosa.probabilityFLOAT β The probability for a vehicle to have a'glosa'device.--device.glosa.explicitSTR[] β Assign a'glosa'device to named vehicles.--device.glosa.deterministicβ The'glosa'devices are set deterministic using a fraction of 1000.--device.glosa.rangeFLOAT β The communication range to the traffic light.--device.glosa.max-speedfactorFLOAT β The maximum speed factor when approaching a green light.--device.glosa.min-speedFLOAT β Minimum speed when coasting towards a red light.--device.glosa.add-switchtimeFLOAT β Additional time the vehicle shall need to reach the intersection after the signal turns green.--device.glosa.use-queueβ Use queue in front of the tls for GLOSA calculation.--device.glosa.override-safetyβ Override safety features - ignore the current light state, always follow GLOSA's predicted state.--device.glosa.ignore-cfmodelβ Vehicles follow a perfect speed calculation - ignore speed calculations from the CF model if not safety critical.
Tripinfo Device Options: π
--device.tripinfo.probabilityFLOAT β The probability for a vehicle to have a'tripinfo'device.--device.tripinfo.explicitSTR[] β Assign a'tripinfo'device to named vehicles.--device.tripinfo.deterministicβ The'tripinfo'devices are set deterministic using a fraction of 1000.
Vehroutes Device Options: π£οΈ
--device.vehroute.probabilityFLOAT β The probability for a vehicle to have a'vehroute'device.--device.vehroute.explicitSTR[] β Assign a'vehroute'device to named vehicles.--device.vehroute.deterministicβ The'vehroute'devices are set deterministic using a fraction of 1000.
Friction Device Options: π§
--device.friction.probabilityFLOAT β The probability for a vehicle to have a'friction'device.--device.friction.explicitSTR[] β Assign a'friction'device to named vehicles.--device.friction.deterministicβ The'friction'devices are set deterministic using a fraction of 1000.--device.friction.stdDevFLOAT β The measurement noise parameter which can be applied to the friction device.--device.friction.offsetFLOAT β The measurement offset parameter which can be applied to the friction device -> e.g. to force false measurements.
FCD Replay Device Options: π
--device.fcd-replay.probabilityFLOAT β The probability for a vehicle to have a'fcd-replay'device.--device.fcd-replay.explicitSTR[] β Assign a'fcd-replay'device to named vehicles.--device.fcd-replay.deterministicβ The'fcd-replay'devices are set deterministic using a fraction of 1000.--device.fcd-replay.fileFILE β FCD file to read.
TraCI Server Options: π₯οΈ
--remote-portINT β Enables TraCI Server if set.--num-clientsINT β Expected number of connecting clients.
Mesoscopic Options: π¬
--mesosimβ Enables mesoscopic simulation.--meso-edgelengthFLOAT β Length of an edge segment in mesoscopic simulation.--meso-tauffTIME β Factor for calculating the net free-free headway time.--meso-taufjTIME β Factor for calculating the net free-jam headway time.--meso-taujfTIME β Factor for calculating the jam-free headway time.--meso-taujjTIME β Factor for calculating the jam-jam headway time.--meso-jam-thresholdFLOAT β Minimum percentage of occupied space to consider a segment jammed. A negative argument causes thresholds to be computed based on edge speed and tauff (default).--meso-multi-queueβ Enable multiple queues at edge ends.--meso-lane-queueβ Enable separate queues for every lane.--meso-ignore-lanes-by-vclassSTR[] β Do not build queues (or reduce capacity) for lanes allowing only the given vclasses.--meso-junction-controlβ Enable mesoscopic traffic light and priority junction handling.--meso-junction-control.limitedβ Enable mesoscopic traffic light and priority junction handling for saturated links. This prevents faulty traffic lights from hindering flow in low-traffic situations.--meso-tls-penaltyFLOAT β Apply scaled travel time penalties when driving across tls controlled junctions based on green split instead of checking actual phases.--meso-tls-flow-penaltyFLOAT β Apply scaled headway penalties when driving across tls controlled junctions based on green split instead of checking actual phases.--meso-minor-penaltyTIME β Apply fixed time penalty when driving across a minor link. When using--meso-junction-control.limited, the penalty is not applied whenever limited control is active.--meso-overtakingβ Enable mesoscopic overtaking.--meso-recheckTIME β Time interval for rechecking insertion into the next segment after failure.--meso-interpolate-posβ Enable mesoscopic position interpolation.
Random Number Options: π²
--randomβ Initialises the random number generator with the current system time.--seedINT β Initialises the random number generator with the given value.--thread-rngsINT β Number of pre-allocated random number generators to ensure repeatable multi-threaded simulations (should be at least the number of threads for repeatable simulations).
GUI Only Options: π¨
-g,--gui-settings-fileFILE β Load visualisation settings from FILE.-Q,--quit-on-endβ Quits the GUI when the simulation stops.-G,--gameβ Start the GUI in gaming mode.--game.modeSTR β Select the game type ('tls','drt').-S,--startβ Start the simulation after loading.-d,--delayFLOAT β Use FLOAT in ms as delay between simulation steps.-B,--breakpointsSTR[] β Use TIME[] as times when the simulation should halt.-m,--edgedata-filesFILE β Load edge/lane weights for visualization from FILE.-N,--alternative-net-fileFILE β Load a secondary road network for abstract visualization from FILE.--selection-fileFILE β Load pre-selected elements from FILE.-D,--demoβ Restart the simulation after ending (demo mode).-T,--disable-texturesβ Do not load background pictures.--registry-viewportβ Load current viewport from registry.--window-sizeSTR[] β Create initial window with the given x,y size.--window-posSTR[] β Create initial window at the given x,y position.--tracker-intervalTIME β The aggregation period for value tracker windows.--osg-viewβ Start with an OpenSceneGraph view instead of the regular 2D view.--gui-testingβ Enable overlay for screen recognition.--gui-testing-debugβ Enable output messages during GUI-Testing.--gui-testing.setting-outputFILE β Save gui settings in the given settings output file.
EXAMPLES π
Here are some examples, bestie:
sumo -b 0 -e 1000 -n net.xml -r routes.xml
start a simulation from time 0 to 1000 with given net and routes
sumo -c munich_config.cfg
start with a configuration file
sumo --help
print help
and that's the tea for now, but we're not done yet π β¨
π REPORTING BUGS π
okay bestie, found something cursed? it happens to everyone, no shame. tell the maintainers! π
- bugs go here: <https://github.com/eclipse-sumo/sumo/issues>
- wanna talk to actual humans instead: <sumo@dlr.de>
fr fr, the devs wanna hear about it. that's how the slay continues β¨
π the build tea β
this is how the binary you're holding was compiled, and it's giving very specific:
Build features: Linux-6.8.0-139-generic x86_64 GNU 15.3.0 None
FMI Proj GUI Intl SWIG Eigen GDAL FFmpeg OSG GL2PS
Copyright (C) 2001-2026 German Aerospace Center (DLR) and others;
https://sumo.dlr.de
FMI, Proj, GUI, Intl, SWIG, Eigen, GDAL, FFmpeg, OSG, GL2PS β that's the whole roster, all present and accounted for π
π the legal bit (iykyk) π
Eclipse SUMO sumo 1.27.1 is part of SUMO. periodt.
this program and the stuff that ships with it? made available under the terms of the Eclipse Public License v2.0 that comes with this distribution β you can also grab it right here:
<https://www.eclipse.org/legal/epl-v20.html>
and ALSO πΈ, when the conditions for that availability set out in the Eclipse Public License 2.0 are satisfied, this program may be made available under these Secondary Licenses: the GNU General Public License, version 2 or later, which lives at
<https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html>
so the SPDX line is exactly this, no notes:
SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
π«Ά two licenses, one absolute icon. do not lose this information, bestie, it's literally the receipts.
and that's the whole page, we ate and left no crumbs π this one's Eclipse SUMO sumo 1.27.1, from August 2026, and you'll find it filed under ECLIPSE(1) β¨ mwah π
π¦ where this page comes from
- ubuntu stonking: sumo 1.27.1+dfsg-1 Β· EPL-2.0 OR GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms