GithubHelp home page GithubHelp logo

usnea's Introduction

Usnea

What is Usnea?

Usnea is an authorship tool for the creation of branching stories, dialogs, games, or whatever you decide to make with it. It is explained in (pain)full detail in the associated ACL 2020 Publication (link available soon), but as a video is worth 30K words/sec please enjoy the following [Instructional Video]

Setup

Usnea is an Appengine webapp and to use it you need to host it or find a hosted server. A server contains one unique string id for every every story and as such is ideal for a small group of people who can coordinate not overwriting each other's projects.

There are two main steps involved: setting up firebase for saving and loading and hosting the app itself.

Setting up Firebase

Follow the instructions [here] to set up a Firebase Realtime Database.

Once you've got your database set up, follow the first instruction [here] to get your firebase credentials, and paste them into src/environments/environments.ts in Usnea.

Hosting on Appengine

Follow the instructions [here] to host a nodejs app on Appengine.

TLDR the paper

Usnea is an authorship tool for branching turn based interactions that uses Semantic Matching, an Natural Language Processing (NLP) model class that takes two strings as input and predicts their semantic similarity on a 0-1 scale. Those familar with Twine will see its influence immediately, and the simplest explanation of Usnea is that it is Twine + a simple bit of NLP.

Another way to briefly describe Usnea is an editor for a directed graph with node and edge metadata, as well as project metadata; the entire purpose is to author and edit a complex JSON file.

It is designed with the following Dependency Injection features for bespoke extension to new interactions.

  • Project metadata is injectable, allowing custom global story variables.
  • Node metadata is injectable, allowing e.g. audio/video interactions to be associated with nodes.
  • A World State represented by a string to string hashmap that gates graph traversal.
  • A preview mode (similar to Twine) that allows live playtesting.
  • The NLP model is injectable, allowing the use of custom similarity models (a default impl using the [Universal Sentence Encoder] is included).
  • Persistence (saving and loading) is injectable, allowing the use of custom databases (a default impl using Firebase is included).

usnea's People

Contributors

borismus avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.