My Door

Data Visualisation

Watch a week in my pandemic life told through the opening and closing of the door to my room. Hover over the doors to read more! (If possible, please see the sketch within the p5js editor, it runs a tad slow on this website)

Doors. See the code (preferably) → If it looks messy, I explain why below! ↓

Data visualisation has always seemed quite straightforward to me. Telling stories with the help of data is easy enough. There's plenty of ways to do so, for example using bar graphs, pie charts, alluvial diagrams, waffle grids, amongst others. However I've never given much thought to embedding stories and narratives within the data visualisation. Telling a personal story through a period of time with data is new for me.

I wanted to track a data point which is unique to my context and surroundings. I initially thought of tracking my digital behaviours, but it wasn't an accurate reflection of me, in this moment. I narrowed in on either tracking the number of times I would bite my nails, or the number of times the door to my room would open. However I quickly realised that the moment I would become aware of biting my nails, I would stop doing it. Although it's a great way to perhaps stop biting my nails, I'd probably end up with no data, or inaccurate data. And so I started tracking the number of times I would open the door to my room.

Before I started tracking the data, I wanted to figure out what my visualisation would look like. This would help define the parameters I would need to collect.

Ideation sketches
Ideation sketches
Ideation sketches Ideation sketches

Although I initially got bogged down in trying to use traditional data visualisation techniques, I realised that they didn't convey the essence of the data. I wanted to convey the long gaps in between me opening my door. I wanted to tell the story of my routine through the opening of the door.

Finally, I figured out a simple solution to the problem. Just as I would draw out my idea or the story I wanted to convey, the data visualisation would do the same thing.

Final sketch Final sketch

Now that I knew what the visualisation would look like, I started collecting the data in a spreadsheet.

Data collection Data collection

Development

As I collected the data, I started work on translating the drawn sketches into an p5js sketch. As I started coding out the visualisation, I realised I had two big challenges.

The first challenge was simply animating a line as it went from one end of the screen to the other end. I figured out that I would have to store the location of a point as it goes across the screen, and then draw a line using vertex(). I didn't want to simply turn off background refresh, as I needed the background to refresh for the visuals. Although in theory, all was well, and the logic worked perfectly in Processing (Java), for some unknown reason, it simply refused to work in javascript. I was trying to use PVector() to store the location values of the point as it went across the screen. I was stuck at this point, but luckily Olivier came to the rescue with a system that used an Object to store location values. This worked as I had envisioned, and now I had a system which would draw lines across the screen! A lot of work for a very simple visual element, but definitely worth the effort. Having successfully figured out how to draw a line, I got stuck in another quagmire which was drawing multiple lines across the screen, all while coordinating with another system which would sequentially create the doors.

The second issue I ran into was the use of setTimeout(), and the way it would delay the drawing of the doors if there were any slowdowns in running the sketch. As it needs a time based value, I had to calculate the timing according to the speed at which the line would travel across the sketch. After some optimisation, the speed of the sketch changed, which affected the way the doors would be drawn. The speed is also dependent on speed of the computer upon which it runs. Hence, the sketch may or may not run well depending on the hardware of the computer. This is worrying as I couldn't find a fix for the issue.

Reflection

Of the many realisations I had while creating this sketch, the most profound one was during the process of creating my own data. Not only was it very empowering, but it helped me see myself through a different lens. It's strange to objectify myself with numbers, especially ones that I have consciously generated myself. I had to make an effort in not changing the way I went about my day. I also explored new ways of narration through data analysis and visualisation. There's a great story to be told through data, and the story becomes even better with some effort and thinking. Sometimes, it pays to keep it simple.