This release marks the version of Loose Ends described in the accepted AIIDE 2022 paper "Loose Ends: A Mixed-Initiative Creative Interface for Playful Storytelling", by Max Kreminski, Melanie Dickinson, Noah Wardrip-Fruin, and Michael Mateas.
Loose Ends is a system that aims to help you write a story by providing AI-based suggestions on what might happen next and helping you keep track of multiple parallel plot threads.
Running Loose Ends
To run Loose Ends on your machine:
- Download the zip file attached to this release and extract it to a directory.
- In your terminal, navigate to this directory.
- Launch a web server. For instance, to launch a web server on port 8000 with Python 3 on Mac OS X, run the following command:
python3 -m http.server
- Navigate to https://localhost:8000 in your web browser. You'll be looking at the Loose Ends user interface.
Alternatively, you can also view the current live version of Loose Ends in your web browser (without downloading the files locally) by navigating to https://itsprobablyfine.github.io/LooseEnds.
How to play
The Loose Ends user interface consists of several major areas.
- The Who is involved? section gives background information about the characters in the current storyworld. In the current version of Loose Ends, a fresh cast of characters is generated each time you refresh the page, but there'll always be five characters total, and they'll always have the same five names in order.
- The What has happened? section (which we also refer to as the transcript) lists the actions that characters have performed in the story so far. At the start of a play session, this section will be empty, since nothing has happened yet. Once you've added some actions to the story, you can edit the text box below each action to describe the action in greater detail.
- The What happens next? section contains three suggestions for what might happen next in the story. Hovering over one of these suggestions will highlight the impact that this action would have on your storytelling goals (on the right side of the screen) if added to the story. Clicking one of these suggestions adds it to the story. The see more suggestions button at the bottom shows the next three highest-ranked suggestions according to the AI system (and can be clicked repeatedly to view even more suggestions), while the back to top suggestions button takes you back to the highest-ranked three suggestions.
- The Where are we going? section shows your storytelling goals. Each goal represents a sequence of actions that you want to happen in the story. The system uses your storytelling goals to decide what actions to suggest; based on what's happened so far, it also suggests new storytelling goals. You can perform any of the following actions:
- Click the ❌ button in the top left corner of any storytelling goal to remove it.
- Click a grayed-out storytelling goal suggestion to lock it in as an explicitly intended storytelling goal.
- Add a new storytelling goal by clicking the large + button below the other storytelling goals, then clicking on the type of goal you want to add.
Try playing around with different combinations of storytelling goals and seeing how the suggested actions advance (or don't advance, or even cut off) your various goals. Once you're comfortable with the basic interaction loop, try telling a complete story by repeatedly selecting actions to add to the story; editing the text description of each action; and using storytelling goals to steer the story in the longer-term directions you want it to go.