Posted on 2023-03-14
I've asked myself a pretty weird question lately. Would it be possible for the humanity to simulate an entire universe?
The background to this question is of course the simulation hypothesis, the hypothesis that we live in a simulation. While I won't go into the philosophical details of this hypothesis, I want to analyze if it currently is possible for humanity to simulate a universe.
If we could throw together all currently existing forms of computation (computers, smartphones, supercomputers, ...), would we be able to realistically simulate an universe like ours?
Lets start simple. Lets simulate a universe without any live, just some rocks floating around in space. For such scenarios, we already have pretty good models for simulation, and are already able to simulate hundreds of galaxies (e.g. by not actually simulating each rock itself in detail, but by bunching together a bunch of rocks (solar systems, galaxies) into bigger "rocks" and simulating them). This can be further extended by just approximating far away galaxies with pretty large bodies without any intrinsic dynamics, as the resolution of current technologies in further ranges are still very limited. I would therefore say that simulating the Earth, the solar system, the milky way and other galaxies should not be a big problem with suitable optimizations at further distances.
FIREbox: Simulating galaxies at high dynamic range in a cosmological volume
Earth itself, even without live, is already pretty dynamic. Things like tidal forces, continental movements or the weather will all require simulations. Luckily, tidal forces and continental movements and many other such things are pretty regular or slow, so these will not require too much computational power. For the weather, we already have some models that can be used to forecast, these can also just be used in the simulation itself. Note that current forecast models are not really too good, but they should definitely be good enough for the simulation. The more computational intensive things are more local things, e.g. how does the wind influence the movement of leaves, as there will be millions of such interactions. I will postpone this point to later.
It is also interesting to note what live will be simulated. Let us assume we simulate live as a single-player game, i.e. I am the only one being simulated constantly, you are just simulated in my proximity or not at all and I just note side-effects of your "existence". The good thing now is, we will not simulate most of what we have already talked about. Multiple galaxies? I just see a few points in the sky. Global weather? Only exists locally. This heavily reduces the amount of things that require simulation. Nevertheless, we still need to simulate live itself. But I would guess that with all remaining computational power we could easily simulate a brain (assuming a good enough model). Furthermore, we would also require of the interactions with the simulated human. We could also take heavy shortcuts there by just simulating coarse interactions with the human and getting more detailed the more the human interacts with it (this is similar to just reading some title of a website, reading the website itself and actually thinking about the website). So I also think this should not be a big problem.
Let's now analyze live as a multi-player game. This means that every human (and any other form of live) has it's own brain. This will be a lot harder as we therefore have to simulate pretty much the entirety of Earth, but also every form of live and also every small interactions as noted previously. I don't think that there is any hope in simulating this in the near future. We currently have about 8e9 (in scientific notation) humans on Earth and a surface area of 5e8 km^2. Splitting up the surface area to every human would therefore be about 0.06km^2 per human. Further, splitting up the computational power to each human would maybe give at most each human a mid-range computer, this probably will not suffice simulating one human, let alone the many smaller things happening in the area around the human. We could of course also apply the principle of ignoring minor things here until needed, but I don't think this will help that much as humans may notice something is wrong (in theory, we then could just overwrite their memory and telling them nothing was wrong, but at this point we don't really have anything reassembling independent "live", just some robots). Furthermore, storage capacity will also be a problem. As approximated, a human brain has a storage capacity of about 2.5PB (don't know if human brain capacity can be measured in PB, but someone seems to have estimated so) with 8e9 humans, that would be a total required storage capacity in the order of Yottabytes (if I did not miscalculate), while we currently only have a combined storage capacity in the order of Zettabytes (one order or magnitude smaller). I don't think data can be compressed this much to fit.
Estimated global storage capacity.
If we want to simulate the entire universe, we may also be interested in simulating aliens. Using some guesstimation, there may be around 36 alien civilizations in the milky way, that would be about 36 times the computational power as required for humans.
Going even further, the universe may be infinite. This means we may never be able to simulate it all, even with very good optimizations.
Now for the good news. For all of this post I made the silent assumption that we wanted real-time simulations. But, in theory, we can simulate everything as slow as we want, the live inside the simulation will never notice. Assuming the universe is turing-complete (which is pretty much a precondition to the simulation-theory itself), we may even simulate an universe using "Magic: The Gathering" if we wanted to. Nevertheless, this would still not solve the issue with storage-space.
Magic: The Gathering is turing complete.
In theory, assuming infinite storage space, yes. Not assuming infinite storage space, no. Finite storage and single-player? Probably yes.