A Lazy Universe

Aaron Sun
6 min readMar 17, 2015

There have been a number of simulation games that have cropped up lately which have lead me to think about how we would advance the state of simulation and consequently learn more about our own minds. Let’s suspend our conceptions of reality for a moment and assume that we’re living inside a computed world where that is lazy evaluated.

If we were to create a simulation of a world from the perspective of an individual, there’s quite a bit that we don’t have to worry about most of the time. We can optimize the parts out that we can’t see or percieve like that tree falling in a forest. However when we do want to go somewhere new and explore it can’t just be randomly generated, but consistant with the history and progression of that area.

Schrodinger’s Clock

This is where it gets interesting because when we do encounter something new, we can simulate it backwards instead. For example, instead of exploring a new place, let’s take a look at something a bit simpler; let’s look at a mechanical object made up of parts such as a clock. Within this clock the many parts all have a chance of breaking at some point in time. This can be represented as a probability distribution function (PDF). And together, the clock has a breaking probability that is a combination of the breaking function of each of it’s parts.

Now as long as we don’t look at this clock, we don’t actually need to evaluate if it’s working or broken because we don’t care from our perspective and it doesn’t affect any other part of our world for most of the time.

However, at somepoint our world will cross. Maybe we walk into the room where the clock is a we take a look at the time or perhaps we had set an alarm and it’s time for that alarm to go off. Now we need to know the state of the clock. At this point we can roll a dice and determine if the clock is broken based on its PDF. If it’s not, we carry on, sound the alarm or retrieve the time. If it is broken, we can set when it broken and then set the hands on the clock to the time that it broke.

The clock was both working and broken until we looked at it or it interacted with us, although it is not equally working and broken. A new clock is more working than broken and an old clock can be more broken than working. Recursively, the same is true for the gears inside the clock. We don’t know or care about what part caused the break until we take the clock apart.

You may realize that this sounds pretty familiar. It’s similar to how light can behave as both a wave and a particle, but turns to explicitly one or the other when you look at it. It’s also one of the ideas behind quantum computing, though I’m less familiar with the actual implementation of that right now.

A Wrinkle in Space-Time

This ends up being pretty awesome. You get a complex reality for a fraction of the computation cost. Things are getting lazily evaluated left and right — the traffic to work based on traffic flow models, the sun and moon based on astrophysics, that delicious smelling souffle in the oven based on culinary chemistry models. The sun is shining, the birds are singing and everything is great.

Suddenly, time stops. Crap, this lazy evaluation lead to a merge conflict. A lazy evaluation determined that your parents should call you and at the same time you look at your phone to check on that package you ordered last week. Somehow different lazy evaluation models have created two separate versions of the Catbug plush you ordered online at your house and your parent’s house.

What do we do now? Unfortunately this happens all the time when writing code in large teams. Since we can’t have the code changing underneath us all the time, we basically freeze a version of working code, make our changes to it, and then replay those changes on top of whatever changes other people have made since. Normally the merge goes fine just like in our world. Sometimes, though, different people working on different features change the same files that conflict with the changes we made. This is called a merge conflict and this is like what happened to our world.

  • Merges are the resolution of two divergent code branches that are resolved at the point of conflict. A new branch is formed.
  • In simulation this may mean stopping the simulation and rewinding it back to the point of conflict after updating to model to decrease the chance of such a collision happening again.

We Live in Our Own Little Worlds

Let’s take a step back from the simulation into reality — our own reality. How we want to simulate things isn’t that different from how our minds work as well. Ever since we are babies, our mind creates models of the world. In the beginning, even our model of object permanence, the idea that if an object disappears behind something, it’s still there, isn’t formed. This is something that we develop through repetition and many games of peek-a-boo.

As children our world is very small and we start to model the things that we can see around us. We learn to defer our emotions to those that we trust, usually our parents. When a baby encounters a novel situation, they look to their parents to guage the expression on the parents’ faces and learns to mirror that. If the parents look calm, the baby is reassured that he’s safe. If the parents look terrified, the baby mirrors that as well and associates their current situation with danger as well.

  • We create models in our minds and live based on the expectations of those modes. This is true even for other people including our loved ones.
  • We act according to the model of our environment or of a person within our heads. For example an unfortunate event is when, say your significant other cheats on you. If they cheated and you didn’t know you act on your mental model of the other person as a faithful partner. However when we do discover evidence of infidelity, we have a merge conflict, our models need to be reevaluated and we start treating the other person differently.

Parallel Universes

  • We view our virtual world as one where merge conflicts can happen and so can rewinds, then it’s very possible that alternate timelines rather than this one have happened and got cut.
  • Think of a lightning strike. It will fork, but usually when it finds the best route, the other forks are no longer useful.
  • An inhabitant of our virtual world would not be able to tell of any inconsistencies for two reasons. First, he would not question it but assume there’s something about the world he doesn’t understand. Secondly, if that timeline gets cut and replayed, he has no recollection of faulty timelines.
  • Similarly as inhabitants of our world, we would not be able to tell of any inconsistencies and would not remember any alternate timelines that have occurred.

Evolution & Intelligent Design in Harmony

  • Since we are now close to the point where we can create digital lifeforms, to them we are “God” and their world is intelligently designed. The inhabitants of the virtual world not see any evidence of it from their perspective.
  • However the virtual world is a evolution of the world we live in, so in that effect we are the egg between two generations of chickens.
  • An analogy of this would be giving birth. To a egg and sperm, they conceive that they were created by these two supremely complex, intelligent, and seemingly infinite beings. After all we are trillions of cells to the two cells that catalyze reproduction.
  • But if you look at one generation of adults to the next from an external vantage point, you will see that each generation is similar to the previous over its lifespan even though a baby is very different from an adult.
  • These are probably more of a duality, yin and yang, than one or the other.

--

--