NaNoGenMo / 2023

National Novel Generation Month, 2023 edition.
28 stars 2 forks source link

Resources #1

Open hugovk opened 1 year ago

hugovk commented 1 year ago

This is an open issue where you can comment and add resources that might come in handy for NaNoGenMo.

There are already a ton of resources on the old resources threads of previous editions:

ikarth commented 1 year ago

There have been some interesting story generation systems that have come out of academic research in the past couple of years. So here's a (non-exhaustive) list of a few of them. Plus a few old ones.

The list is biased toward projects that take a simulation approach, which is, of course, only one way to try to generate a story.

Story generation systems with source code available

Anthology is a social simulation framework. It's intended to be an extensible way to build a system that has things like character relationship, agent decision making, etc. Video Presentation. Javascript/NodeJS. 2022.

Praxish is a rational reconstruction of Versu. There's an example of how it works in index.html (look in the browser console) but you'll probably want to read the paper to get the explanation. Praxish: A Rational Reconstruction of a Logic-Based DSL for Modeling Social Practices Javascript. 2023.

Gossamer Gossip simulation. Uses a cycle of witness, reflection, propagation, and decay phases to model the spread of gossip between characters. Paper: Toward Better Gossip Simulation in Emergent Narrative Systems Javascript. 2022.

Step, a programming language for text generation. A language that can be used to implement a wide variety of text generation techniques; from context-free-grammars to HTN planning. Has an interactive debugger. Paper: Step: A Highly Expressive Text Generation Language C# and Step. 2022.

Neighborly: A Sandbox for Simulation-based Emergent Narrative. Johnson-Bey, Shi and Nelson, Mark J, and Mateas, Michael. An extensible agent-based settlement simulation, inspired by things like Talk of the Town and Dwarf Fortress. Python. 2022.

Glaive Narrative Planner A story system where characters have their own goals, but the narrative shepherds them toward author goals. Java. 2014.

Micro Talespin Warren Sack's reconstruction of Jim Meehan's TALESPIN. Common Lisp. 1992

Meta-AQUA Talespinpart of the META-Aqua meta-cognition story understanding system. Lisp.

Interesting papers

Curating Simulated Storyworlds James Ryan's thesis on storyworld simulation covers a lot of ground, with a deep dive into the history of story generation and a discussion of James Ryan's own simulation systems, such as Talk of the Town and Bad News. 2018.

Gupta, Laxmi, "A variant of tale-spin with independent data and rule bases" (1986). Thesis. Rochester Institute of Technology.

Erica Jurado, Kirsten Emma Gillam, Joshua McCoy. Non-player character personality and social connection generation 2019.

Stacey Mason, Ceri Stagg, Noah Wardrip-Fruin, Michael Mateas. Lume: A System for Procedural Story Generation. 2019.

Jacob Garbe. Increasing Authorial Leverage in Generative Narrative Systems. Thesis. 2020.

ikarth commented 1 year ago

A few more:

Talk of the Town: "A generator of American small towns, with an emphasis on social simulation." A major part of James Ryan's dissertation research on emergent story simulation. Python. 2016.

MESSY-71 A reimplementation of Sheldon Klein's MESSY-71, a framework for simulationist story generation. (The original was in FORTRAN) Python. 2022.

LiSE - "LiSE is a tool for developing life simulation games." Python. 2023.

Agent-based simulations have been a thing in science for a while - SugarScape was an influential Artificial Life project that simulated an artificial society and was used as a form of computational sociology to test hypothesizes about societies that we don't have direct access to. Some agent-based systems include Mesa (Python), MESON (Java), AgentMaps (Javascript), GAMA (Java), AgentPy (Python).

Emergent simulations tend to produce a lot of stuff that could be part of an interesting story. Some novel generators have just used the log of events, writing a chronicle or bare recounting: there's a lot of successful projects that take that approach and generate novels by playing SkiFree or combining text adventures and programming language implementation techniques. But you can also be selective in how you use the transcript of events.

One approach to generating a story from a collection of events has been termed story sifting: you sift the list of events to find events and relationships between events that tell interesting stories.

Centrifuge - Intended to sift Talk of the Town style events Typescript. 2021.

Winnow - a declarative domain-specific query language for story sifting. Javascript. 2021.

statistical-sifting "Select the Unexpected: A Statistical Heuristic for Story Sifting" Javascript. 2022.

xekl commented 1 year ago

Fantastic collection, thanks for sharing!

tra38 commented 11 months ago

A bit too late for NaNoGenMo, but I might as well document it here just in case.

Fears of ‘irreversible damage’ to literature as AI wins award for sci-fi novel---South China Morning Post (archive.is link)

The author in question, Shen Yang, created a rough draft of 43,000 Chinese characters generated in just three hours with 66 prompts, and his final draft is 6,000 Chinese characters. Yang's novel got the support of 3 out of the 6 judges, meaning it won second place - along with 17 other entries.

“After we went through dozens of prompts, the AI generated all of the content – from the pen name, title and text to accompanying pictures. It was asked to write in the literary style Kafkaesque,” Shen said, referring to the distinctive writing style of Bohemian novelist Franz Kafka, which involves portraying terrifying situations in an objective tone.

“This is the first time AI writing has won a literary award in the history of literature and of AI,” he said, adding that the creation process of the novel would be detailed and made public “for anyone who would like to learn how to create good fiction with AI”.

I look forward to seeing how Shen Yang's process works (and maybe even reading the translation of Shen Yang's fiction as well). However, I feel that what Yang did was write prompts to an LLM to generate a bunch of text, and then cherry picked which text to actually use, which isn't exactly that revolutionary, but eh, if it works, it works. LLMs are really good at generating text, and you can outsource the editing process to the human being.

(That being said, it must be noted that only one judge was notified about the AI origins of the work before judging, and another judge managed to figure it out during judging. So 4 out of the 6 judges thought the work was human-generated, which may have impacted how they felt about the work. Had Sheng Yang disclosed the work's AI origins, would he has still won an award? I'm not sure.)


Here's an editor's review of the piece as well:

It was not easy to recognise that Shen’s piece was generated by AI, said Fu Ruchu, who is the editorial department director at the People’s Literature Publishing House.

“Science fiction writers often pay more attention to creativity and scene description than language,” Fu said. “I think this novel is well done and logically consistent.”

She said AI could pose a threat to writers of suspense novels and science fiction, and warned about what she believed was likely the irreversible damage to literary language caused by AI writing.

“The sense of language in this novel is very weak. I think this sense of language may become even rarer in the future,” she said. “With more AI writing, it will be more scarce and elusive.”

And since my first thought is that cherry-picking took place here, I suspect that Shen Yang may have just selected text that focuses on creativity and evocative scene descriptions. Shen Yang couldn't control the "language", which stays constant throughout, but he can rely on the creativity and scene descriptions to compensate for the lack of, well, the human touch.


The Story's Premise:

“In the metaverse’s edge, lies the ‘Land of Memories’, a forbidden realm where humans are barred. Solid illusions crafted by amnesiac humanoid robots and AI that had lost memories populate its domain. Any intruder, be it human or artificial, will have their memories drained away, forever trapped within its forbidden embrace.”

The story centres on a metaverse explorer named Li Xiao, who used to be a neural engineer in the real world. After accidentally losing all memories of her family during an experiment, she became interested in the legend of the “Land of Memories”, and began to hope that her lost memories could be retrieved in the metaverse.