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.

Abduction / Supplication. Kenzie is abducted by Callum. Nathan is the guardian of Kenzie. Callum persecutes Kenzie. Simran is a power in authority whose decision is doubtful.

Abduction / Disaster. Poppy is abducted by Sofia and was in power but was vanquished by their enemy Sofia. Taylor is the guardian of Poppy.

Obstacles to love / Rivalry of superior vs. inferior. Jack is lovers with Olivia. Alessandro a superior rival to Jack. There is an obstacle, and an object of rivalry.

Complex situation generation (no relationships)

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

Vengeance taken for kin upon kin / Madness. Jamie is a guilty kin and has gone insane. Sharna is an avenging kin and the victim. Caitlyn is a relative of both.

Murderous adultery / Conflict with a god. Taylor-May is another adulterer and a mortal. Sophia is an adulterer. Cody is the betrayed partner and an immortal.

Adultery / All sacrificed for passion. Ethan is another adulterer and a lover. Kane is an adulterer. Jack is a deceived spouse. There is an object of fatal passion. There is something sacrificed.

Simple situation generation

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

Conflict with a god. Zachary is a Mortal. Isatou is an Immortal.

Slaying of kin unrecognized. Michael is a Slayer. Olivia is the Unrecognized Victim.

Involuntary crimes of love. Lola is a Lover. Dylan is the Revealer of their crime. Riley is the Beloved.

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.

An enemy loved / Abduction / Slaying of kin unrecognized / Crime pursued by vengeance. Erin is lovers with their enemy Riley and is abducted by Liam. Riley is the guardian of Erin. Liam hates Erin and is slayed, unrecognized, by their kin Erin and is a criminal pursued by Erin.

Slaying of kin unrecognized / Conflict with a god / Self-sacrifice for kin / Rivalry of superior vs. inferior. Woody is a mortal in conflict with the immortal Charlie and is a hero who sacrifices themselves for their kin Megan. Charlie is slayed, unrecognized, by their kin Woody and a superior rival to Woody. There is an object of rivalry.

Rivalry of kin / Disaster / Self-sacrifice for an ideal / Loss of loved ones. Crystal is preferred over their kin Isla and was in power but was vanquished by their enemy Isla and is a hero who is forced to sacrifice themselves for an ideal and is slain by Isla. Jasmine sees the slaying of Crystal. Isla is a rejected kin. There is an object of rivalry, an ideal, and something sacrificed.

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: Kamil
Female: Lily
Gender-neutral: Jayden

Male: Samuel
Female: Chloe
Gender-neutral: Ellis

Male: Jaidon
Female: Tahlia
Gender-neutral: Krishna