Source Code

Raymond O'Connor
October 7, 2011

W
hen a bad movie shoves a silly gimmick down your throat at the expense of a coherent plot, the responsible parties are probably either trying too hard to convince you of the voracity of their central gimmick or just relying on said silly gimmick too heavily in an attempt to fill out the requisite 90 minute run time. The former may indicate that the writers and director genuinely believe that theyíre super smart and have a great idea, while the latter probably is just due to lazy writing. Regardless of gimmicks, all I really want is a good story, and in that, Source Code (2011, starring Jake Gyllenhaal and Michelle Monaghan), failed to deliver.

If this were a standard movie review, thatíd probably be enough, but consider figure 1. (Also consider figure 2, which I found while going back through my text messages. I just thought Iíd publish it for posterity.) Clearly, Brett had something else in mind when he sent that text. Iím guessing heís alluding to the time I kind of dressed someone down the suggestion that the Casimir effect http://en.wikipedia.org/wiki/Casimir_effect was somehow responsible for one or another silly contraption in Lost, but who really knows. (In retrospect, I was probably a little harsh because, after all, J.J. Abrams did show us that he knew what he was doing all along.)






Brett's proposal

Figure1: Brettís proposal.
Vance Worley's biggest fan

Figure 2:  Vance Worleyís biggest fan.

The task at hand, apparently, is to explain why Source Code is ridiculous and perhaps how it might be made better (by me, or more ridiculous also by me).

Synopsis

Imagine taking the premise of Johnny Got His Gun but remove all social commentary, add in some pseudo-scientific nonsense from any modern action movie, dress it up in the military experiment gone-wrong of Project X (fortunately sparing the sad monkeys), and put it all in the framework of Groundhog Day and youíve just saved yourself from 93 minutes of diet Inception. Equation 1 concisely summarizes this mess:

Equation 1 (1)


where ?/?t represents a derivative with respect to time, and * represents convolution.
More specifically, Captain Colter Stevens (Jake Gyllenhaal) awakes on a train struck with a case of stud-actor-confusion-face, only to find himself in the presence of one Christina Warren (Michelle Monaghan). We learn that Christina thinks that Captain Stevens is actually Sean Fentress, and Captain Stevens later verifies this by looking in a mirror and acting shocked when he sees the face of the markedly less handsome Sean Fentress. Eight minutes later the train blows up.

Captain Stevens wakes up again, this time looking even more confused, and finds himself suitably strapped into the typical futuristic-looking, physics-bending contraption. We eventually learn that heís part of a top-secret project that involves capturing the last bits of short-term memory from dead people to find the culprit responsible for their deaths. According to the movie, we all have eight minutes of short-term memory and it doesnít disappear immediately after death. Kooky military scientists then can take your dead brain hook it up to another guyís semi-dead brain (spoiler alert, Captain Stevens is a vegetable, although the reference to Johnny Got His Gun should have given that away) and replay those last eight minutes ad nauseam. Captain Stevens, the vegetable guy hooked up to the other dead brains, can then root through their final thoughts using ďquantum physics and parabolic calculusĒ [see http://en.wikipedia.org/w/index.php?title=Special%3ASearch&search=parabolic+calculus, wait it doesnít have a Wikipedia page? Oh thatís right itís made up] to solve the mystery, which, for our hero, is of who blew up the train. This is especially important because the culprit of the train bombing has a dirty bomb that he is next going to explode in the middle of Chicago [see http://www.youtube.com/watch?v=oe_vBSdLmd0].

And solve the mystery Captain Stevens does, of course. Captain Stevens finds the bomber within the source code and is able to alert those outside the source code of the identity of the bomber, saving the Cubs, Obama, the Bulls, the White Sox, Oprah, CM Punk, the Blackhawks, the cast of My Guys, and the Bears from being dirty-bombed. Where the movie flies off the rails is when Captain Stevensís actions begin altering the reality of the non-dead characters and the existing world outside of the source code. The movie ends with a new timeline, one in which the train never blew up, and his (living) handler, Captain Colleen Goodwin (Vera Farmiga), receives a text message (seriously?) from a dead (in the original time line, but not in the new one, heís still a vegetable) Captain Stevens letting her know that, although it had not yet been tested, the source code (code-named Beleaguered Castle) was in fact a success, averting not only the detonation of the dirty bomb, but also preventing the train from blowing up in the first place. Thereís also some gushy crap with dead Captain Stevens falling in love with dead Christina and they live happily and dead ever after. (Is this only creepy to me? Remember, Christina actually sees Captain Stevens as the much uglier Sean Fentress, and Captain Stevens is cool with that?)

Could it happen?

Short answer: no. Duh. Long answer: There are some credible aspects of the plot, but the ending ruins all of that. Before the ludicrous ending, there was some, believe it or not, semblance of truth to the premise. Unfortunately that premise was quickly stretched beyond all credibility when Captain Stevens began making cell phone calls and sending text messages to living people within dead peopleís memories.

1. Beleaguered Castle premise

The guy-in-charge, Dr. Rutledge (Jeffrey Wright), explains that the source code takes the final eight minutes of short-term memory from a dead person and allows another semi-dead person to explore their thoughts. He explains this phenomenon by comparing it to a light bulb: light bulbs, you see, donít immediately burn out because the electromagnetic fields donít immediately dissipate. Thatíd be a great place to start, except itís wrong. Light bulbs donít extinguish immediately because of thermal properties, not electromagnetic. (Electromagnetic fields come in a few flavors, one of which is a traveling wave. The light you see from a light bulb is an example of a traveling wave, which moves at the incredibly fast speed of light.) Dr. Rutledge goes on to compare peopleís dead brains to light bulbs, stating that the electromagnetic fields in our brains donít fade out immediately. This may be true because your brain may support standing waves, which can hang around longer (think about unplugging a battery charger with an LED indicator, that does fade out slowly because a capacitor inside is slowly discharging), but Iím not sure. Either way, Dr. Rutledge is guilty of the logical fallacy know as false analogy [see http://en.wikipedia.org/wiki/False_analogy], so itís a wonder that his contraption works at all.

2. Conservation of energy

Iíd be perfectly willing to forgive the transgressions discussed in the previous section, if the movie attempted to follow one of the most basic of laws, the conservation of energy, which asserts that energy cannot be created or destroyed, only transformed to another state [see http://en.wikipedia.org/wiki/Conservation_of_energy]. If I conveniently divide my beliefs into those that can be suspended and those that cannot, conservation of energy firmly falls in the latter.

A great example of conservation of energy violation is the infinite resolution cameras that the fine folks at CSI: Miami (or any other major city) regularly use. They see a suspect get into a car, but at first glance cannot read the license plate. The nerdy guy manning the computer says, ďWait, Iíll clean it up,Ē and the plate numbers magically come into focus. This is impossible. CSI: Miami detectives are essentially creating information, which is related to energy, out of nothing, thus violating the principle of conservation of energy.

The simplest way to illustrate the energy conservation issues with the source code is with extrapolation [see http://en.wikipedia.org/wiki/Extrapolation], or the prediction of future data points from a set of past data points, and interpolation [see http://en.wikipedia.org/wiki/Interpolation], or the prediction of intermediary data points from a set of data. If we consider the dead peopleís memories as a set of data, then the source code is interpolating those memories to allow Captain Stevens to interact with people, and extrapolating from them to allow him to discover new, but related, information and interact with people in a way that did not specifically happen in real life. An example of this is when Captain Stevens follows the ethnic-looking gentleman and eventually fights with him. Clearly, the gentleman did not fight with Sean Fentress in real life, so the source code must be extrapolating how the gentleman would behave in that situation.

a. Mathematical concept

Given a set of data points extrapolation is a method of predicting the future values of those data points given the past data. To use a juicy example, letís use the global average temperature of each year. Extrapolation is used (and abused) frequently in statistics, though here we can focus on a more principled and simplified definition. Typically, we assume that the past data we do have fits some model, and then we apply that model to guess at the next few data points. There are many different models, and those models can be based on some underlying physics (climate modeling to predict average temperature) or, if that is not available, a guess at which mathematical function best fits the data. Some simple functions include straight lines (linear extrapolation), curved lines (polynomial extrapolation), and exponential growth.

Interpolation is a related concept. Interpolation is useful when you have a set of data, but at a coarser level than you want, i.e. say you only know the global average temperature at one day per year, but you want to know it monthly. As with extrapolation, we can use some physical model or pick a function. The easiest interpolation method is linear interpolation, which requires simply connecting each data point with a straight-line segment. We can get a little more sophisticated by using polynomial interpolation or spline interpolation.

It should be noted, however, that both interpolation and extrapolation can go horribly wrong. Consider figure 3, which shows a period and a half of a sine wave (red curve) with ten equally spaced sample points (blue dots) and a linear interpolation as the blue curve. This is an example of choosing a mathematical function, in this case straight lines, to represent a function from a few data points. The interpolation is reasonably good here. Figure 4 shows a spline interpolation (blue curve) using the same data points, which is even better. Figure 5, on the other hand, demonstrates the dangers of undersampling, or using too few data points. The same sine wave is now sampled at only four points (blue dots) and the linear interpolation is outright wrong. A spline interpolation (figure 6) is no better. Even though these are somewhat contrived examples, they demonstrate how undersampling can lead to missing the main features of a phenomenon. As with CSI: Miami, if your sampled data is not fine enough, you canít invent data out of nothing. In other words, if all you have is the four sample points in figures 5 and 6, thatís the best you can ever do and youíll never recover the underlying sine wave.


Linear interpolation

Figure 3: Linear interpolation
Spline interpolation

Figure 4: Spline interpolation


Undersampled linear interpolation

Figure 5: Undersampled linear interpolation
Undersampled spline interpolation

Figure 6: Undersampled spline interpolation

The same issue crops up in extrapolation. Figure 7 shows the same ten data points in blue, and a linear extrapolation in green. A linear extrapolation simply uses the slope of the previous two data points to guess the location of the new point. Again, whatís happening here is that we know ten data points and weíre guessing at what the eleventh might be. To accomplish that, we just used the slope of the previous two points to construct a straight-line segment. As you can see, the extrapolation is accurate because those points were close together and the sine wave doesnít change too much in that region. Similar to interpolation, if we undersample, we get garbage (figure 8) and the extrapolation is meaningless. A final issue with extrapolation is that you can only go so far into the future, regardless of how fine your data set is, before you get garbage. If we were to extrapolate one more point in the future from the guess in figure 7 by following the same slope, weíd clearly be way off since the sine wave would bend back up by that point.


Linear extrapolation

Figure 7: Linear extrapolation
Undersampled linear extrapolation

Figure 8: Undersampled liner extrapolation

b. Use in the movie

In Source Code, a personís last eight minutes of short-term memory make up the data or the blue dots in figures 3-8. Captain Stevensís interactions with the dead train peopleís brains are similar to interpolation. When he interacts with a person to the extent that it alters what actually did happen, thatís extrapolation. What is implied is that the source code can in fact interpolate and extrapolate from dead peopleís short-term memories. As we have seen, however, interpolation and extrapolation are only as good as the underlying data and how well itís sampled. Even worse, if we extrapolate too far out, weíll end up with meaningless garbage.

Hereís my main issue and the point of all this overwrought analysis: there is no way, in our reality or in Source Code reality, that Captain Stevens could make a phone call or that dead Christina could check the internet on her phone. Mid-way through the movie, Captain Stevens is determined to find more about Beleaguered Castle and whether or not heís actually dead. He asks Christina to look up his name, Captain Colter Stevens, on the Internet and find out what happened to him. Thatís where the interpolation and extrapolation of peopleís memories would fail horribly. If all you have as data is dead peopleís memories, how can you invent new data out of nothing? Simply put, you canít. When live Christina was on the train, she didnít Google ďCaptain Colter StevensĒ and find out that he was reported KIA, so her dead brain canít do it either. Itís no different than the simple examples given above. Iíll buy that Captain Stevens can interact with peopleís memories, that could be valid interpolation, but as soon as he starts making phone calls and checking the Internet, conservation of energy has been violated and Iíve chucked the deuce up [see Super bass by Nicki Minaj http://www.youtube.com/watch?v=4JipHEz53sU&ob=av2e].

3. Implied time travel

If calling your live dad from inside a dead guyís head wasnít bad enough, the movie pushes us further by adding in actual time travel. The movie ends with Captain Stevens asking to get sent into the source code one last time so he can save the train passengers, even if those outside the source code believe itís all for naught. (Again, the source code is simply a recreation of peopleís memory, so anything that happens inside shouldnít affect the outside world.) To everyoneís surprise (except the viewer) Captain Stevensís actions do in fact impact our world, preventing the train from ever blowing up in the first place and seemingly allowing Stevens to inhabit the body of Sean Fentress for the remainder of time.

Up front, time travel isnít possible. Sorry. But Iím willing to buy time travel in movies because plenty of great movies involve time travel. Even better, time travel can be made internally consistent when used as a plot device; however, the movie’s use of time travel is just stupid. If we buy that the source code is just made up of dead brains, then how could it ever actually affect the past? The source code was not built as a time machine, it just replays dead peopleís memories and interpolates and extrapolates magically. Fine. But much as the way my DVD player canít mow my lawn or do my dishes, the source code canít act as a time machine.

4. Odds & ends

There are plenty of other problems with the movie that donít directly involve violating basic physics. Hereís a big one: the train blew up and everyoneís brains are probably mush. Howíd they get the memories out of mush-brains?

We also learn at the end that all the crazy flashbacks Captain Stevens was seeing during his transfer to and from the source code were actually flash-forwards! That elicited a big (admittedly nerdy) eye roll from me because really, who cares? Why is that such a huge and impressive revelation? Itís not interesting and completely irrelevant.

Given all the silly stuff in discussed so far, I feel that the director would still defend his creation. It would all probably be explained away as pointing out that it was all in fact due to time travel and you can do anything with time travel. Unfortunately, thatís another logical fallacy known as special pleading [see http://en.wikipedia.org/wiki/Special_pleading] and besides, time travel is BS anyway.

Was it any good?

One of Brettís most important criterion for judging movies is whether or not he was entertained, and honestly, that too is all I want sometimes. Brett loved Captain America because it was entertaining, though Brett does also love America. Itís like eating a candy bar, drinking a soda, or enjoying Ke$ha. No one is going to argue that candy bars and soda deserve a place next to foie gras and fine wine, and Captain America will never be mentioned together with Schindlerís List. (Remarkably, both involved pulling one over on Nazis.) But who doesnít like candy bars and soda every now and again? (I should perhaps cite false analogy again, but weíre talking about candy and crappy movies here; no harm, no foul.)

I was entertained. I probably sound like a hypocrite, because I just wrote about 2,500 words about why Source Code is dumb, but I also like candy bars, soda, and Ke$ha. Not all the time, mind you, but on a boring Friday morning off of work, Iíll indulge a little and to that extent, Source Code was not a waste of time or money. Hereís the thing though, I think that Source Code could have been better, maybe even great.

Can it be made better?

Yes, throw in some monkeys ala Project X! Failing that, I would ditch all the lame attempts at explaining the source code and just tell an interesting whodunit. Thatís really the great failure of this movie: Finding and capturing the bad guy is only ancillary to the plot. The reveal of the bombers identity happens suddenly, without much warning, and without any real investigating by Captain Stevens. That would be fine if the main plot involving Captain Stevensís situation was actually interesting, but as stated earlier, its not. I guess the director felt that whodunits are old hat, and that bogus time travel is thought provoking, but I would counter that, at its heart, The Usual Suspects is a whodunit; Memento is a whodunit, and those movies rule.

I also think that getting rid of the silly analogies to light bulbs and circuits would also go a long way towards polishing this turd. When movies go out of their way to explain their nonsense, they usually trip over themselves. Recall when Qiu-Gon Jinn explains in The Phantom Menace that the Force is made up of some weird microorganism called a midi-chlorian. That not only was dumb, but also a big reason that movie sucked. We, as a society, were perfectly willing to accept that the Force was just some strange unexplained fact of nature and some people have more control over it than others [please listen to this http://www.youtube.com/watch?v=_-agl0pOQfs]. Jake Gyllenhall only had to look to his past at Donny Darko for a solution. Donny Darko doesnít bother to explain its nonsense, and it doesnít have to because itís not necessary and even a better movie because of it.

At the very least, hereís what I would do: throw out the time travel, and just end the movie with Captain Stevens finally saving the people on the train and Captain Goodwin unplugging him from the source code. Let the viewer extrapolate from there. Let us wonder whether or not Captain Stevensís actions ultimately mattered by affecting our reality, leading us to consider whether or not our own actions ultimately matter. Iím perfectly content to regard Captain Stevens as a guy who just wanted to save some people even though it might not matter in the real world. Heís a better guy than me; Iím sure getting blown up sucks so the fact that he risked it once again shows his character. If Iím being honest, I got a little dusty when he kissed Christina after defusing the bomb. I was pretty thrilled when he handcuffed the perpetrator to a pole and called the police. Unfortunately, that was all ruined by the seriously dumb real ending.

Conclusions

I donít think Iím treading new ground here, but Iím willing and able to suspend my disbelief for any good movie, television show, or book, as long as the work follows its own established rules of internal consistency. Itís fine to interact inside dead peopleís brains, Iíll give you that, but once said dead people are checking the Internet and making phone calls to living people, youíve lost me.

Hollywood, hereís a tip: I just want a good story, forget all the extra crap. If you donít have a good story, throwing in a bunch of time travel and crazy plot devices isnít going to make up for it [see, Lost, seasons 4-6]. Even worse, when you throw in some twist ending with no basis in reality or even any real relevance to the story, youíre not making me think, you just look stupid.

Reader, hereís a tip for you: if you like soda, candy bars, and Ke$ha, you might like Source Code.

raymond.oconnor@brutalhorse.com
ink splash

Jacques Dangereux, app by WildTaters

Check out The Ringer by Camp Dracula,
available now.

The Ringer, album by Camp Dracula