Skip to content

Instantly share code, notes, and snippets.

@mattknox
Forked from fcalderan/inception-javascript.js
Created November 6, 2010 02:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save mattknox/665149 to your computer and use it in GitHub Desktop.
Save mattknox/665149 to your computer and use it in GitHub Desktop.
/*
* Fabrizio Calderan, twitter @fcalderan, 2010.11.02
* I had an idea: could Inception movie be explained by a few javascript closures
* and variable resolution scope (just for fun)?
*
* Activate javascript console =)
*/
<script>
console.group("inception movie");
var inception = (function() {
/* on flight: arianna's dream */
var timerate = 1;
var team = ["Yusuf", "Arthur", "Eames", "Saito", "Arianna", "Dominic", "Mr.Fischer"];
console.log("Real world", team);
console.log("Time Rate is ", timerate);
console.log("1 second is %d second (what else?)", 1/timerate);
(function(timerate) {
/* Yusuf escape */
console.group("1th level: arianna's dream");
var kick = "fall in the water";
console.log("1th level team", team);
console.log("Time Rate is ", timerate);
console.log("1 second is %d second, about %d minutes", 1/timerate, 1/timerate/60);
(function(team, timerate) {
/* Arthur hotel escape */
console.group("2nd level: Hotel escape");
var kick = "elevator wreck";
console.log("2nd level team", team);
console.log("Time Rate is ", timerate);
console.log("1 second is %d second, about %d minutes", 1/timerate, 1/timerate/60);
(function(team, timerate) {
/* Mountain */
console.group("3rd level: Mountain's fortress");
var kick = "fortress destruction";
console.log("3rd level team", team);
console.log("Time Rate is ", timerate);
console.log("1 second is %d second, about %d minutes", 1/timerate, 1/timerate/60);
(function(team, timerate) {
console.group("4th level: the Limbo");
/* Limbo */
var kick = "skyscrapes collapse";
console.log("Limbo team", team);
console.log("Time Rate is ", timerate);
console.log("1 second is %d second, about %d minutes or %d hours",
1/timerate, 1/timerate/60, 1/timerate/3600);
console.groupEnd();
return kick;
})(team.slice(2), timerate/12); /* 4th level */
console.groupEnd();
return kick;
})(team.slice(1), timerate/12); /* 3nd level */
console.groupEnd();
return kick;
})(team.slice(1), timerate/12); /* 2nd level */
console.groupEnd();
return kick;
})(timerate/12); /* 1st level */
})();
</script>
/*
* What is the most resilient parasite? Bacteria? A virus? An intestinal worm? An idea.
* Resilient... highly contagious. Once an idea has taken hold of the brain it's almost
* impossible to eradicate. An idea that is fully formed - fully understood - that sticks;
* right in there somewhere.
*/
@qcgm1978
Copy link

qcgm1978 commented Mar 4, 2019

The period of the final of the film reveals about forty years passed because the older man is about 80 now and was about 40 before the dream. So the period hours is 4036524. There are total 5 levels of all the dreams so the time rate should about 1/Math.pow(4036524,1/5)≈1/12.85≈0.078.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment