in between life & death

2022

undergraduate thesis,
at science gallery bengaluru.

for my undergraduate thesis, i spent 16-weeks with science gallery bengaluru conceptualising a public-engagement programme for psyche — a digital exhibition-season for young adults that explored the mind. through my project, i intended to bring science back into the hands of people (as opposed to institutions), and use it as a systemic way to answer people’s questions.

i first began to understand what young adults were curious about, and, if they could have (scientific) answers to anything in the world — what would their questions be?

eventually, i identified an existential dread that environed many of them; manifesting into questions like — why do we do what we do and what is the point of it all? so, i set out to bring some sort of existential peace by finding answers to that question in different branches of science.

eventually, i arrived at human-need theories — the idea that a human being would attempt to claim a list of common needs for every single individual on the planet formed a fascinating premise. my reading suggested that almost all human motivation theories after a theory of human motivation (by a.h maslow in 1943) were either extensions or refutations of the same.

diagram from wikicommons.

although currently infamous, it was regarded a pioneering theory at the time. maslow suggested that human beings attempt to fulfil higher needs on the pyramid when conditions for the lower ones were sufficiently met. this seemed like an interesting system for a video-game, and i decided to interpret each hierarchy as a level that a person-controlled digital particle must pass through.

a video trailer for the game.

the last hierarchy — self-actualisation — was the most interesting one for me to interpret. i disagreed with maslow, and maintained a stance that no human being can ever really ‘actualise’ (or fulfil their creative potential). so, the end of my game arrives randomly for all players, as they wander around in space trying to self-actualise; with a probability of death kicking in at any second.

this decision makes it an anti-game of sorts — players would play to win nothing at all and arrive at a random end, irrespective of their skill.

my submitted thesis can be found here, and the game can be played on a computer operated web-browser here.


effect:

the game sat quietly in the psyche media lounge, and 121 unique people played it within the first month. i used the game as a tool to conduct virtual workshops, where we would discuss the structure of the game, human-need theories and collectively wonder about the point of it all. here are some things that the participants said:

“The experience of the game felt meditative and brought about a rather primal human desire from within me.”

“I later realised that we don’t have to eat all the food available and I was able to survive for longer. Interesting how this correlates with the concept of greed.”

“Love how the game has been able to start very different conversations!”

“Learning to code really does empower you in more ways than one.”

“Coding does not seem to be as hard as I thought it would be.”

when the game was released, i couldn’t come to terms with the low quantitative impact it made. jahanavi, the founding director of science gallery bengaluru, responded to my disappointment and said:

“It’s not the numbers but the quality of engagement that matters. Impact one person’s life, but do it well.”

this project also won the best graduation project at indian institute of art & design in 2022, was featured in the 2022 p5.js global showcase and presented at the cc-santé annual community conference in 2024.


interpretation, logic and programming:

this was the first project i made using p5.js, an open-source javascript library for people with less / no programming experience. the code can be found here, and my programmatic-decisions are explained below.

The game had 5 stages for a digital particle to progress through. Players woke up as a digital particle (suddenly being given ‘life’) in a dark space. Movement of the particle was controlled through the p5.js lerp() function. Move the mouse somewhere, and the particle slowly moves there.


heroPosition = lerp(initialPosition, newPosition, amountOfInterpolation);

The first stage (or level) was physiological needs. This was interpreted as simply regaining the energy that the particle expends by breathing & moving. Food was created at different intervals of time, and the particle must be moved close to the food source for it to eat the food (much like the real world).


class Food {
  objectProperties {
      size,
      colour,
      position
  }

  eatenStatus {
      if (eaten == true) {
          foodDoesNotExist();
      } else {
          foodExists();
      }
  }
}

Next was the stage of safety. Hostile particles flew in from random places at random speeds and a collision detection algorithm was used to recognise whether the hero particle successfully steered away from them or not. If not, the particle would die.


var d = distance between heroObject and hostile particle[i]; 

if (d > threshold) {
  heroObject dies
} else {
    heroObject survives
}

The next stage was a complicated one to fit into a system of logic: belonging & need. I interpreted love (at the time) as companionship. In the lonely space, another similar looking particle appears and the hero particle must move in at a desirable speed to ‘connect’ with the other particle (used velocity to program ‘consent’).


//Free moving companion object

if (companionObject.x < 0 | companionObject.x > width) companionObject.xSpeed =
    companionObject.xSpeed * (-1)
if (companionObject.y < 0 | companionObject.y > height) companionObject.ySpeed =
    companionObject.ySpeed * (-1)

//Calculating whether the heroObject is moving towards the companion or not

detectMouse() {
    if (mouseX < companion.x + companion.r / 2 + leeway) &
        (mouseX > companion.x - companion.r / 2 - leeway) &
        (mouseY < companion.y + companion.r / 2 + leeway) &
        (mouseY > companion.y - companion.r / 2 - leeway) {
            mouseOnTarget = true;
        } else {
            mouseOnTarget = false;
        }
}

If a player made it till this point in the game, they had progressed through the Hierarchy of Human Needs in a linear fashion, one after the other. However, life is rarely like that. I programmed a shortage of food and the arrival of more hostile particles at this juncture. Once conditions were stable again, the hero particle was suddenly zoomed out into the grander universe where other similar particles existed. The hero particle now had to connect with the others (make friends) and take care of them (fulfilling esteem needs). At this point, the game became an autonomous system (friends moved independently, ate food and could also die from starvation).


for (let i = 0; i < numberOfFriends; i++) {
    for (let j = 0; j < numberOfFood; j++) {
        if (food[j].contains(friendPosition[i])) {
            friend[j].radius = friend[j].radius + food[i].radius;
            food.remove(i);
        }
    }
}

Finally, the hero particle reaches the level where it can self-actualise. After all, that’s what it’s been about, reaching this stage where the grand question of life can be answered and it can finally see what’s on the other side. However, at this stage, an algorithm (death) kicks in which has a 70% chance of the particle dying unexpectedly every frame (60 times in a second on most computer screens).


acknowledgements:

mentored closely by shaunaq & saibal; and in passing by multiple members of science gallery bengaluru and indian institute of art & design.

also, my thanks to many friends & strangers who contributed to the research and attended the workshops.