Information Hypnosis – ICM Final

See the entire composition here.

This sketch is a commentary on our mind’s response to the excessive amounts of information it is forced to process. It is a visual emulation of the cloud-gazing experience where one keeps staring at clouds thinking about everything and yet nothing. The user’s experience is contained within a geodesic dome, isolating him from his environment.

// add experience video

The code uses information from an arbitrary API to make the clouds move. In the first iteration I used weather data to control the motion of the cloud, that I later removed because the data was constant and stopped the clouds from actually moving.

ICM – Final Project Proposal


I often find myself getting lost in this exponentially expanding universe of unorganized information. At times there is so much to absorb that one begins to stray into a hypnotizing nothingness. Through my final project, I want to address a certain numbness that comes with this information overload – episodes in time where one just spaces out thinking about everything, yet nothing. A lot like how one is hypnotized by cloud watching.

© 2015 A Smith Gallery

I envision a space where people lie down on the floor and look up at projections that emulate the movements and characteristics of clouds in the sky. The shapes and size of these ‘cloud-like-particles’ will be determined by the information drawn in by ‘an API’.

The users lie down on the floor and put their head inside a geodesic dome that creates a personal space for them. Inside this dome they will be able to see projections of these ‘cloud-like-particles’. This visual experience will be accompanied by sounds of wind and the occasional birds chirping.


I imagine the ‘cloud-like-particles’ to be 2D and 3D geometric forms floating across the viewers cone of vision. Presented here is a moodboard of what it would look like.


Points of Discussion:

1. What would be a relevant Dataset for this project? One that is constantly changing (preferably increasing, as the information around us does). Ex. Wikipedia? How do I track the increase in data within an API?

2. Is there an API for how much time people spend actively browsing information they actually intended to look for and at what point do they drift into random browsing?

3. How can I project the program inside a dome? Do I use a screen instead? Or multiple screens?

a. Building a dome

Week 4: Objects + Functions

This week’s task was to better organize one’s code using functions within objects – which I was able to successfully grasp and execute. However, it became slightly difficult for me to execute my idea because I couldn’t understand how to incorporate an array into this new object organization.

View the Sketch

The idea was to have the egg fall, crack and have many ants crawl across the canvas. I found that to do this, I would either need to create an array of ants or a particle system for the same, neither of which I was familiar with. On experimenting a bit with the ‘ParticleSystem’ example on the p5 website, I found I was still unable to understand the code, even though the set example made it easier for me to execute my idea. I decided to resort to an array, as I could understand the concept of it (though still not the code). After a couple of hours of reading, re-reading and trying out examples, I was still unable to understand the logic.

Another thing I could not figure out was how to layer the objects in a manner that the ants appear as if they are behind the cracked egg. For some reason the layering does not apply to objects – they don’t get called in order of their appearance in the code.

Here is my code for the sketch:

Week 3: Games

This week I teamed up with Doo Yon Kim (Don) to create a game that we call – “Fish or Bee”. We both decided to create two individual games that we then merged into one sketch. This was the most challenging part. Don did an excellent job of combining the two using the if function – where when one game plays the other game’s values or coordinates would become 0 (i.e. not appear on the screen).

I did another iteration of combining the two games using “Switch” and “Case”. I made a variable – gameMode that i wanted to switch. I made 3 cases for it:
0 –  Selection Page ( function displayReadyMode )
1 –  Fish Game ( function displayFishGame )
2 –  Bee Game ( function displayBeeGame )

Each case corresponds to a custom function that is called based on a mousePressed function.

Following is the code for my individual game – Fish Game:

Thanks to J.H Moon for all the help with combining the two games and to Don for helping me out with the little glitches.