This blog post expands on a story run by Wired on the analysis I did. There’s been a lot of interest in how my analysis was done. The details, including code and data, are all here. Enjoy and may the Force be with you!
There’s no ignoring it – The Force Awakens shares a heck of a lot in common with A New Hope. Luke and Rey are both desert rats that become unlikely Force-using, lightsaber-wielding heroes. And BB-8 is basically a rounder, cuter R2-D2. Kylo Ren acts like a younger, moody Darth Vader. Both movies even culminate in the Rebels blowing up a gargantuan, planet-destroying space station, for crying out loud. In so many ways, it’s practically a rewrite of the original. And yet we loved it. Why?
It turns out that the character interaction networks (showing who spoke, punched, or Force-choked who) reveal a much more intriguing relationship between the two movies that goes beyond a simple retelling.
One cool thing about interaction networks is that they reveal a lot about people’s roles. For example, popular people are typically connected to an unusually large number of other people (that’s how a Queen Bee controls her hive) and leaders connect groups that don’t directly talk to each other (that’s how they broker power). Interaction networks in movies and books work this way, too. If VII is retelling IV, then characters with similar roles (BB-8 and R2-D2, Rey and Luke, Kylo Ren and Darth Vader) should have similar positions in the social network.
Using a technique called network alignment, a computer algorithm can find a mapping between Episode IV and Episode VII characters that maximizes the overlap between networks from the two movies. Basically the algorithm links characters so that as many of the interactions between them in Episode IV are also present in Episode VII between their counterparts: e.g., if R2-D2 beeps at Chewbacca, then BB-8 beeps at Chewbacca. The key, though, is that the computer decides which characters to link only based on the interaction networks – humans aren’t involved.
Some of the mappings returned by the algorithm make sense. R2-D2 maps to BB-8. Those are the droids we were looking for. Old Chewbacca maps to new Chewbacca. Rebel X-wing pilots in IV map to Rebel X-wing pilots in VII. So far so good.
But then things get really weird for the main characters:
- Luke -> Poe
- Obi-wan -> Kylo Ren
- Darth Vader -> Rey
Whaaaaaaaa? The social networks from IV and VII are saying that Darth Vader’s role is being fulfilled by Rey, the future Jedi master of my kids’ generation. Meanwhile, Luke maps to a Force-less X-wing pilot named Poe Dameron. How can this be right?
If you’re like me, Episode IV seemed to have one story line: Luke discovers the Force and blows up the Death Star. But, the mapping above shows that, in reality, it contains two stories. The first is the battle for Rebel survival against the Empire’s ultimate weapon: Leia steals the plans and Luke blows up the Death Star. The second is the clash between the Force and the Dark Side: Luke learns the Force and Obi-wan faces his old pupil Darth Vader. In Episode IV, Luke is pretty key to both of these threads.
The genius of The Force Awakens is that it unpacks the two stories embedded in Episode IV and lets them play out side-by-side through different characters.
The truth is that, in Episode IV, Luke does very little with the Force – his primary role is using his Womp rat shooting skills to blow up the Death Star (though closing his eyes and feeling the Force certainly does help). Space station demolition is Poe’s specialty in VII. As a result, both Luke and Poe chat with a lot of Rebel personnel (from commanders down to pilots), including Leia. So that’s why Luke and Poe are linked.
In IV, it’s actually Obi-wan and Darth Vader who champion the light and dark sides of the force. In Episode VII, this responsibility falls to Rey and Kylo Ren. Crucially, the mapping algorithm doesn’t consider dark and light side character associations. What it can see is that Obi-wan had a handful of strong relationships, and three of them were with Luke (Poe in VII), Han Solo, and Darth Vader (Rey). Kylo Ren has these connections in ways that Rey does not, making him a better choice for Obi-wan’s role.
Still skeptical? I totally get it. I’m not trying to say that Rey will become a Sith lord or that Poe is going to start seeing Yoda’s Force ghost. But you’ve got to admit there’s some pretty striking parallels between IV and VII that echo our strange mapping. Luke and Poe both blow up the bad guy’s ultimate weapon. Kylo Ren is hugely responsible for awakening the Force in Rey. Not to mention, there’s Ben Solo and Ol’ Ben Kenobi sharing the same name and getting defeated in the central lightsaber battles of their respective episodes!
Do interaction networks tell the whole story? Absolutely not. But they do offer a new way of understanding Episode VII. And, if nothing else, perhaps these strange character mappings help us ponder Kylo Ren’s patricidal insecurities and Rey’s mysterious origins.
Some details about the analysis
The full list of mapped characters
Here’s all the IV -> VII character mappings that the algorithm found.
- Chewbacca -> Chewbacca. Check.
- R2-D2 -> BB-8. Check check.
- C-3PO -> C-3PO. Great.
- Leia -> Leia. Nice…
- Luke -> Poe. Discussed above…
- Obi-wan Kenobi -> Kylo Ren. Discussed above…
- Aunt Beru -> Finn. I loved Finn – he added a lot to the film. But, as structure goes, he didn’t uniquely fill any holes in the social network of the movie.
- Uncle Owen -> Han Solo. It hurts to say it, but as the structure goes, Han Solo wasn’t actually that important to VII. Of course, we know there’s a lot more to the story here than structure.
- Biggs -> Captain Phasma. Interesting that both were secondary characters involved in destroying the big bad-guy spacestation.
- Han Solo -> Lor San Tekka. In IV, Han Solo mostly interacted with Luke – Lor San with Poe.
- Camie -> Snap. Camie doesn’t appear in the released version of IV, so hard to reason about this.
- Darth Vader -> Rey. Discussed above…
- Motti -> Bala-Tik. Henchman to henchman.
- Tarkin -> Maz. Maz doesn’t have many connections, so there isn’t a lot for the algorithm to go on.
- Greedo -> General Hux. Weirdness.
- Jabba -> R2-D2. In terms of screen-time and interactions, R2-D2 is a very minor character in VII, much as Jabba is in IV.
- Dodonna -> Admiral Ackbar. Rebel commander to rebel commander.
- Gold Leader -> Admiral Statura. Focal rebel pilot to head of the assault
- Wedge -> Ello Asty. Rebel pilot to rebel pilot.
- Red Leader -> Jess. Rebel pilot to rebel pilot.
An absolutely essential shout out to Evelina Gabasova for her work building the Star Wars character interaction networks that I used. Thank you for assembling and sharing them!
The original Wired article mentioned spring layout – which is how the networks were visualized. The actual character mapping was done using network alignment, which is quite different from drawing a network. The idea behind network alignment is to figure out which nodes in a network look like the nodes in another network based on how they’re connected.
The image to the right gives an example of how a good alignment works – it tries to find nodes that have structurally similar locations in the network. In this example, the node ‘c’ wasn’t mapped because there wasn’t a node that looked like it had a similar position in the network.
To see how this works in the Star Wars analysis, we can look at the rebel pilots and Poe and Luke in the two diagrams from the Wired article. We could theoretically map Luke and Episode IV rebel pilots to any Episode VII character. But it makes the most sense, structurally, for Luke to map to Poe AND the rebel (IV) pilots to map to the rebel (VII) pilots since Poe and Luke are the only pilots who interact with anyone else. Since the quality of a character’s mapping (e.g., Luke -> Poe) depends on the mappings of other characters, there’s a rather mind-bending circularity to how network alignment works.
For the alignment itself, I used a network alignment tool called C-GRAAL. Network alignment is still a big and very open research area – so there’s no one tool that’s the “best”. Of all the options, C-GRAAL seemed like the best fit to me based on how it uses the connectivity to find high-quality mappings.