Skip to content

A cross-platform desktop tool for authoring narrative sifting patterns for the Talk of the Town simulationist story generator.

Notifications You must be signed in to change notification settings

ShiJbey/centrifuge

Repository files navigation

Centrifuge: Node-Based Sifting Pattern Editor

Centrifuge is a cross-platform visual programming tool that helps users author narrative sifting patterns for character-based simulated story worlds. Sifting patterns search the state of the simulation, looking for matching characters, events, and scenarios. Our goal with Centrifuge was to develop a tool that enables users to craft sifting patterns without learning a text-based programming syntax. Centrifuge is built on DataScript, an open-source in-memory database and datalog-based query language. Users drag-and-drop nodes that correspond to parts of DataScripts query syntax, and Centrifuge takes care of translating their pattern of nodes into a valid query.

The current version of Centrifuge is configured for use with the Talk of the Town simulationist story generator. Talk of the Town was the simulation back-end for the award-winning augmented reality live-acting game, Bad News. We chose this simulation because in Bad News, one player acts as the Wizard. Their job is to find interesting characters in the simulation by manually coding inside a Python interpreter. This manual story sifting is a tedious process and requires knowledge of python programming and the internal simulation structure. Here is an example video of gameplay.

Centrifuge editor screenshot

How to Use

  1. Install a release build or clone a development version from GitHub (see instructions below)
  2. Start the application and create a new editor tab.
  3. Drag node types from the tray on the right, and drop them onto the editor
  4. Click and drag from ports to create connections between nodes
    • Delete node: Click the node to highlight, press delete or backspace
    • Delete link: Hold shift, click the link, press delete or backspace
  5. Click Compile in the 'Output' tab to compile the diagrams into query code.

Building Development Version

We use Yarn for package management. Please download it from npm with the following command.

npm i -g yarn

Then you can clone and run Centrifuge.

git clone https://github.com/ShiJbey/centrifuge.git

cd centrifuge

yarn

yarn start

DataScript Syntax Support

The editor transforms patterns into valid Datascript queries. DataScript is an free & open-source alternative to Datomic. Therefore it tries to offer the same query language features. Below are the features of the query language that Centrifuge does not currently support.

* Datascript JS API doesn't support in-query pull expressions

** We have a prototype function node available, but there is not yet a framework for creating custom function nodes given a set configuration parameters.

About

A cross-platform desktop tool for authoring narrative sifting patterns for the Talk of the Town simulationist story generator.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published