Data Portrait
I used this project as an excuse to get a substantive answer to a question my girlfriend has posed since moving in with me: do I drink an excessive amount of water?
The Portrait:
(If, for some reason, the above sketch fails to run, try copying and pasting this link: https://editor.p5js.org/tobij622/sketches/-CBR5Im_2)
I chose the subject of the number of glasses of water I drink per week as, for a reason unknown to even me, my absurd preoccupation with hydration was sure to net me dozens of datapoints of the course of a week. In total, I drank 88 cups of water in 7 days, roughly on track with Mayo Clinic's more-or-less concerningly high recommendation of 15 cups of water a day for adult males.
I started collecting my data the morning the assignment was given, and arbitrarily decided to start the day's tally at 6 AM, roughly when I wake up to spend time doom-scrolling through Twitter for two hours before properly starting the day. I decided to immediately build a spreadsheet to keep track of my water consumption, divided into morning, afternoon, evening, and night hours, as well as the time I typically spent asleep. While I initially divided my day into smaller segments to keep tabs out of my own curiosity, I implemented the same day-night time system within the finished sketch.
Collecting the data was extraordinarily easy and took next to no time. What took a substantial amount of time, for this sketch, was properly transcribing my collected data in a JSON file able to be parsed by p5. I must've wrote and rewritten the entirety of the JSON file at least 10 times trying to figure out how best to organize my water data for p5's sake. The final JSON file is rather massive and all done entirely by hand, with only a fraction of it used to animate the sketch itself due to some time-saving work-arounds I stumbled upon while building the sketch.
I was entirely lost for several days when I first started brainstorming about the looks of the sketch. I couldn't decide whether I should use some sort of particle or gravity system, or simulated 2D water, to best illustrate water collectin in volumes; while my more outlandish ideas were definitely more interesting and creative, I found that, when implemented, they were impossible to understand even to the author. I settled on a very simple graph-centric take on visualization that occurs hour-by-hour, with a total collection of water pooling at the bottom of the sketch to offer a visual as to how much I drink at what hours of the day. My palette was blue and gray, and I used a slightly transparent background to give a sort of analog feel and flow to the shifting of numbers and bar graphs alike.
In Reflection:
If there's a single takeaway from this project, it's to avoid hand-writing JSON at all costs. How such a god-forsaken syntax can be so extremely popular is a testament to humanity's collective attachment to agony.
In terms of visuals, I found that my inability to decide on a more striking representation of water led to a feeling of falling flat. JSON led to a great deal of fumbling on my end with rather simple concepts I couldn't wrap my post-Thanksgiving meal head around for hours at a time, leaving the visualization itself to exist at the cost of my poor handling and parsing of my own data.
At the project's end, I was finally able to answer my question concerning how much water I drink: I absolutely consume an excessive amount of water and will definitely continue to do so.