Skip to content

Latest commit

 

History

History
52 lines (41 loc) · 2.24 KB

README.md

File metadata and controls

52 lines (41 loc) · 2.24 KB

Tarot of the Lost Purpose

NOT MAINTAINED

This was an experiment back in 2019 to learn React. Unfortunately, the nature of modern webdev means severay of the 'best practices' here are no longer valid. One day I'd like to rewrite this in the 'modern' recommended style, possibly with Preact or even without any framework at all. But until then, consider this code bit-rotten.

If you want to try the Tarot of the Lost Purpose out for yourself, see the official instance.

Tarot of the Lost Purpose (or just Lost Purpose) is a skeuomorphic tarot deck web application: it simulates tarot decks in significantly more detail than is necessary, and makes several design decisions with the explicit purpose of feeling like a tarot deck.

  • It uses a linear-feedback shift register for random number generation, seeded using a user-provided string with CRC32 repeatedly applied. It does this in order to simulate the fact that humans are quite bad at 'randomly' shuffling.
  • Instead of implementing a perfect Fisher-Yates shuffle, it implements a 'chunked riffle shuffle' where the deck is randomly cut and randomly-sized chunks from each half are interleaved.

For a more rambly about page, read the about page.

Silicon Dawn

Lost Purpose also supports the Tarot of the Silicon Dawn, which augments the traditional tarot deck with:

  • Five extra major arcana
  • The (VOID) suit, with five ranks (including a 0).
  • The 99s of all four traditional suits
  • Two extra cards that defy categorization.

The deck is worth a shot if you're queer/transhuman/generally Weird, but sadly out of print (as of August 2018) and unreasonably expensive to buy second-hand. Egypt Urnash has kindly given me permission to use the art assets and her interpretations.

Licensing

All of my own work (everything outside of frontend/assets) is licensed under the MIT license found in LICENSE. The assets are licensed using the per-directory LICENSE files.