• Stars
    star
    228
  • Rank 174,291 (Top 4 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created almost 8 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A JS framework for writing mutable stories

Windrift

A JavaScript framework for writing mutable narratives

Integration tests

Windrift has been used to author interactive hypertext stories including the award-winning Harmonia in 2017, Stone Harbor in 2016, and The Ballroom in 2019, all by Liza Daly. It was also used by Enrique Henestroza Anguiano to write The Imposter (2018) and José Carlos Dias to produce the Portuguese translation of Stone Harbor in 2021.

Documentation

The official manual is continuously published as features are added and is itself a Windrift story. The manual is the best way to quickly get an overview of Windrift. Corrections and requests for coverage are gratefully accepted.

Example stories

Stories demonstrating use of Windrift 2 from the basic to the advanced are available as part of the official manual , as well as in the Windrift Playground. Source code is available for all example stories.

Quick start

Dependencies

To ensure you're using a fully-compatible version of Node, use Node Version Manager. Follow its installation process for your platform and then run:

nvm install 18
nvm use 18

Then to install Windrift:

npm install

To start a new story

npm run new <story-id>

The story identifier must be a single string, like "west-of-house" or "colossal-cave." See the manual for details.

To run the local development environment

npm run dev

Other commands, including deployment options, are described in the Windrift manual.

About version 2

This is a complete rewrite of Windrift, now based on NextJS and written in TypeScript.

Windrift no longer separates the core library from the web framework, which was previously available as the windrift-starter repo. Keeping windrift-starter and windrift core separate made for a confusing installation and update process, and neither was useful without the other.

Windrift 2 unifies them into a single NextJS application, capable of hosting multiple stories. Authors can take advantage of any affordances offered by NextJS, including the free deployment options via Vercel.

Because the core Windrift code is bundled with each story repository, authors can fully modify or alter any fundamental behavior of the library.

The v1 branch is no longer receiving updates.

Contributor acknowledgment

  • 6notes: Playwright test suite conversion

More Repositories

1

there-are-stars

A self-generating story that gets longer the more stars it gets
Jinja
362
star
2

nanogenmo2014

Seraphs: Procedurally generated Voynich Manuscript, produced for NaNoGenMo 2014
Python
108
star
3

brobot

Python
96
star
4

a-physical-book

For National Novel Generation Month 2017
JavaScript
72
star
5

blackout

NaNoGenMo 2016 entry #2
Python
40
star
6

surrealisme

Generate a 20s-style surrealist book
Python
39
star
7

vanderbot

Python code to generate color study graphs
Python
34
star
8

utopia-novels

A small collection of 19th century utopian fiction
HTML
29
star
9

a-letter-groove

Cut away words from digital books and render the resulting images
JavaScript
18
star
10

guesso

Training a convolutional neural network to guess the age of fine art paintings and prints
Jupyter Notebook
15
star
11

harmonia

An interactive story
JavaScript
14
star
12

nanogenmo2015

Entries for NaNoGenMo2015
Python
12
star
13

windrift-starter

A starter codebase for a Windrift game
JavaScript
11
star
14

soamazingquote

A Twitter bot that misattributes quotes.
Python
11
star
15

first-draft-of-the-revolution

An interactive fiction work authored by Emily Short and coded by Liza Daly and Inkle Studios
JavaScript
10
star
16

stone-harbor-game

Source code for the interactive story, Stone Harbor
JavaScript
7
star
17

trapped-in-the-q

NaNoGenMo 2016 entry #1
Python
6
star
18

botilius_syrus

A Twitter bot that tweets out the aphorisms of Publilius Syrus (fl. 85–43 BCE), and annotates them with emoji
Python
5
star
19

page-scan-corrector

Utility for using opencv to detect and reformat page scans, as for OCR
Python
4
star
20

save-as-web

JavaScript
3
star
21

windrift-playground

Worked examples for Windrift
TypeScript
3
star
22

i_luv_recipes

Twitter bot that chooses a random recipe and then makes random substitutions to it, like every recipe commenter ever.
Python
3
star
23

browser

Following along with https://browser.engineering/
Python
2
star
24

napogenmo2017

Entry for National Poem Generation Month 2017
Python
2
star
25

projects

Miscellaneous public projects
JavaScript
2
star
26

worldsgreatestbill

A twitter bot that makes legislature even greater
Python
2
star
27

nanogengenmo2022

A program to write a program to write a novel
Python
1
star
28

a-pickler

A translator and generator to produce text in the form of A Pickle for the Knowing Ones (1802)
Python
1
star