Weather JournalsCollaborative storytelling between you and the weather, mediated by ML algorithms.
An image of my project liquid relationships
This gif showcases the UI for Weather Journals. When loading the page, the sun and moon rise (and set) until they reach the current position of the sun in New York City. The clouds move according to wind speed, and if it's raining in New York you'll also see rain appear in the site. After the celestial bodies reach the correct position, the prompts will appear and the user can input text.
ConceptIn a time in which we, as humans, have unparalled control over the smallest details of our lives, the weather still stands as something outside us and separate from us, something that we have to live with and react to. I find that very calming, in a way; no matter what happens to me, or any of us, the clouds will continue to move across the sky.At the same time, I wanted to play with the idea of how we could interact with the weather. I was thinking of a weather journal, the idea of a place to record one's observations of the weather, when the idea came to me of the weather writing to you. That was the impetus for this project.
Tools
  • JS/HTML/CSS
  • Docker
  • Google Cloud Run
  • GPT2 from OpenAI
MechanismsThe project has two parts to it: the background sketch and the text generation. The sketch that runs in the background uses weather data drawn from the OpenWeather API for the NYC metropolitan area. The position of the sun and moon correspond to the current time in New York City, while the movement of clouds corresponds to the current wind speed and the amount of rain present in the sketch is determined by rainfall in New York.The text generation portion of the project is powered by a fine-tuned version of OpenAI's smallest GPT2 model, the 117M model. Using Docker, the application is bundled and hosted on Google's Cloud Run; when the user submits a reflection in the Weather Journals page, text is generated by the application in the cloud and appears on the user's screen.Through interaction with users, the model's text generation output is constantly evolving. When users input a reflection on the weather, their response is stored in a database. At the end of each day, the model hosted on Google Cloud Run is trained on the collective responses received that day, which means that the next round of stories from the weather will be influenced by everyone who has participated before.
ReflectionsThis is another project that feeds into my interest in using data-driven constraints to derive meaning from human interaction. To me it is one of the most interesting things in the world to see how people interpret objective data subjectively. The weather cannot tell stories, but we can tell stories about the weather. In the future, I'd like to add a physical interaction component to the project (I had toyed around with the idea of having paper printed responses that dropped from a printer on the ceiling) and of course update to the latest GPT!