When you run the simple example (instructions for Eclipse, IntelliJ), this is what you see:
The effect that is visible (the agents all converging on the center but never quite reaching it) is an emergent property of the individual behavior of the vehicles.
The code that is responsible for this particular effect is this method in the Driver
class:
@Override
public void tick(TimeLapse timeLapse) {
if (!roadModel.containsObject(this)) {
roadModel.addObjectAt(this, roadModel.getRandomPosition(rnd));
}
roadModel.moveTo(this, roadModel.getRandomPosition(rnd), timeLapse);
}
Tip: A good exercise for better understanding how discrete time simulation (like in RinSim) works is to try to change the behavior of these drivers such that they start driving in straight lines towards their destinations.