ROMEO AND/OR JULIET
AND/OR GRAPH THEORY

It is not in the stars to hold our destiny but in ourselves.
-William Shakespeare

The below constellation of choices represents all possible paths and 100+ endings present in Ryan North's wonderful chooseable path adventure Romeo and/or Juliet.

One of the pleasures of Ryan's interpretation of R&J is the sense of discovery through exploring the many branching choices of the story. As you flip through the book, even brief glimpses of the other possible choices and beautifully illustrated endings (tragic stabby endings, happy endings, weird endings and t-rex endings) encourage the reader to meander and learn more about the possibilities and structure of the narrative.

This visualization allows a different kind of exploration and discovery of the work; showing the entire structure from a bird's eye view with branching and converging fates of the characters as choices are made through the story. Even if you've haven't read the book yet, it should be possible to get an appreciation for the intricate planning and creativity that went into building this experience (hopefully with minimal spoilers!).

Pretty decision graphs aside, the book is certainly worth picking up. Not only does it play off geeky humor, nostalaglia for past Choose Your Own Adventure Books and expectations from Shakespeare's classic story in truly hilarious manner, I also found that reading this gave me better appreciation of the true cost of poor teen decisions, bad timing and worse communication skills while providing deeper insight into what made Shakespeare's works such a lasting influence.

This page was created using graphics from D3.js's force directed layout with SVG, data processing using Python's Networkx library and good old fashioned data entry gumption. You can read more about the technical aspects of implementation on my blog here.

Tips for reading the graph:

  • Hover your mouse over a passage or choice to see more information about it.
  • Click and drag passages to get a better look at the dynamic layout.
  • Circles ( ) represent the story passages.
    • The color of the passage represents the character point of view:
      • White for the reader.
      • Red for Romeo.
      • Light red for Juliet.
      • Other colors represent hidden characters and paths.
    • Larger circles ( ) indicate one of the book's 100+ endings.
    • The largest circles ( ) show the story's beginning and true ending.
  • Arrows represent the choices between passages.
    • Red highlighted choices follow the path of Shakespeare's version of the story.
    • White choices show Ryan North's elaborations on the traditional story.