Sie sind hier: > CityTrafficSimulator Switch to Language: en Switch to Language: de


About CityTrafficSimulator

CityTrafficSimulator is a microscopic traffic simulation software for small- to medium-sized traffic networks, such as intersections or small urban areas.

Based on the idea of, CityTrafficSimulator implements the Intelligent Driver Model. However, its main goal is to be as flexible and universal as possible so that the user can model almost any situation, including real-world scenarios. Therefore, CityTrafficSimulator uses Bezier curves for defining routes. They connect multiple nodes, creating a network of paths on which the traffic will be simulated. The Signal Light Editor allows to define signal lights with arbitrary signal times (red and green phases) and arrange them in groups. Each signal can then be assigned to one or more network nodes to control the traffic flow.

CityTrafficSimulator offers the following main features:
Make sure to have a look at the demo networks and manual.


CityTrafficSimulator is still in more or less active development. The versioning scheme is somewhat random: Introduction of new features usually results in a major version step. Bug fixes or improvements result in a minor version step. See Changelog for further information.

You can download the current version (0.7-2) here. The CityTrafficSimulation are now hosted on Github - please have a look at

Download program:
Download sources: Github Repository

Recent Updates

CityTrafficSimulator version 0.7-1 brings small bug fixes and moves to Github
The new release of CityTrafficSimulator version 0.7-1 is out:
Besides some beautification of the selection of multiple LineNodes, it bring a major bug fix where the vehicle target velocity of newly spawned vehicles was not set correctly. Instead of using the global per-vehicle class setting, the vehicle's target velocity was was always set to the maximum velocity of its first NodeConnection. Thanks to Osvaldo Juárez to pointing this out.

Furthermore, I moved the code base to Github. This not only offers all the beauty of the Git CVS but also hopefully easier collaboration with external project developers. Please have a look at our new Github Page
Schulteatq - 11.2.2014 19:54

Major update brings CityTrafficSimulator 0.7
After the recent hiatus of work on my software I am glad to annouce that there is a new major update of CityTrafficSimulator. Version 0.7 not only fixes some bugs but also introduces some new features for both simulation setup and the user interface:

CityTrafficSimulator 0.7 showing the new features, such as vehicle velocity mapping and stop signs.The main goal for this release was the reproducibility of the traffic simulation, meaning that the outcome of a scenario is more specific and can be repeated under the exact same conditions to better analyze specific situations. Therefore, the Simulation Setup was adapted where I added new controls for setting up the simulation duration and the seed for the random number generator as well as the reset button which completely resets all internal data and restarts the simulation from the beginning.

As new network element stop signs were introduced, which can be assigned to nodes, same as with traffic lights. A stop sign will let approaching vehicles come to a full stop in front. Keep in mind that a possible yielding behavior behind has to be deliberately setup by the corresponding connection priority.

The recent versions already offered visualizing the average velocity of the vehicles on connections (Statistics checkbox on Render Setup tab). Version 0.7 takes this one step further and also allow to apply the same color mapping to the current velocity of each vehicle (Velocity Mapping checkbox). Then the vehicle's fill color is determined by the color map and the vehicle's outline color will be red, orange or green depending on whether the vehicle is fully stopped, braking or accelerating. Furthermore, the applied color map is now fully user-customizable.

Finally, I added some features for convenience: The main window setup (state, size, position) is now persisted as well and the render- and simulation setup is stored within the network files.

For a full list of changes please refer to the Changelog.
Christian - 09.6.2012 15:04

CityTrafficSimulator version 0.6-6 changes scrolling metaphor
The CityTrafficSimulator update to version 0.6-6 is online.

The most important change ist the new scrolling algorithm: In order to remove the former canvas size limit it was necessary to get rid of the scroll bars and implement new scrolling metaphors. Changing the currently visible part of the network is now done by drag and drop with the right mouse button. At first, this might occur less intuitive to you, but once you've get used to it, navigating through your network becomes much easier and faster.

The new network canvas code also allows some new comfort features: The Canvas Setup tab now shows the world coordinates of the current mouse position (in meters) and allows to setup the rendering of an auxiliary grid.

Further changes of this update include some improvements in the network layer code and fixes a possible null-reference exception when a node had no assigned network layer.
Christian - 27.2.2012 13:00

CityTrafficSimulator version 0.6-5 introduces road network layers
The CityTrafficSimulator update to version 0.6-5 is now online and brings a neat new feature.

The new Network Layers tab allows to define an arbitrary number of layers for your road network to allow grade separation. Once the layers are defined you can assign them to your nodes in the Connection Setup tab.
Attention: In contrast to the other settings in this tab (which are per-connection settings) the network layer is a per-node setting. When connecting two nodes on different network layers, the connection in between will internally be handled as being on both layers.

Intersections are only calculated between connections that share at least one network layer - line changes are only calculated between connections which share the same network layer. This allows to easily setup grade separation. The visibility flag sets whether the corresponding nodes and connections shall be rendered or and thus allows to optionally reduce visual cluttering.

The other changes of this release further improve the intersection handling and yielding behavior and bring some minor fixes.
Christian - 20.2.2012 15:00

CityTrafficSimulator version 0.6-3 introduces new statistics
CityTrafficSimulator 0.6-3 showing the new Connection Statistics tab.The CityTrafficSimulator update to version 0.6-3 is online, which introduces new statistical evaluation.

For example, the per-traffic-volume statistics now also consider the number of stops per vehicle. Furthermore, CityTrafficSimulator now offers sophisticated per-connection statistics.
When selecting a connection the Connection Statistics tab shows a combined plot of the connection evaluation of the last traffic light cycle: The black line shows the average velocity, the gray area the number of vehicles and the orange area the number of stopped vehicles.
For evaluating more than one connection just select multiple nodes (by holding Shift or using rubberband selection). This lets CityTrafficSimulator evaluate all connections leaving the selected nodes.
Christian - 02.2.2012 13:30

System Requirements, Licensing

CityTrafficSimulator is written in C# and requires the .NET-Framework 2 or later. The program also runs under Mono, but unfortunately with only limited performance.
The software is licensed under GPL Version 3, contact: - Design und Content by Christian Schulte zu Berge Valid XHTML 1.0 Transitional Valid CSS 2.1