Monday, January 3, 2011

The Math of Dream Time in "Inception"

I'm a big fan of Christopher Nolan's newest film "Inception."

I am also a big fan of math. I know that makes me a nerd. (When I was home for Christmas, my family was discussing complicated gift-giving timetables, and getting confused. So I drew a Venn Diagram where the universe was 'my family,' and gift-giving times were shown as color-coded functions describing the relationships between various parts of the family. I thought it cleared everything up nicely, although my family did not entirely agree.)

So, I decided, with the help of a partner, to try to figure out the Real Time to Dream Time conversion from the movie. I figured at first it would be a nice linear function, but alas, no.

Throwing out the off-the-cuff estimations that are made at various points in the movie, I considered my reliable data points to be:

Real Time 1st Dream 2nd Dream 3rd Dream
5 60 ? ?
600 10080 259200 5256000

This comes from two scenes. In one, they are teaching Ariadne about the dream world, and they say "Five minutes in the real world gives you one hour in the dream world."

The second comes from when they are planning for the flight. They say that the flight is 10 hours, which gives them 1 week in the first dream, 6 months in the second dream, and 10 years in the third dream.

I have converted everything to minutes as our base unit. Given this information, we plotted the second (more complete) set into a curve to predict the final piece of that set, the time in Limbo. We got y = 26.276e3.0481x  with an R2 value of 0.9993.
This gives us a Limbo time value for that set at 109250719, or approximately 39,000 years.

The two data sets don't exactly work together, though. Any equation you find to approximate the relationship does not correctly predict our other given case. This is partly because we are working in 3 dimensions, so we need to define some variables:

  • x is the dream level, given by 0 for real time, 1 for first dream, etc.
  • z is the amount of real time, and
  • y is the amount of dream time.
Then we can say that f(x,z) is the amount of dream time, and we have 
f(x, 600) = 26.276e3.0481x.

We tried very many ways to fit our two data sets together, but we were not finding any good correlations. We are especially interested in the fact that they seem to be able to do the math quickly (or at least estimate quickly) in the movie, and we had not been able to find an elegant equation.

Eventually, we started to think about it another way. What if we graph the amount of real time passed for each minute in dream time, based on the dream level? This gives us a curve approaching zero on the y-axis.

We used our given information to graph this:

Dream LevelReal TimeDream Time
Which gave us this relationship: a = 1.0835e-3.048x
where a is the real time passed for each minute of dream time at dream level x.

I realized that a = z/y, since a is essentially the z per 1y.

So, with some algebra we come up with 

f(x,z) = z/(1.0835e-3.048x)

Now, this is far from perfect, and as an example, in my table below I have a "Real Time" column, which is the real time as predicted by our function. You can see that the accuracy of the real time prediction goes down as real time increases, but that the prediction of dream time values gets more accurate as we approach our base case of 600 minutes real time. Also, "Real Time" is rounded to two decimal places, and the dream time minutes are rounded to the whole number.

You can see, though, that we are still off from our given values:

I am very interested in whether or not someone can come up with a better approximation than ours, and I'd love to see it.

Probably will be more on this to come.


  1. The math works. We assume the advanced brain function is 20x, but what Yusuf actually said was that it was "about 20x" - the numbers timelines work when the advanced brain function is set at 22x - see the proof here - ... -function/

  2. 10 hrs * 20 = 200 hrs
    200 hrs / 24 hrs = 8 1/3 days
    This is the first dream level.

    8 1/3 days * 20 = 166 2/3 days
    166 2/3 days / 30 days = 5 1/2 months
    This is the second dream level.

    5 1/2 months * 20 = 111 3/27 months
    111 3/27 months / 12 months = 9 7/27 years.
    This is the third dream level.

    From here on out you can simply multiply the time spent by an additional 20 years each level down.

    This is of course assuming their calculations were rounded off for simplicity.

    1. You're really smart to have figured that out.