Ancestor-Photomancy: what does your ancestors pictures tell about your future?

For this week’s assignment we had to create an electronic generated -omancy: a divination method that could forecast the future based on an object, user interaction or random selected event. Thus, I created a tool that, from uploading your ancestors b&w old pictures, you can see a specific prediction related to the data collected from that image. I called it ANCESTOR PHOTOMANCY.

So a divination based in your astrology assume that the stars interfered with the moment you were born creating specific traits that shape who you are and your destiny. Accordingly, I started to think about tangible aspects of nature and history that definitely change your life and are responsible for our very own existence – and consequently our future.

I feel it is indeed crazy, even though very obvious, to stop and think that we are here being who we are because some people in the past lived the way they did – people we didn’t get to know, have very little knowledge about their stories and personalities, and, of course, if you go way back then, people that we can’t even name, trace and know their origins.

So, I asked my mother in Brazil to scan and send me some pictures of my old relatives.

It’s so beautiful the aesthetics of those images. The posed way they appeared in the images, the clothes, the colors of the printing. It’s funny to think there is a bit of each one of those barely strangers inside me, and magic somehow. So, for this divination ritual I decided to play with the aspects of the images and connect that to a Tarot reading API and see what that could tell me about my future.

—- of course, this exercise has a playful approach so I am not really looking forward to forecast my future, but to play with the concept and explore electronic divination experiments.

The easiest way to analyze images is through brightness, and if you have B&W images that’s a very easy thing to do. So, I found this algorithm inspired in a project made by a colleague that would give me a number from 0 to 100 for qualifying the brightness of the images. Once having this number, I send it to the tarot reading API that will assign a correspondent Tarot Card and choose a random fortune_telling” string from the 3 options on that specific card.

Here you can check the code:

//not so serious ancestor-picromancy engine to give you a glimpse of what the future holds
// using these tarot explanations

let myImage;
let pix;
let rank; // king: rank 25, queen: rank 24, knight: rank 23, page: rank 22;
let brightness;
let fortune_array = [];

function preload() {
myFont = loadFont('assets/Kristi-Regular.ttf');
myImage = loadImage("pics/ancestor.jpg");
title = loadImage("etch.png");
data = loadJSON("")

function setup() {
createCanvas(windowWidth, windowHeight);
translate(windowWidth / 2, windowHeight / 2);
image(title, 0, 0);
text("ASK YOUR ANCESTORS TO KNOW", windowWidth/3.25, windowHeight/3.6 - myImage.height*0.1/2 - 45);
text("WHAT THE FUTURE HOLDS", windowWidth/3.5, windowHeight/3 - myImage.height*0.1/2 - 45);
translate(windowWidth / 2, windowHeight / 2.1);
image(myImage, 0, 0);
//get average brightness of image and match it to card rank in tarot set;
console.log("rank: " + rank); //can somehow not access "rank" as a global variable ...???
// search as well for king, queen, knight and page ranks
if (rank > 21){
extra_ranks = ['page', 'knight', 'queen', 'knight'];
rank = extra_ranks[rank - 22];
let fortunes = data.tarot_interpretations[rank].fortune_telling[round(random(data.tarot_interpretations[rank].fortune_telling.length -1),0)];
text(fortunes + ".", windowWidth/2, windowHeight/1.2)
let fortunes = data.tarot_interpretations[0].fortune_telling[0];

// function taken from
// converts each color to gray scale and returns average of all pixels
// brightness: 0 (darkest) and 255 (brightest)
function getImageLightness(imageSrc,callback) {
img = document.createElement("img");
img.src = imageSrc; = "none";

let colorSum = 0;

img.onload = function() {
// create canvas
let canvas = document.createElement("canvas");
canvas.width = this.width;
canvas.height = this.height;

let ctx = canvas.getContext("2d");

let imageData = ctx.getImageData(0,0,canvas.width,canvas.height);
let data =;
let r,g,b,avg;

for(let x = 0, len = data.length; x < len; x+=4) {// noprotect.
r = data[x];
g = data[x+1];
b = data[x+2];

avg = Math.floor((r+g+b)/3);
colorSum += avg;

brightness = Math.floor(colorSum / (this.width*this.height));
// map & round brightness to 0 - 10 value of Tarot cards
brightness = round(, 255, 0, 25), 0);
rank = brightness;
callback(brightness, rank);


// map 0 - 255 average brightness values to 0 - 10 Tarot card ranks
// (taken from = function (in_min, in_max, out_min, out_max) {
return (this - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;

// round values
// (taken from
function round(value, decimals) {
return Number(Math.round(value+'e'+decimals)+'e-'+decimals);

// append all entries into array for ranks
// (not taken from anywhere ;)
function find_ranks(key){
for(i = 0; i < data.tarot_interpretations.length; i++) {
if (data.tarot_interpretations[i].rank == key){
console.log('found matching rank in array ' + i);
console.log('found matching rank in arrays ' + fortune_array)
rank = fortune_array[round((random(fortune_array.length -1)),0)];
console.log('selected rank in array ' + rank)

// go fullscreen and resize if necessary
function windowResized() {
resizeCanvas(windowWidth, windowHeight);

For now I uploaded the images right on the folder directly in the code. A *must* for the  iteration would add a user input in the browser with the CTA “upload your ancestors B&W image here” so everyone can actually use it.

Below you can check what my ancestors said about my future in this experiment.

Angelo and Sara think that I should reconsider my decisions –

Francisco disagrees, and has a more positive view –

Pedro, Sara and Mauricio are telling me to watch out —

AR Tarot Reader

In this post I will go through the research/ideation/first prototype of an AR Tarot Reader app to augment and give life to these ancient cards in order to  help users connect with its symbolism, stories and, ultimately, themselves.

Tarot and Emotional Intelligence

Tarot is a divination ritual originated in the mid-15th century to help people connect through symbols to understand the present and forecast the future. Those symbols are pulled from a history of human myths and archetypes and are part of what Carl Jung would call the collective unconscious. It is an interesting tool where, through tangible objects such as cards, participants can project their feelings and thoughts. By allowing them to see the parallels between the stories represented in the cards and their own experiences,  people can take a moment to meditate on their own environment and behavior – action that can influence future outcomes. Therefore, Tarot is a powerful tool for self knowledge.

With the rise of religious bricolage, people are increasingly partaking in the Tarot ritual both by visiting formal card readers and by purchasing their own cards, becoming readers themselves. Accordingly, several workshops, events, books, blogs, YouTube channels and Mobile Apps on the subject have been developed in the past years.


Tarot Apps

As a digital creator, I have been taking a close look at the current Tarot mobile apps. Most Tarot apps today either function with two main approaches: as an online “card taker”(as they are randomly/digitally picked for you), or as a guide to learn the meaning of the cards according to  the outcome of a physically played one – sometimes they can also combine both of these functions. Still, I believe that neither of those actually works effectively for the purpose of helping the user identify with the card’s stories and meditate.

I think that Tarot is a tactile experience – holding the deck in your hands, shuffling the cards, turning them over one by one…if you make it 100% digital you take great part of that Tarot magical moment out. Still, by playing it digitally, it is really easy to access informations and symbolic meanings. Unfortunately, when you make an app that is only a guide, you have to manually look for that specific card name and its meaning and, when you finally find it, you will discover that the information provided feels incomplete as it is usually displayed as shots (a paragraph or two) of content.

Below follows some examples of the Top 2 apps that I selected. I really LOVE the design of the first on and the UX/UI is great.

Golden Thread Tarot


Tarot and Augmented Reality

With those pros/cons in mind, I started to think about creating an App that would use Augmented Reality to bring the Tarot cards to life, as a tool to promote emotional intelligence. And I was not the only one, there is already a developed version as you can check:

Again, even though I see a lot of potential in the approach and the AR integration works great, it simply lacks content. For me it works more as an Augmented Reality Tech prove of concept than an actual tool that people would use to play Tarot. Also, it is very game-icky. Accordingly I see that as an opportunity to create a more interactive and content-based experience.


My idea

As a way to explore how to use UX in AR and to tell the stories of the cards, my idea is to  and personify each Tarot card. Based on the idea of the article/prototype experience AniThings: Animism and Heterogeneous Multiplicity  as the user places the desired Tarot under their phone’s camera, the card would show some information and serve as a virtual button, that when pressed would tell its symbology, story, and meaning.

By coming to life I mean start talking, as I would work mainly with sound. Visually I would display text and maybe some sparkles or some kind of smooth visual feedback to let the user know that by pressing the card he/she is activating the sound. I believe that working with too much visual animations or actual visual characters would take some of the meditative characteristics that I aim to incorporate in the experience.

Press play to check the prototype:


Further on, maybe even with AI, people would be able to have an actual conversation with each card, like a “Tarot Alexa”.

Birkat Habayit: My Electronic Blessing for the Home

In Eletronic Rituals class we have been discussing the definition of rituals and trying to understand what this concept means in the post modern *digital* era.

For me, ritual is interpreted as an active process of engagement and meaning making to enact a sense of belonging that makes the collective real (Burroughs, 2014). In this affirmation, I recognize that ritualization involves “a particular way of naming the social world” (Couldry, 2002), still, I would like to focus my approach on the subject as “a way of acting that is designed and orchestrated to distinguish and privilege what is being done to other, usually more quotidian, activites.”.

Therefore, for our first assignment, where we should imagine an “electronic” ritual and prototype the necessary systems to perform it, I decided to revisit and create a digital version of one of my family’s traditional jewish home blessing.

Since my boyfriend and I moved to our new place in New York  my family have been asking me to do the blessing of the home. According to both of my grandmothers, The “evil/greedy eye” isn’t something we should play with:  “It’s for protection Ilana!!! We have to send those evil/greedy eyes away!”. Still, even though I moved around 4 months ago, I haven’t done the blessing yet.

The blessing of the home or ברכת הבית (Birkat HaBaiyt) is a Jewish prayer often inscribed on wall plaques or hamsas and featured at the entrance of some Jewish homes. In the home, the blessing is traditionally hung on the wall next to the front door or next to a window. It is meant to drive any evil spirits out of the house and protect the occupants within. There are various versions of the prayer.


Hebrew Transliteration English Translation
ברכת הבית:
בזה השער לא יבוא צער.
בזאת הדירה לא תבוא צרה.
בזאת הדלת לא תבוא בהלה.
בזאת המחלקה לא תבוא מחלוקת.
בזה המקום תהי ברכה ושלום.
Birkat habayit:
Bezeh haššshaˁar lo yavo tzaˁar.
Bezot haddirah lo tavo tzarah.
Bezot haddelet lo tavo bahalah.
Bezot hammaḥlaqah lo tavo maḥloqet.
Bezeh hammaqom tehi b’rakhah v’shšalom.
Blessing for the home:
Let no sadness come through this gate.
Let no trouble come to this dwelling.
Let no fear come through this door.
Let no conflict be in this place.
Let this home be filled with the blessing of joy and peace.

(source: Wikipedia)

So I decided to — finally — bless my home AND do it through AR.

The blessing is beautiful! I mean, is a good mantra to have. I don’t think I really believe in “evil/greedy eye”, but I do believe it is an interesting passage, and a good meditation to say to yourself and to the people who live with you. Besides, is a tradition, and repeating a ritual from my family, rooted to my religion, makes me feel like I belong somewhere and am part of something bigger.

“For attitudes to become definitive, they must be cultivated by practice, and the name for sustained, value-laden attitude practice is ritual. […] In ritualizing, human beings discover, then embody and cultivate their world views, attitudes and ethics.” Grimes (2006, p. 135)

I believe that the ritual I recreated can remind people to take care of their home, to nurture a safe space and feel grateful about it. I think that by doing it in a more interactive you can make it more playful and engaging for people to bless their own spaces. It did indeed help me root and feel connected to my family.