Skip to content

pgulley/loom

Repository files navigation

Loom!

Imagined here is a simple multi-user networking add-on for Twine stories. It will give real-time monitoring of users progress through a story to a story moderator, and allow users to see the status of other users in the space with them.

Whats its for

covid-inspired telepresence weirdness

How it works

It' a simple python server which injects a socket.io client into a twine story. The only requirement placed upon the twine story is that it is written in the SugarCube engine. The only modification needed is to add a tag: {LOOM_JS} to the user javascript of a twine story and {LOOM_CSS} to the user stylesheet. If you are logged in with admin permissions, you will be able to upload your story to the server on the landing page.

How to run

The devlopment server is run via gunicorn -k geventwebsocket.gunicorn.workers.GeventWebSocketWorker -w 1 loom:app Make sure you have ADMIN_PASS, MONGODB_URI and SOCKET_SECRET defined in your environment. Make sure you have a mongodb instance available.

python reset_db.py reverts the database to its empty state.

It's Deployed!

Find a live version here if you please. Looming is a short story showcasing some of the capabilities of the platform

Development Status

MVP checklist

  • Javascript Injection and Twine Event Binding
  • Server-side event-sourced database
  • Simple AJAX bodge for client-server interaction
  • SocketIO for better client-server interaction
  • better client profile system
  • client-side UI for user presense
  • Multi-Story Support
  • client-side admin ui
  • store story graph stucture
  • Load story structure on server-side
  • Client-defined names and icons
  • flexible configuration and deployment options
  • choose a better wsgi solution for non-dev deployments: using eventlet
  • Web Interface to load new stories

MVP is done and deployed!

0.2 checklist

  • Authentication / User Sessions

    • basic universal login loop
    • new user creation
    • Story-scope permissions
      • 3 Auth Schemes:
        • None Scheme (default)
        • Login Required scheme
          • associate clients with users
        • Invitation scheme
  • POLISH TIL IT SHINES

Down the road features

  • Chat features

    • None Scheme
    • Jitsi Scheme
    • Echo Scheme
    • Tweet Scheme
  • More Elaborate Sugarcube Engine Interaction

    • Share Story Variables with Server
      • Mark editable/sharable/viewable etc
  • More Admin interaction options

    • Boot User
    • @ User
    • Edit Story Variables
  • Extended API- ifttt or RSS?

About

twine networking module

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published