DarkForestSim

A Netlogo simulation of the Dark Forest Hypothesis

There’s been a bit of discussion lately of the Dark Forest Hypothesis (DFH), which is one of the proposed answers to the Fermi Paradox. The Fermi Paradox asks why we can’t see any other civilizations out there in the universe, even though it is statistically extremely unlikely that we are alone.


The DFH roughly answers that encountering alien species in space is very dangerous and unpredictable, and so civilizations everywhere in the universe evolve to avoid contact with others. I did a little simulation to explore the idea. You can play around with the model yourself by downloading netlogo and the simulation file.

The early part of a run, when there are still plenty of civs. The difference in power between killers and killed is going up sharply, as expected, and in this case, the killers are staying less visible than the killed, and developing a lower detection threshold.

Later in a run, when there are few civs left. In this case, visibility doesn't seem to matter much to the killers, and they have evolved a very low detection threshold compared to their victims. The colour of the civs (the bubbles) denotes their traits. The red component is power, the green component is visibility, and the blue component is detection threshold. That large red civ at the bottom of the map is looking very dangerous. It has very little green component, so it will be hard for others to see, and very little blue component, which means it has a low detection threshold and can likely see anyone else it encounters.

The model


The simulation starts with a number of civs randomly distributed in a universe. For these runs, I used 1000 civs in a 500x500 universe. Each civ has the following attributes: power, visibility, detection, and reach. Civs start the simulation with a value of 1 for each attribute.


At every time step, there is a probability (1000 / 100 000 for these runs) that there will be a change of 1, up or down, for each attribute. As the reach of civs change (the radius they can see and affect around them), the probability of encounters increases.


When two civs overlap, they compare their attributes. If one civ can see the other, that is if it’s detection threshold is lower than the other’s visibility value, and if it has higher power, it kills the other civ.


There can be lasting spatial overlap between civs in a case in which the civ with lower power can see the more powerful one, but the powerful one can’t see the less powerful one. I didn’t track overlaps in this version, but it is a planned feature.


The display


The display shows a map of the universe with each civ appearing as a coloured bubble. The size of the bubble indicates the reach of the civ.


The colour of the bubble indicates the civs’ attributes relative to the others on the map. The red component is power, the green component is visibility, and the blue component is detection. So for example, a purple civ would have relatively high power (high red component), but would have a high detection threshold (high blue component), which means it would not detect others very well. On the other hand, it may have low visibility itself, because it has a low green component.


In theory, at least, red bubbles should be quite dangerous since they have high power, low visibility, and a low detection threshold. They see everyone, they are not very visible, and they are powerful relative to the others.


Bright green bubbles, by contrast should be vulnerable. They are highly visible, have relatively low power, and can be detected by most others, who are likely to have higher power.


The graph shows the difference between the mean attributes of the killers and killed, on a moving average (size selectable). The red line is the difference in power, the green line shows the difference is in visibility, and the blue line is detection threshold.


The straight grey line represents zero. A difference above that line means that the killers have a higher value (which should always be the case for power), and a value below the line shows that the killers have a lower value than the killed. The number monitors show the same information.

The results


The first notable result is that it is indeed dangerous out there. Survivorship after 200 000 time steps is consistently on the order of 5%.


For this prelim experiment, I did 10 runs, each with 1000 civs in a 500 x 500 universe, with a change probability of 1000 / 100 000. Each run lasted 200 000 time steps (ticks).


The results table shows the difference in attributes between killer civ and killed civs on a 100 moving average (so the numbers here represent the last 100 encounters).


The difference in power is obviously positive, since only more powerful civs can kill less powerful ones, and there is pressure throughout the simulation for power of survivors to increase.


The killers tend to have a lower detection threshold than the killed. In other words, they are better at seeing others. There is much more variability in visibility, with the killers in some runs actually having higher visibility on average than the killed.


Some thoughts


Powerful civs that are good at detecting others seem to always do well, even if they are themselves visible. At first glance, visibility looks like a more neutral trait that is allowed to drift throughout the runs.


However, there seems to be a bit of a relationship between visibility and detection threshold. I would need to do more runs, but I think sometimes the civs develop low visibility, which allows detection threshold to rise.

Just for fun, I let one run go to two million time steps. There are only 5 civs left, and encounters are very infrequent. In fact, it is entirely possible that this run could continue indefinitely without any further encounters, and the civs could evolve and drift any of their traits in any direction without consequences.

It's possible that we're in a late process like this one, and that we are very unlikely to encounter anyone else, even though the universe was teeming with civs a few billion years ago, for example. It's also possible that we are earlier in the process, but in one of the large gaps left by a killed civ that was destroyed by another one at the other end of it's range (relative to us). In that case, we are just waiting for the next contact, and it may take a while, maybe many millions of years.