/generative-tarot

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

generative tarot

See paper here.

See presentation slides here.

usage instructions

  • Start with a text file themestext that contains a list of concepts.
    • In my example, themestext was generated by scrape.py.
  • Run process.py. This creates trumpstext and theresttext.
  • Run maketrumpcards.py. This creates the trump cards, and creates the first half of booklet.md which contains the advised readings.
  • Run the Jupyter notebook makesuitcards. This creates the suitcards, and creates the second half of booklet.md.

example output

This a generation using the data in this repo. Figure taken from paper.↓

This is another generation.↓

See the whole set of generated cards in svg format here.

See the images from Google that were the "inspiration" for the card face image here.

See the corresponding booklet here.

credits

The image approximation used for generation of card illustrations was lightly adapted from alteredqualia's implementation of Roger Alsing's algorithm: genetic_approx.py.

"Media Statement"

Below is the media statement for this project, written for fulfillment of the Computational Media comprehensive exam at UC Santa Cruz.

This artist statement showcases an example of my media work where I seek to simulate an interesting aspect of the human mind. This is a persistent theme in my work. In particular, I am interested in the creative aspects of the mind; because creative thoughts rely on the way people can grasp complex concepts, I am also interested in how the grasping of concepts can be captured in simulation. While this project was not meant to be a media project, it nevertheless centers on the creation of objects that are media, and exercises media-making muscles. In the end, it was the case that the philosophical goals of the project were not met, though it was a success in media-making and design.

As a motivation for the project, I try to fit together two pieces of the puzzle: the inferential view of theory of mind where concepts live in a network, and the Tarot card deck, a fortune-telling device which curates a socially relevant set of concepts and arranges them in a loose structure. Together, they become a simulation of a “mind” of the “everyman” — represented by whichever dataset the concepts are drawn out of. Materially, I generate Tarot decks — the collections of card themes, imagery, and explanations of the themes that are the essence of Tarot — and I also produce a printed physical deck from one of the generations. Then, people use the deck to perform Tarot readings. The media experience of the generative Tarot is complete when people draw storylines of their own lives and futures with the cards, showing that the deck contains a network of essential concepts that people do use to describe their experience.

The first piece of my puzzle is the inferential view of the mind: it treats one concept as meaningful only in relation to other concepts. This view fits in surprisingly well with the construct of the Tarot cards; in a past life, I had extensive experience giving Tarot readings, sometimes paid and sometimes for free.

A Tarot deckconsists of 78 total cards, with 22 cards in the “major arcana”, and 56 cards in the “minor arcana”. The major arcana are unstructured and each have a wildcard theme, such as “strength” or “death”. The minor arcana are structured in 4 suits, with 10 numbered cards and 4 court cards in each suit. The numbered cards correspond to aspects in numerology; for example, one represents beginnings and unrealized potential, and six represents harvests and abundance. The court cards represent people of various age and gender. Cards within a suit are then linked to properties corresponding to the element of the suit, whether it is fire, water, earth, or air.

Tarot is effective for telling stories about people because the card themes and imagery of the established deck are curated in such a way that every average person would find a good chunk of themselves reflected in it, with some stretch of the imagination. Some cultural anthropologist refer to an omni-homo, the every-man, that is represented by the Tarot deck, a kind of collective consciousness drawn from the common beliefs, concerns, and values that occur in society.

In a way to serve generativity, I extract the themes for common beliefs, concerns, and values of society from the internet. In theory, one could get it from any slice of the internet — a Tarot deck that represents the 4chan’ers, another that represents the Redditers, another that represents Medium users, and so on. It is more difficult to extract information from some slices of the internet than others. Considering that technical aspects of natural language processing are not the goal of this project, I took a shortcut. I used the SparkNotes literature section as my dataset, because the information in those notes are already conveniently organized into themes. This slice of the internet is all about the stuff they teach you in middle school and high school about what are the important issues of life, and, at risk of oversimplifying, I would say that most people actually retain a significant portion of that stuff into their adult years (additionally, there is at least some merit for the choice of topics in literature).

I mapped the extracted themes from the dataset into the Tarot card structure, and generated abstract images for each card that are reminiscent of its theme. The most important part of the design was the mapping of the extracted themes into the 78-card structure. The most frequently recurring themes from the dataset, such as power, death, and love, map into the 22 major arcana. Here, already, there was a striking resemblance: half of the major arcana has a perfect match in the major arcana of the traditional deck.

The remaining themes are clustered according to word similarity. (I simply used the WordNet database for similarity.) While the major arcana should afford readings that have ideas surrounding a central concept, the minor arcana should afford readings that are looser clusters, more like the structure of mycelium. It is with this design target that the clustering was tweaked: Which of the several similarity functions to use? What threshold of similarity should be “in” cluster? Should all themes be included in a cluster — making clusters more inclusive, or should some “leftover” themes be discarded? Does the order of processing each theme significantly affect the resulting clusters? In the end, “man”, “the state”, and “farming” come together as themes for one card, the kind of loose, mycelium-like cluster I aimed for. At this point, I have major arcana which are complete except for the images that need to go on the card face, and potential minor arcana that have themes, but no suit yet.

In the next step, I assign the thematic clusters — the potential minor arcana — to suits. A decision here was whether the suits should be data-based: Perhaps there’s several meta-themes that run through the working set of thematic clusters? Perhaps I could end up with the four suits of Equality, Fear, Love, and Good Fortune. Alternatively, if the suits are elemental, should they be the European Earth, Water, Fire, and Wind, or should they be the elements from a different culture, say Moon, Sun, Venus, and Night? For the sake of evaluation, I chose to do the four European elements, because that is the elements used in the traditional Tarot deck. It would be easier to compare the generated deck with traditional decks if the meanings of the suits remain constant. To match a potential card to an element, I randomly select a theme within the thematic cluster, and match it to the element it is most similar to, again according to WordNet.

Now that the skeleton of the deck is ready, the images for the cards are generated. This is the part of this project that went through the most aesthetic iteration. Traditionally, card images are composed of a main representation of the theme, but also other small visual metaphors allowing a complex reading of the card. It is difficult to incorporate multiple themes into a single image, seamlessly (for example, a woman at the center of the picture, who is also holding a cup of water and there are roses at her feet). One could certainly stitch together a collage-type image, but that is an idea that I quickly cast away because, aesthetically, I am more drawn to imagery that is smooth, clean, and causes one to ponder. That is how I came to decide on abstract images generated from polygon approximation of photos drawn from the internet, using the appropriate themes as keywords in the search. The inexactness of the approximation and the use of partial opacity in each polygon causes a haziness that prompts the imagination, but the approximation is also composed of vector polygons, which makes the image look smooth and clean.

After the digital generation procedure was pinned down, I created several versions of Tarot decks from the same dataset, producing minor variations 1) from the randomly initiated clustering of themes to map into cards, and 2) from the random (from a set of matches) selection of photos that inspire the abstract card images. There were also many iterations of the cards so that they look nice given the constraints of printing — margins, size of printed card name, and visual impact on a limited canvas of pixels (Tarot cards are larger and have a different aspect ratio than poker cards). These later iterations were done by adjusting the aspect ratio of the abstract image, as well as varying the possible number of sides, angles, color, and opacity of the polygons. Finally, they look professional and trustworthy to my eye.

The decks are beautiful to look at and handle, but I also want to see people use the generated card decks in such a way that they affirm: ah, yes, this is indeed capable of telling my life story. This is a target that I assert that traditional Tarot decks are capable of doing, therefore I wanted to see that my audience was satisfied with Tarot readings using from the deck. I did this in two ways: I gave readings to an audience on their academic, professional, and romantic past and futures; I also observed some people who have prior experience using Tarot decks give readings to others.

While this is a satisfying media project, it is difficult to say whether the project had accomplished what it set out to do: simulate an interesting aspect of the human mind — the grasping of concepts. What standards does a simulation have to meet to be successful? Sometimes the goal is to approximate the target as closely as possible; other times it might be enough to demonstrate some characteristics of the target. The audience’s satisfaction with the Tarot deck were commensurate with prior Tarot-reading experiences of the Tarot reader. Primarily, the role the generated Tarot deck played was as a vehicle for the participants’ conversations about their personal stories. A lingering question is whether the Tarot deck might also be acceptable to a different, non-academic audience: Tarot readers, whether professional or hobbyist, who actually believe in the ability of Tarot cards to connect their minds with esoteric dimensions. That user study is a project for another time.