ECLIPSE(1)

โœจ ECLIPSE(1) โœจ

User Commands โ€” no cap, that's the manual section bestie ๐Ÿ’…


๐ŸŒธ NAME ๐ŸŒธ

Eclipse โ€” road network generator for the microscopic traffic simulation SUMO ๐Ÿš—โœจ


๐ŸŽ€ SYNOPSIS ๐ŸŽ€

netgenerate [OPTION]*

๐Ÿฆ‹ DESCRIPTION ๐Ÿฆ‹

okay so. Eclipse SUMO netgenerate 1.27.1 ๐Ÿ’–

Copyright (C) 2001-2026 German Aerospace Center (DLR) and others; https://sumo.dlr.de

This is the synthetic network generator for the microscopic, multi-modal traffic simulation SUMO. It literally just โœจmakes up road networksโœจ for you. Iconic.

๐Ÿšจ bestie listen up: you have to supply one of --grid, --spider or --rand. Not zero of them, not three of them. Pick your fighter.

Depending on which of those switches you pick, other options come into play. iykyk ๐Ÿงš

๐Ÿ’œ Configuration Options:

  • -c, --configuration-file FILE โ€” loads up the named config when it starts, like a little startup treat ๐Ÿ“
  • -C, --save-configuration FILE โ€” saves whatever config you're running right now into FILE
  • --save-configuration.relative โ€” forces relative paths when it saves the configuration (no absolute-path drama)
  • --save-template FILE โ€” saves an empty configuration template into FILE
  • --save-schema FILE โ€” saves the configuration schema into FILE
  • --save-commented โ€” sprinkles comments into whatever you saved โ€” template, configuration, or schema ๐ŸŒˆ

๐Ÿ’– Grid Network Options:

  • -g, --grid โ€” forces NETGEN to build a grid-like network ๐Ÿ™๏ธ
  • --grid.number INT โ€” how many junctions, in both directions
  • --grid.length FLOAT โ€” how long the streets are, in both directions
  • --grid.x-number INT โ€” number of junctions in the x direction; overrides --grid-number ๐Ÿ‘€
  • --grid.y-number INT โ€” number of junctions in the y direction; overrides --grid-number ๐Ÿ‘€
  • --grid.x-length FLOAT โ€” length of the horizontal streets; overrides --grid-length
  • --grid.y-length FLOAT โ€” length of the vertical streets; overrides --grid-length
  • --grid.attach-length FLOAT โ€” length of the streets attached at the boundary; 0 means literally nothing gets attached ๐Ÿšซ
  • --grid.x-attach-length FLOAT โ€” same deal but for streets attached at the boundary in the x direction; 0 means no streets attached
  • --grid.y-attach-length FLOAT โ€” and again for the y direction; 0 means no streets attached

๐Ÿ•ท๏ธ Spider Network Options:

  • -s, --spider โ€” forces NETGEN to build a spider-net-like network ๐Ÿ•ธ๏ธ (yes it's giving arachnid, we love that for us)
  • --spider.arm-number INT โ€” how many axes live inside the net
  • --spider.circle-number INT โ€” how many circles the net has
  • --spider.space-radius FLOAT โ€” the distances between the circles
  • --spider.omit-center โ€” skips the central node of the network entirely, go off king ๐Ÿ‘‘
  • --spider.attach-length FLOAT โ€” length of the streets attached at the boundary; 0 means no streets are attached

๐ŸŽฒ Random Network Options:

  • -r, --rand โ€” forces NETGEN to build a random network ๐ŸŽฐ chaos, but make it infrastructure
  • --rand.iterations INT โ€” describes how many times an edge shall be added to the net
  • --rand.max-distance FLOAT โ€” the maximum distance for each edge
  • --rand.min-distance FLOAT โ€” the minimum distance for each edge
  • --rand.min-angle FLOAT โ€” the minimum angle for each pair of (bidirectional) roads, in DEGREES ๐Ÿ“
  • --rand.num-tries INT โ€” how many tries it gets for creating each node
  • --rand.connectivity FLOAT โ€” the probability for roads to continue at each node
  • --rand.neighbor-dist1 FLOAT โ€” probability for a node having at most 1 neighbor
  • --rand.neighbor-dist2 FLOAT โ€” probability for a node having at most 2 neighbors
  • --rand.neighbor-dist3 FLOAT โ€” probability for a node having at most 3 neighbors
  • --rand.neighbor-dist4 FLOAT โ€” probability for a node having at most 4 neighbors
  • --rand.neighbor-dist5 FLOAT โ€” probability for a node having at most 5 neighbors
  • --rand.neighbor-dist6 FLOAT โ€” probability for a node having at most 6 neighbors
  • --rand.grid โ€” places the nodes on a regular grid with spacing rand.min-distance ๐Ÿ“

๐Ÿ“ฅ Input Options:

  • -t, --type-files FILE โ€” reads edge-type definitions from FILE

๐Ÿ“ค Output Options:

  • --write-license โ€” includes license info in every single output file, we're being responsible today ๐Ÿ’œ
  • --write-metadata โ€” writes parsable metadata (configuration etc.) instead of comments
  • --output-prefix STR โ€” a prefix applied to all output files. The special string TIME gets swapped out for the current time ๐Ÿ•ฐ๏ธ
  • --output-suffix STR โ€” a suffix applied to all output files. The special string TIME gets swapped out for the current time ๐Ÿ•ฐ๏ธ
  • --precision INT โ€” how many digits after the comma for floating point output
  • --precision.geo INT โ€” how many digits after the comma for lon,lat output
  • --output.compression STR โ€” sets the standard compression algorithm (currently only for parquet output)
  • --output.format STR โ€” sets the standard output format when it can't be derived from the file name ('xml', 'csv', 'parquet')
  • --output.column-header STR โ€” how to derive column headers from attribute names ('none', 'tag', 'auto', 'plain')
  • --output.column-separator STR โ€” the separator in CSV output
  • -H, --human-readable-time โ€” write time values as hour:minute:second or day:hour:minute:second instead of seconds ๐Ÿ™Œ so much easier to read fr
  • --alphanumerical-ids โ€” the Ids of generated nodes use an alphanumerical code for easier readability when possible
  • -o, --output-file FILE โ€” the generated net gets written to FILE
  • -p, --plain-output-prefix FILE โ€” prefix of the files that plain xml nodes, edges and connections get written to
  • --plain-output.lanes โ€” write all lanes and their attributes even when they're not customized
  • --junctions.join-output FILE โ€” writes info about joined junctions to FILE (you can load it as an additional node-file to reproduce the joins)
  • --prefix STR โ€” defines a prefix for edge and junction IDs
  • --prefix.junction STR โ€” defines a prefix for junction IDs
  • --prefix.edge STR โ€” defines a prefix for edge IDs
  • --amitran-output FILE โ€” the generated net gets written to FILE using Amitran format
  • --matsim-output FILE โ€” the generated net gets written to FILE using MATSim format
  • --opendrive-output FILE โ€” the generated net gets written to FILE using OpenDRIVE format
  • --dlr-navteq-output FILE โ€” the generated net gets written to dlr-navteq files with the given PREFIX
  • --dlr-navteq.version STR โ€” the dlr-navteq output format version to write
  • --dlr-navteq.precision INT โ€” the network coordinates get written with the specified level of output precision
  • --output.street-names โ€” street names get included in the output (if available)
  • --output.original-names โ€” writes original names, if given, as a parameter
  • --output.removed-nodes โ€” writes the IDs of nodes removed with --geometry.remove into an edge param
  • --street-sign-output FILE โ€” writes street signs as POIs to FILE
  • --opendrive-output.straight-threshold FLOAT โ€” builds parameterized curves whenever the angular change between straight segments exceeds FLOAT degrees

โš™๏ธ Processing Options:

  • --turn-lanes INT โ€” generates INT left-turn lanes โ†ฉ๏ธ
  • --turn-lanes.length FLOAT โ€” sets the length of generated turning lanes to FLOAT
  • --perturb-x STR โ€” applies random spatial perturbation in the x direction according to the given distribution
  • --perturb-y STR โ€” applies random spatial perturbation in the y direction according to the given distribution
  • --perturb-z STR โ€” applies random spatial perturbation in the z direction according to the given distribution
  • --bidi-probability FLOAT โ€” defines the probability of building a reverse edge
  • --random-lanenumber โ€” draws lane numbers randomly from [1,default.lanenumber]
  • --random-priority โ€” draws edge priority randomly from [1,default.priority]
  • --random-type โ€” draws edge type randomly from all loaded types
  • --numerical-ids โ€” remaps alphanumerical IDs of nodes and edges so that all IDs are integers ๐Ÿ”ข
  • --numerical-ids.node-start INT โ€” remaps node IDs to integers starting at INT
  • --numerical-ids.edge-start INT โ€” remaps edge IDs to integers starting at INT
  • --reserved-ids FILE โ€” makes sure generated ids don't include any of the typed IDs from FILE (sumo-gui selection file format)
  • --kept-ids FILE โ€” makes sure objects with typed IDs from FILE (sumo-gui selection file format) don't get renamed ๐Ÿซถ
  • --geometry.split โ€” splits edges across geometry nodes
  • -R, --geometry.remove โ€” replaces nodes that only define edge geometry with geometry points (aka joins edges) โœ‚๏ธ
  • --geometry.remove.keep-edges.explicit STR[] โ€” ensures the given list of edges is not modified
  • --geometry.remove.keep-edges.input-file FILE โ€” ensures the edges in FILE are not modified (each id on a single line; selection files from sumo-gui are also supported)
  • --geometry.remove.min-length FLOAT โ€” allows merging edges with differing attributes when their length is below min-length
  • --geometry.remove.width-tolerance FLOAT โ€” allows merging edges with differing lane widths if the difference is below FLOAT
  • --geometry.remove.max-junction-size FLOAT โ€” prevents removal of junctions with a size above FLOAT as defined by custom edge endpoints
  • --geometry.max-segment-length FLOAT โ€” splits geometry to restrict segment length
  • --geometry.max-grade FLOAT โ€” warns about edge geometries with a grade in % above FLOAT.
  • --geometry.max-grade.fix โ€” smooths edge geometries with a grade above the warning threshold.
  • --offset.disable-normalization โ€” turns off normalizing node positions
  • --offset.x FLOAT โ€” adds FLOAT to net x-positions
  • --offset.y FLOAT โ€” adds FLOAT to net y-positions
  • --offset.z FLOAT โ€” adds FLOAT to net z-positions
  • --flip-y-axis โ€” flips the y-coordinate along zero ๐Ÿ”„
  • --roundabouts.guess โ€” enables roundabout-guessing ๐ŸŽก
  • --roundabouts.guess.max-length FLOAT โ€” structures with a circumference above the FLOAT threshold don't get classified as a roundabout
  • --roundabouts.visibility-distance FLOAT โ€” the default visibility when approaching a roundabout
  • --opposites.guess โ€” enables guessing of opposite direction lanes that are usable for overtaking ๐ŸŽ๏ธ
  • --opposites.guess.fix-lengths โ€” ensures opposite edges have the same length
  • --fringe.guess โ€” enables guessing of network fringe nodes
  • --fringe.guess.speed-threshold FLOAT โ€” bestie, any disconnected edges going faster than this get guessed as outer fringe โœจ
  • --lefthand โ€” assumes left-hand traffic on the network (yes, like the UK, iconic behavior) ๐Ÿ‡ฌ๐Ÿ‡ง
  • --edges.join โ€” merges edges that connect the same nodes and are close to each other. lowkey recommended for VISSIM import ๐Ÿ’…

๐ŸŽ€ Building Defaults Options ๐ŸŽ€

these are the "if nobody told me otherwise" values, and they're doing SO much heavy lifting fr fr

  • -L, --default.lanenumber INT โ€” the default number of lanes in an edge
  • --default.lanewidth FLOAT โ€” the default width of lanes
  • --default.spreadtype STR โ€” the default method for computing lane shapes from edge shapes
  • -S, --default.speed FLOAT โ€” the default speed on an edge (in m/s)
  • --default.friction FLOAT โ€” the default friction on an edge
  • -P, --default.priority INT โ€” the default priority of an edge
  • --default.type STR โ€” the default edge type
  • --default.sidewalk-width FLOAT โ€” the default width of added sidewalks ๐Ÿšถโ™€๏ธ
  • --default.bikelane-width FLOAT โ€” the default width of added bike lanes ๐Ÿšฒ
  • --default.crossing-width FLOAT โ€” the default width of a pedestrian crossing
  • --default.crossing-speed FLOAT โ€” the default speed "limit" on a pedestrian crossing (in m/s)
  • --default.walkingarea-speed FLOAT โ€” the default speed "limit" on a pedestrian walkingarea (in m/s)
  • --default.allow STR โ€” the default for allowed vehicle classes
  • --default.disallow STR โ€” the default for disallowed vehicle classes
  • --default.junctions.keep-clear โ€” whether junctions should be kept clear by default
  • --default.junctions.radius FLOAT โ€” the default turning radius of intersections
  • -j, --default.junctions.type STR โ€” determines default junction type, and the vibes are literally:
[traffic_light|priority|right_before_left|left_before_right|traffic_light_right_on_red|priority_stop|allway_stop|...]

(peep docs/Networks/PlainXML#node_types for the whole lore) ๐Ÿšฆ

  • --default.connection-length FLOAT โ€” the default length when overriding connection lengths
  • --default.connection.cont-pos FLOAT โ€” whether/where connections should have an internal junction
  • --default.right-of-way STR โ€” the default algorithm for computing right of way rules, and your options are 'default' or 'edgePriority'

๐Ÿšฆ TLS Building Options ๐Ÿšฆ

traffic light season, and we are OBSESSED. every single dial you can turn, right here ๐Ÿ‘‘

  • --tls.set STR[] โ€” interprets STR[] as list of junctions to be controlled by TLS
  • --tls.unset STR[] โ€” interprets STR[] as list of junctions to be not controlled by TLS
  • --tls.guess โ€” turns on TLS guessing ๐Ÿ”ฎ
  • --tls.guess.threshold FLOAT โ€” sets minimum value for the sum of all incoming lane speeds when guessing TLS
  • --tls.guess.joining โ€” includes node clusters into guess
  • --tls.join โ€” tries to cluster tls-controlled nodes
  • --tls.join-dist FLOAT โ€” determines the maximal distance for joining traffic lights (defaults to 20)
  • --tls.join-exclude STR[] โ€” interprets STR[] as list of tls ids to exclude from joining
  • --tls.uncontrolled-within โ€” do not control edges that lie fully within a joined traffic light.
โš ๏ธ heads up bestie: this may cause collisions but allows old traffic light plans to be used. like, pick your poison ๐Ÿ’€
  • --tls.ignore-internal-junction-jam โ€” do not build mutually conflicting response matrix, potentially ignoring vehicles that are stuck at an internal junction when their phase has ended
  • --tls.cycle.time INT โ€” use INT as cycle duration
  • --tls.green.time INT โ€” use INT as green phase duration ๐Ÿ’š
  • -D, --tls.yellow.min-decel FLOAT โ€” defines smallest vehicle deceleration
  • --tls.yellow.patch-small โ€” given yellow times are patched even if being too short
  • --tls.yellow.time INT โ€” set INT as fixed time for yellow phase durations ๐Ÿ’›
  • --tls.red.time INT โ€” set INT as fixed time for red phase duration at traffic lights that do not have a conflicting flow โค๏ธ
  • --tls.allred.time INT โ€” set INT as fixed time for intermediate red phase after every switch
  • --tls.minor-left.max-speed FLOAT โ€” use FLOAT as threshold for allowing left-turning vehicles to move in the same phase as oncoming straight-going vehicles
  • --tls.left-green.time INT โ€” use INT as green phase duration for left turns (s). setting this value to 0 disables additional left-turning phases
  • --tls.nema.vehExt INT โ€” set INT as fixed time for intermediate vehext phase after every switch
  • --tls.nema.yellow INT โ€” set INT as fixed time for intermediate NEMA yellow phase after every switch
  • --tls.nema.red INT โ€” set INT as fixed time for intermediate NEMA red phase after every switch
  • --tls.crossing-min.time INT โ€” use INT as minimum green duration for pedestrian crossings (s). ๐Ÿšธ
  • --tls.crossing-clearance.time INT โ€” use INT as clearance time for pedestrian crossings (s).
  • --tls.scramble.time INT โ€” use INT as green phase duration for pedestrian scramble phase (s).
  • --tls.half-offset STR[] โ€” TLSs in STR[] will be shifted by half-phase
  • --tls.quarter-offset STR[] โ€” TLSs in STR[] will be shifted by quarter-phase
  • --tls.default-type STR โ€” TLSs with unspecified type will use STR as their algorithm
  • --tls.layout STR โ€” set phase layout four grouping opposite directions or grouping all movements for one incoming edge, i.e. ['opposites', 'incoming']
  • --tls.no-mixed โ€” avoid phases with green and red signals for different connections from the same lane
  • --tls.min-dur INT โ€” default minimum phase duration for traffic lights with variable phase length
  • --tls.max-dur INT โ€” default maximum phase duration for traffic lights with variable phase length
  • --tls.group-signals โ€” assign the same tls link index to connections that share the same states
  • --tls.ungroup-signals โ€” assign a distinct tls link index to every connection
  • --tls.rebuild โ€” rebuild all traffic light plans in the network ๐Ÿ”จ
  • --tls.discard-simple โ€” does not instantiate traffic lights at geometry-like nodes
  • --railway.signal.permit-unsignalized STR[] โ€” list rail classes that may run without rail signals ๐Ÿš‚

โœ‚๏ธ Edge Removal Options โœ‚๏ธ

when you need to be a little ruthless. it's giving spring cleaning ๐Ÿงน

  • --keep-edges.min-speed FLOAT โ€” only keep edges with speed in meters/second > FLOAT
  • --remove-edges.explicit STR[] โ€” remove edges in STR[]
  • --keep-edges.explicit STR[] โ€” only keep edges in STR[] or those which are kept due to other keep-edges or remove-edges options
  • --keep-edges.input-file FILE โ€” only keep edges in FILE (each id on a single line. selection files from sumo-gui are also supported) or those which are kept due to other keep-edges or remove-edges options
  • --remove-edges.input-file FILE โ€” remove edges in FILE. (each id on a single line. selection files from sumo-gui are also supported)
  • --keep-edges.in-boundary STR[] โ€” only keep edges which are located within the given boundary (given either as CARTESIAN corner coordinates <xmin,ymin,xmax,ymax> or as polygon <x0,y0,x1,y1,...>)
  • --keep-edges.in-geo-boundary STR[] โ€” only keep edges which are located within the given boundary (given either as GEODETIC corner coordinates <lon-min,lat-min,lon-max,lat-max> or as polygon <lon0,lat0,lon1,lat1,...>)
  • --keep-lanes.min-width FLOAT โ€” only keep lanes with width in meters > FLOAT

๐ŸŒˆ Unregulated Nodes Options ๐ŸŒˆ

free-range nodes. no rules, just vibes (but like, controlled vibes) ๐Ÿฆ‹

  • --keep-nodes-unregulated โ€” all nodes will be unregulated
  • --keep-nodes-unregulated.explicit STR[] โ€” do not regulate nodes in STR[]
  • --keep-nodes-unregulated.district-nodes โ€” do not regulate district nodes

๐Ÿ‘‘ Junctions Options ๐Ÿ‘‘

the intersection glow-up section, we love to see it ๐Ÿ’…

  • --junctions.right-before-left.speed-threshold FLOAT โ€” allow building right-before-left junctions when the incoming edge speeds are below FLOAT (m/s)
  • --junctions.left-before-right โ€” build left-before-right junctions instead of right-before-left junctions
  • --no-internal-links โ€” omits internal links
  • --no-turnarounds โ€” disables building turnarounds
  • --no-turnarounds.tls โ€” disables building turnarounds at tls-controlled junctions
  • --no-turnarounds.geometry โ€” disables building turnarounds at geometry-like junctions
  • --no-turnarounds.except-deadend โ€” disables building turnarounds except at dead end junctions
  • --no-turnarounds.except-turnlane โ€” disables building turnarounds except at junctions with a dedicated turning lane
  • --no-turnarounds.fringe โ€” disables building turnarounds at fringe junctions
  • --no-left-connections โ€” disables building connections to left
  • --junctions.join โ€” joins junctions that are close to each other (recommended for OSM import ๐ŸŒ)
  • --junctions.join-dist FLOAT โ€” determines the maximal distance for joining junctions (defaults to 10)
  • --junctions.join.parallel-threshold FLOAT โ€” the angular threshold in degrees for rejection of parallel edges when joining junctions
  • --junctions.join-same FLOAT โ€” joins junctions that have similar coordinates even if not connected
  • --junctions.join-reset โ€” reset connections for joined junctions
  • --max-join-ids INT โ€” abbreviate junction or TLS id if it joins more than INT junctions
  • --junctions.corner-detail INT โ€” generate INT intermediate points to smooth out intersection corners
  • --junctions.internal-link-detail INT โ€” generate INT intermediate points to smooth out lanes within the intersection
  • --junctions.scurve-stretch FLOAT โ€” generate longer intersections to allow for smooth s-curves when the number of lanes changes
  • --junctions.join-turns โ€” builds common edges for turning connections with common from- and to-edge. this causes discrepancies between geometrical length and assigned length due to averaging but enables lane-changing while turning ๐ŸŒ€
  • --junctions.limit-turn-speed FLOAT โ€” limits speed on junctions to an average lateral acceleration of at most FLOAT (m/s^2)
  • --junctions.limit-turn-speed.min-angle FLOAT โ€” do not limit turn speed for angular changes below FLOAT (degrees). the value is subtracted from the geometric angle before computing the turning radius.
  • --junctions.limit-turn-speed.min-angle.railway FLOAT โ€” do not limit turn speed for angular changes below FLOAT (degrees) on railway edges. the value is subtracted from the geometric angle before computing the turning radius. ๐Ÿšž
  • --junctions.limit-turn-speed.warn.straight FLOAT โ€” Warns you when a turn speed limit actually slows down straight connections by more than FLOAT. Like, bestie, if going straight is getting nerfed by more than that number, you'll hear about it.
  • --junctions.limit-turn-speed.warn.turn FLOAT โ€” Same energy, but for turning connections (and no u-turns, so don't even think about it). Warns when the speed of a turning connection drops by more than FLOAT.
  • --junctions.small-radius FLOAT โ€” The default radius for junctions that don't need wide vehicle turns. Small radius, small drama. ๐Ÿ’…
  • --junctions.higher-speed โ€” Uses the maximum of the incoming and outgoing edge speeds at a junction instead of the average. Main character speed gets to win for once, periodt.
  • --junctions.minimal-shape โ€” Builds junctions with minimal shapes, and yes that means edge overlap just gets ignored. It's giving "I didn't see it, so it's not my problem" ๐Ÿ˜ญ
  • --junctions.endpoint-shape โ€” Builds junction shapes based on edge endpoints (and again, edge overlap is ignored). Lowkey a whole different silhouette.
  • --internal-junctions.vehicle-width FLOAT โ€” The assumed vehicle width used when computing internal junction positions. Your fave little width, for math reasons โœจ
  • --rectangular-lane-cut โ€” Forces rectangular cuts between lanes and intersections. Sharp corners only, no soft launches, slay.
  • --check-lane-foes.roundabout โ€” Allows driving onto a multi-lane road if there are foes on other lanes โ€” but only at roundabouts. Foes stay in their lane, we stay in ours ๐Ÿซถ
  • --check-lane-foes.all โ€” Same deal, same "foes on other lanes" allowance, except it's everywhere. Full send, no cap.

โœจ Pedestrian Options โœจ

  • --sidewalks.guess โ€” Guesses pedestrian sidewalks based on edge speed. It's literally doing detective work on your network ๐Ÿ”
  • --sidewalks.guess.max-speed FLOAT โ€” Adds sidewalks for edges with a speed equal to or below the given limit. Chill roads get the sidewalk treatment ๐ŸŒธ
  • --sidewalks.guess.min-speed FLOAT โ€” Adds sidewalks for edges with a speed above the given limit. Speedy roads count too, bestie.
  • --sidewalks.guess.from-permissions โ€” Adds sidewalks for edges that allow pedestrians on any of their lanes, regardless of speed. Permissions say yes โ†’ sidewalk says hi ๐ŸŽ€
  • --sidewalks.guess.exclude STR[] โ€” Do not guess sidewalks for the given list of edges. Some edges are simply not invited to the sidewalk party ๐Ÿ™ˆ
  • --crossings.guess โ€” Guesses pedestrian crossings based on whether sidewalks exist. Sidewalk spotted โ†’ crossing assumed. The way that logic just works ๐Ÿ’…
  • --crossings.guess.speed-threshold FLOAT โ€” At uncontrolled nodes, it does not build crossings across edges whose speed is above the threshold. Too fast = no crossing, we're not playing games.
  • --crossings.guess.roundabout-priority โ€” Gives priority to guessed crossings at roundabouts. Roundabout crossings, you are the moment ๐Ÿ‘‘
  • --walkingareas โ€” Always builds walking areas, even when there are literally no crossings. Zero crossings, still walking, iconic.
  • --walkingareas.join-dist FLOAT โ€” Does not create a walkingarea between sidewalks that are already connected by a pedestrian junction within FLOAT. If y'all are already connected, no need to be extra ๐Ÿฆ‹

๐Ÿšฒ Bicycle Options ๐Ÿšฒ

  • --bikelanes.guess โ€” Guesses bike lanes based on edge speed. Bikes deserve their own lane, fr fr.
  • --bikelanes.guess.max-speed FLOAT โ€” Adds bike lanes for edges with a speed equal to or below the given limit.
  • --bikelanes.guess.min-speed FLOAT โ€” Adds bike lanes for edges with a speed above the given limit.
  • --bikelanes.guess.from-permissions โ€” Adds bike lanes for edges that allow bicycles on any of their lanes, regardless of speed. If bikes are permitted, bikes are getting a lane, periodt.
  • --bikelanes.guess.exclude STR[] โ€” Do not guess bikelanes for the given list of edges. These edges said "not today" and we respect it ๐Ÿ’œ

๐Ÿ“ข Report Options ๐Ÿ“ข

  • -v, --verbose โ€” Switches to verbose output. Now it tells you everything, no gatekeeping ๐Ÿ’€
  • --print-options โ€” Prints option values before processing. Receipts, immediately.
  • -?, --help โ€” Prints this screen, or selected topics. Hi bestie, need a hand?
  • -V, --version โ€” Prints the current version. Which one are we on? Let's see โœจ
  • -X, --xml-validation STR โ€” Sets the schema validation scheme for XML inputs. Your options are "never", "local", "auto" or "always". Choose wisely, it's giving vibes check on your XML.
  • -W, --no-warnings โ€” Disables output of warnings. Ignorance is bliss, lowkey ๐Ÿ™ˆ
  • --aggregate-warnings INT โ€” Aggregates warnings of the same type whenever more than INT of them occur. So the same complaint 500 times becomes one tidy pile, we love efficiency ๐Ÿซถ
  • -l, --log FILE โ€” Writes all messages to FILE, and yes, this implies verbose.
  • --message-log FILE โ€” Writes all non-error messages to FILE. Also implies verbose.
  • --error-log FILE โ€” Writes all warnings and errors to FILE.
  • --log.timestamps โ€” Writes timestamps in front of all messages. Timestamped receipts, the best kind โญ
  • --log.processid โ€” Writes the process ID in front of all messages. So you know exactly which process is being dramatic.
  • --language STR โ€” The language to use in messages. Multilingual queen behavior ๐ŸŒˆ

๐ŸŽฒ Random Number Options ๐ŸŽฒ

  • --random โ€” Initialises the random number generator with the current system time. Different every time, chaotic and free-spirited ๐Ÿ’ซ
  • --seed INT โ€” Initialises the random number generator with the given value. Same seed, same reality โ€” reproducible bestie energy ๐ŸŽ€

๐ŸŒŸ EXAMPLES ๐ŸŒŸ


netgenerate -c <CONFIGURATION>

create net from given configuration


netgenerate --grid [grid-network options] -o <OUTPUTFILE>

create grid net


netgenerate --spider [spider-network options] -o <OUTPUTFILE>

create spider net


netgenerate --rand [random-network options] -o <OUTPUTFILE>

create random net


๐Ÿ› REPORTING BUGS ๐Ÿ›

Found something cursed? Report bugs at <https://github.com/eclipse-sumo/sumo/issues>. Get in contact via <sumo@dlr.de>. (Yes, actually tell them โ€” bugs deserve to be seen, not silenced ๐Ÿ’–)


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>

Eclipse SUMO netgenerate 1.27.1 is part of SUMO.

This program and the accompanying materials are made available under the terms of the Eclipse Public License v2.0 which accompanies this distribution, and is available at <http://www.eclipse.org/legal/epl-v20.html>

This program may also be made available under the following Secondary Licenses when the conditions for such availability set forth in the Eclipse Public License 2.0 are satisfied: GNU General Public License, version 2 or later which is available at <https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html>

SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later


And that's the whole page, bestie!! ๐Ÿซถ This was Eclipse SUMO netgenerate 1.27.1, dated August 2026, straight out of the ECLIPSE(1) manual. Go build something gorgeous with it ๐Ÿ’…โœจ๐ŸŒˆ
๐Ÿ“ฆ where this page comes from