Table of Contents


Overview


Intersections lie at the heart of creating believable traffic motion in Vroom. With just a few clicks, you can set up basic crossing points where vehicles naturally slow down, yield, or continue straight on, instantly adding a layer of realism to any road system. Whether you are animating a small residential street or designing a bustling city network, intersections help bring your traffic scenes to life in a dynamic, visually convincing way.

One of Vroom’s greatest strengths is how quickly you can achieve impressive results: just draw intersecting roads or connect them directly, and Vroom’s defaults will automatically handle most scenarios. Behind the scenes, the system uses road priority settings, optional traffic lights, and simplified driving rules to ensure that cars do not collide or get stuck.

If you do need to go deeper, you can easily refine these basic rules to match your design goals by tweaking priorities, changing the way vehicles merge, or adjusting default behaviors. By pairing an easy initial workflow with further avenues for customization, Vroom ensures that you can strike the perfect balance between simplicity and control.

Best of all, we plan to evolve and refine intersection logic over time, so even more detailed behaviors will become available in future updates. For now, you can rely on Vroom’s straightforward approach to intersections to bring your roads to life quickly, convincingly, and with plenty of room to grow.




How to Make Intersections


Vroom automatically generates an intersection each time one road crosses another. Then, to proceed with the simulation, it decides which is the best action for each vehicle to take at each instant based on its current environmental conditions, the road parameters, and its own vehicle parameters set at generation time.

Let’s take a look at the sample on the right, showing a simple setup with 2 crossing roads and all the parameters set by default. As you can see, once the second road is drawn crossing the first one, the intersection is automatically established internally in the simulator and the traffic lights are generated. Then, we can just generate the vehicles, and that’s all! The simulation is ready to go.

This 4-way intersection is the most typical use case, where we get 1 intersection and 4 roads, 2 with incoming traffic and 2 with outgoing traffic.

Taking a closer look, you will notice the following things:

  • Some vehicles take the intersection, while others will continue on in front.
  • Traffic lights are changing automatically after a few seconds.
  • The vehicles generated inside the intersection are automatically converted to ghosts.


As it happens when simulating people, vehicles will be converted to “ghosts” when the simulation engine cannot find a viable solution for them.



Click on the gif to load it in full size



Another way of creating intersections is by connecting the end of a road to any middle point of another one. This creates a different type of intersection with only 3 roads connected, either 1 incoming and 2 outgoing, or vice versa.

When the next path point of a road is placed inside another road, it gets automatically snapped to the far side of it. Then, if you end the road generation (with a right mouse click) without adding more points, Vroom will internally generate a 3-way intersection and traffic lights will be created.



Click on the gif to load it in full size



A known issue with this system may happen if any of the roads from that 3-way intersection is moved enough for the simulator to understand that it has become a 4-way intersection. When this happens, you will see the vehicles start to disappear at the intersection because Vroom is taking that point as any other road ending.

As shown in the sample video, this issue can be easily fixed by forcing a snap at the end of the road again.



Click on the gif to load it in full size


Traffic Lights


As mentioned in the previous section, traffic lights are automatically generated every time an intersection between roads is detected. However, in real life not all intersections are managed by traffic lights, so we added the possibility to disable traffic lights in Vroom, either individually or at road level.



Click on the gif to load it in full size



When a light is disabled individually, it gets disabled at the node level, so you can enable it later again in the node tree. Also, using the filter options, you can easily manage a large number of traffic lights quickly.



Click on the gif to load it in full size



It is possible to customize the behavior of the traffic lights by selecting them and setting the desired parameters in the Traffic Light Properties.

For example, you can toggle the initial light status (red/green) to adapt it to the needs of each situation. By changing it on one side of the intersection, the other one is changed accordingly.

In the same way, you can set the value of the following parameters:

  • Offset time [0s - 60s]: Sets an initial offset for the traffic light to start changing. It allows synchronizing it with other events on the 3D scene.
  • Cross lamp frequency [6s - 60s]: Sets the time to wait until the light status changes.
  • Estimated time to cross [3s - 10s]: Sets the estimated time in seconds for a vehicle to get across the intersection.
  • Stopping distance [1m - 25m]: Sets the distance from the start of the intersection where the vehicles should stop.

The min value of the Cross lamp frequency and max value of the Estimated time to cross parameters are linked in a way that forces the first one to be at least double the second one.




The Right-Hand vs Left-Hand Rules


The right-hand rule in Vroom ensures that, when two roads of the same priority intersect without traffic lights to guide vehicles, the one entering from the right always has the right-of-way.

Put simply, if two vehicles arrive at the intersection simultaneously from equally prioritized roads, the vehicle on the right proceeds first, and the vehicle on the left yields. This straightforward guideline helps maintain a consistent flow of traffic and prevents deadlocks in situations where no other higher-level controls (e.g., stop signs or signals) are present.

This principle holds true whether a country drives on the left side of the road (as in the UK or Japan) or on the right side (as in the United States, Germany, France and most other countries in the world). However, there may be some exceptional cases when the project may require to reverse this rule.

For these situations, you can set a customized left-hand rule per road by setting it in the Traffic rules parameter on the Road Properties, or at the project level by setting it in the Traffic Settings section, at the Project Settings dialog (Menu File > Settings).



Click on the gif to load it in full size


Multi-lane Intersections


In the intersections between multi-lane roads, Vroom will automatically take care of everything that happens in the single-lane roads. The main difference is that on multilane roads it is not possible for vehicles on one side of the road to turn to the opposite side of the road.

This restriction is defined as follows:

  • Roads with an even number of lanes: half of the lanes can make the turn.
  • Roads with an odd number of lanes: half minus one of the lanes can make the turn.

As in real life, this restriction is intended to improve flow efficiency and avoid potential collisions and safety hazards.





As it happens in single-lane intersections, not all the vehicles that can take the turn will actually do it. To better understand this behavior, take a look at the following sample:



Click on the gif to load it in full size


Limitations


As powerful as Vroom’s intersections are for quick animations, it is important to remember the simulator’s focus: to generate visually pleasing traffic rather than fully realistic engineering simulations.

There may be certain cases (like intricate multi-lane interchanges, heavy congestion layouts, or detailed yield rules) where Vroom’s current tools will not capture every nuance.

For example, Vroom cannot handle intersections between more than 2 roads. When this happens the intersection turns red:





Another unsupported case happens when the closing loop point from a road loop gets inside the intersection, but it can be easily fixed by setting any other loop point as the closing point.

Despite these limitations, the existing intersection features should be enough to deliver polished results with minimal setup effort.


Click on the gif to load it in full size