This is a study in storytelling and morphology, eventually combining Georges Polti's "The Thirty-Six Dramatic Situations" with aspects of Joseph Campbell, David Adams Leeming, and Phil Cousineau's mythology patterns to create story frameworks. The ultimate goal is to study how their pattens could be used interactively to create procedurally-generated, player-driven stories. What you see right now are baby steps, but an important foundation for future work.

Character names are selected from a list provided by The Office for National Statistics, UK (England and Wales, 2009 database).

All stories are randomly generated on refresh.

Complex situation generation (with relationships)

This is where the bulk of my work is going: an attempt to draw more meaningful relationships between characters, based on a crude mix of two (or more) of Polti's dramatic situations. It's often a bit of a mess, but occasionally touches on a bit of brilliance.

I've culled a few of the situations that the algorithm can't quite handle yet. I'm putting them back in as the algorithm becomes more robust.

Discovery of the dishonour of a loved one / Slaying of kin unrecognized. Olivia discovers the guilt of their beloved Brooke. Brooke is slayed, unrecognized, by their kin Olivia.

Abduction / Murderous adultery. Leyla is abducted by Tegan and is adulterous with Joshua. Joshua is the guardian of Leyla. Tegan is the betrayed partner.

Murderous adultery / Falling prey to cruelty or misfortune. Jayden is adulterous with Zaynab. Zaynab causes misfortune to fall on Jayden. Cody is the betrayed partner.

Complex situation generation (no relationships)

Similar to my work above, but without attempting to draw any relationships between the characters.

Disaster / Supplication. Poppy is the vanquished power and a supplicant. Lorenzo is the victorious enemy and a presecutor. Sian is a power in authority whose decision is doubtful.

Loss of loved ones / Involuntary crimes of love. Connor is a kin spectator and a lover. Nicholas is a kin slain and the beloved. Sophie is an executioner and the revealer of their crime.

Slaying of kin unrecognized / Obstacles to love. Oliwia is a slayer and a lover. Myra is another lover. Tyler is the unrecognized victim. There is an obstacle.

Simple situation generation

Nothing more than one of Polti's dramatic situations combined with random names. The most basic story-starter.

Obtaining. Amelie is an Adversary who is refusing. Mae is a Solicitor.

Remorse. Alexandra is a Culprit. Beth is an Interrogator. Macie is a Victim.

Murderous adultery. Thomas is another Adulterer. Dexter is an Adulterer. Ruben is the Betrayed Partner.

Overly-complex situation generation (with relationships)

The same algorithm as the top experiment, but mixing together four plots instead of two. The reason it doesn't really work is because it attempts to draw relationships wherever possible, resulting in entirely too many connections for too few characters. Many of the situations don't work when applied to the same characters, like a slain character still being able to discover something. Sometimes, however, it hits a nice balance by fluke. It's a curious example of the limitations of the current algorithm.

Crimes of love / Self-sacrifice for an ideal / Obtaining / Loss of loved ones. Anna commits a crime because of their love for Esmay and is a hero who is forced to sacrifice themselves for an ideal and solicits their adversary Harry and is slain by Harry. Esmay sees the slaying of Anna. Harry refuses the solicitation of Anna. There is an ideal, and something sacrificed.

Supplication / Rivalry of superior vs. inferior / Abduction / Madness. Orla is abducted by Jacob and is has gone insane. Kaitlin is the guardian of Orla. Jacob persecutes Orla and a superior rival to Orla and is the victim of Orla. Finley is a power in authority whose decision is doubtful. There is an object of rivalry.

Rivalry of superior vs. inferior / Pursuit / Involuntary crimes of love / Slaying of kin unrecognized. Amelia commits a crime because of their love for Edward. Ruby a superior rival to Amelia and is a fugitive being chased by Amelia and is the revealer of their crime and is slayed, unrecognized, by their kin Amelia. There is an object of rivalry.

Name generation

Pulls random names from UK census data, weighted for popular names. Also cross-references the male and female list to find gender-neutral options. It can currently retrieve around 8k unique names.

Male: Jack
Female: Rachel
Gender-neutral: Toby

Male: Ayush
Female: Olivia
Gender-neutral: Skye

Male: Oliver
Female: Zara
Gender-neutral: Brooklyn