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.

Conflict with a god / Recovery of a lost one. Charlie is a mortal in conflict with the immortal Maisie and seeks and finds the lost Amy.

Discovery of the dishonour of a loved one / Vengeance taken for kin upon kin. Primrose discovers the guilt of their beloved Nabil and is a guilty kin. Nabil is an avenging kin. Jakub is a relative of both.

Falling prey to cruelty or misfortune / Ambition. Isla is an ambitious person. Aisha causes misfortune to fall on Isla. Keiron is adversaries with Isla. There is something coveted.

Complex situation generation (no relationships)

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

Madness / Supplication. Joscelyn is has gone insane and a supplicant. Amber is the victim and a presecutor. Harry is a power in authority whose decision is doubtful.

The enigma / Conflict with a god. Barnaby is an interrogator and a mortal. Ethan is the seeker and an immortal.

Obstacles to love / Recovery of a lost one. William is a lover and a seeker. Shayan is another lover and the one found. 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.

Supplication. Amaris is a Supplicant. Caitlyn is a Presecutor. Kobe is a Power in authority whose decision is doubtful.

Abduction. Frederick is an Abducted. Finlay is their Guardian. Lucas is an Abductor.

Obtaining. Hollie is an Adversary who is refusing. Liam is a Solicitor.

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.

Discovery of the dishonour of a loved one / Pursuit / Obtaining / Slaying of kin unrecognized. Leon discovers the guilt of their beloved Sapphire and solicits their adversary Sapphire. Sapphire is a fugitive being chased by Leon and refuses the solicitation of Leon and is slayed, unrecognized, by their kin Leon.

Recovery of a lost one / Fatal imprudence / Obtaining / Slaying of kin unrecognized. Nathan seeks and finds the lost Brooke and is the victim of the imprudent Leo and solicits their adversary Leo. Leo is the imprudent and refuses the solicitation of Nathan and is slayed, unrecognized, by their kin Nathan.

Vengeance taken for kin upon kin / Rivalry of kin / Slaying of kin unrecognized / Deliverance. Magdalena is a guilty kin and is preferred over their kin Harry. Muhammad rescues Magdalena. Harry is an avenging kin and is a rejected kin and is slayed, unrecognized, by their kin Magdalena and threatens Magdalena. Rhys is a relative of both. 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: Bailey
Female: Nyah
Gender-neutral: Sasha

Male: Jack
Female: Amira
Gender-neutral: Jayden

Male: William
Female: Khadeeja
Gender-neutral: Charlie