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.

Rivalry of kin / Discovery of the dishonour of a loved one. Grace is preferred over their kin Liam and discovers the guilt of their beloved Liam. Liam is a rejected kin. There is an object of rivalry.

An enemy loved / Adultery. Danyl is lovers with their enemy Nicola and is adulterous with Nicola. Eleanor hates Danyl and has been cheated on by their spouse Danyl.

Necessity of sacrificing loved ones / Loss of loved ones. Ewan is a hero who is forced to sacrifice their beloved Tilly and is slain by Lucas. Tilly sees the slaying of Ewan. There is a necessity for the sacrifice.

Complex situation generation (no relationships)

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

Loss of loved ones / Madness. Bethany is a kin spectator and has gone insane. Dylan is a kin slain. Kenzie-Lee is an executioner and the victim.

Supplication / Discovery of the dishonour of a loved one. Austin is a supplicant and the discoverer. Amelia is a presecutor and the guilty one. Phoebe is a power in authority whose decision is doubtful.

An enemy loved / Self-sacrifice for kin. Rahil is a lover and a hero. Courtney is the beloved enemy and a kin. Dante is the hater.

Simple situation generation

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

Self-sacrifice for an ideal. Eliza is a Hero. There is an Ideal. There is something sacrificed.

Self-sacrifice for kin. Alexander is a Hero. Elowen is a kin.

Revolt. Arthur is a Conspirator. Faatimah is a Tyrant.

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.

Vengeance taken for kin upon kin / Crime pursued by vengeance / Disaster / The enigma. Phoebe is a guilty kin and was in power but was vanquished by their enemy Evan and interrogates the mysterious Evan. Evan is an avenging kin and is a criminal pursued by Phoebe. Chloe is a relative of both.

Pursuit / Revolt / Necessity of sacrificing loved ones / Rivalry of superior vs. inferior. Kiran conspires against the tyrant Victor and is a hero who is forced to sacrifice their beloved Lewis. Victor is a fugitive being chased by Kiran and is a tyrant and a superior rival to Kiran. There is a necessity for the sacrifice, and an object of rivalry.

Madness / Vengeance taken for kin upon kin / Fatal imprudence / Remorse. Matilda is has gone insane and is a guilty kin and is the victim of the imprudent Ayla and is the victim of Ayla. Alice is an interrogator. Ayla is the victim of Matilda and is an avenging kin and is the imprudent. Daniel is a relative of both.

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: Kyle
Female: Eleanor
Gender-neutral: Toby

Male: Matthew
Female: Taylor
Gender-neutral: Kai

Male: Joseph
Female: Juliet
Gender-neutral: Charlie