Ashley Kim

Page for ONE

Page for ONE is a one-person-at-a-time public drawing board where the users can line up to have 30 seconds to add a single line to the board.


Duration: ~2 weeks (9/8 - 9/20/2021)
Tools: Glitch, socket.io, Javascript, p5.js (processing)


Page for ONE main page



Short Demo



Visit : App | Code



Ideation

Background

When the world-wide web (www) was invented in 1989, it was originally conceived as an automated information sharing platform for the scientists in universities and institutes around the world. Carrying its original intention of documenting and sharing information with a large number of users, online still is the most common and popular platform for people from around the world to share and look up various information. As the computer and networking system developed, people started to divide and claim sections on the world-wide web for different sets of users.

Page for ONE main page

Planning

I planned to use Glitch and socket.io to produce a webpage that only one person can enter at a time. Other users who attempt to enter the site while it’s being occupied will be seeing the waiting page, which informs the users to come back at another time. I initially thought to not implement any queueing system or a time limit in using this website because I want this website to be like an individual study space in a library, where none of the desks are reserved or have an occupancy time limit because it is for the public.

Reasoning & Symbolism

Just like the private and public space offline, online also has pages that are meant for the public or a small subset of people (private). However, there aren’t that many public pages that can be used as a private space for a certain amount of time like an individual study space at a library.

A public website is often a space for numerous people to view and collaborate online both synchronously and asynchronously. Online components are always vulnerable to unauthorized duplication and usage.

Afterall, everything online is all composed with 0s and 1s. Through this project, I intended to explore the idea of sharing a public resource that cannot be duplicated or grant multiple simultaneous access like a physical object on an online platform.




Process

Initial Stage

As planned, I was thinking to have two pages: one for the wait room and the other for the actual one-person-at-a-time web page. The main goal of this project was to give the private yet public experience to the audience by controlling the website access via socket.io. However, I realized didn't think much about the actual content to be displayed once someone enters the whiteboard.

Discussion

After discussing with professor Pell and Inbar, our GA, I was able to come up with a plentiful amount of additional implementation ideas.

One of the ideas discussed was allowing the people in the waiting room to be the spectator of the on-going individual session within the webpage. This idea seemed interesting to me, as it would make the ONE to ONE experience more transparent to others (hence making it public), yet the one person who’s experiencing wouldn’t really realize that other than through the number of people in line indicated on the bottom of the screen.

Another idea was to make the drawings either addition or subtraction to the previous users’ with great responsibility. I further expanded that idea and set the limit of only being able to draw one line within 30 seconds. The line would then be accumulated to the general drawings, making the drawing experience private yet the outcome to be in public.

Page for ONE main page

Development

Getting those ideas into a physically working website was quite a hassle, especially that Glitch started to put my project offline for making too many server requests. However, I’m very proud of what I’ve accomplished given the technical limit (both skill-wise and platform-wise).

Page for ONE main page

I got three of my friends to test it out remotely, and it was interesting to observe how they’d interact with already existing drawings by others. One of the comments I received from two of them is that the line and time limit came at an unexpected moment, even though they were fully aware of both and each session wasn’t that long (30s). Another comment I got was that this project challenges their creativity, so it’d be fun to see how creative people could get if the site is used by many strangers around the world. One of them also suggested that I could further make this into a game, where the players take turns to draw a line to overall create an imagery of a given prompt.


(interaction demo longer ver. )



Reflection & Potential Ways to Expand

Overall, It did took me a very long time to get this working in a form that’s more engaging and visual than my original idea. I also realized that I need to somehow save the lines so that I can display it for the next users and those waiting in line. Since I’ve only used socket.io once for a quick project in the past, using it for this project definitely forced me to practice and learn more about this API, Processing, and the data storage API like Sqlite, even though I couldn’t make use of Sqlite in the end.

It was interesting to see how the general response I’ve received during crit aligned with the individual responses I’ve heard from my friends. Even though we all have different backgrounds, the impression and the idea of this project came across in a similar manner. I think this project is successful in that aspect, as I was intending to create a private space just for one person in the endlessly wide web that generates a sense of playfulness yet responsibility/understanding that they’re the only one who can make changes to the board.

Through this project, I enjoyed exploring the concept of private yet public experience on the web, as well as learning about the vast possibilities one could do with the individuals and the public. Given more time, I would implement different color and stroke size choices for the users and give the option of permanent subtraction. I’d also like to get Sqlite work with this project so that it could save and handle much larger amounts of data. As suggested during crit, I’d also like to include some form of indication of time accumulated throughout the past users’ reminiscence (i.e. single line). I’m thinking perhaps displaying a label next to each line when the mouse is hovering over that includes name, time, and general location information.

(ง˙∇˙)ว © 2021 Ashley Kim (ว˙∇˙)ง
Built from scratch with Gatsby & React!