Street Painter

Screen Shot 2017-03-08 at 00.24.10.png

This is a creative coding project I made, paying tribute to the New York City graffiti culture. The project reflects the contextual history of the culture based on the research I made.


Modern graffiti began in Philadelphia, in the 1960s.

Around 1970-71 the center of graffiti culture shifted from Philadelphia to New York City

Using a naming convention in which they would add their street number to their nickname, they "bombed" a train with their work, letting the subway take it throughout the city.

The growth of graffiti in New York City was helped by its subway system.

Bubble lettering then was replaced with a new "wildstyle". 

By the 1980s, increased police surveillance and implementation of increased security measures (razor wire, guard dogs) combined with continuous efforts to clean it up led to the weakening of New York's graffiti subculture. Many graffiti artists, however, chose to see the new problems as a challenge rather than a reason to quit.

 A five-year program to eradicate graffiti

The years between 1985 and 1989 became known as the "diehard" era

 "Clean Train Movement"

Winning their "war on graffiti," with the last graffitied train removed from service in 1989

Rooftops became the new billboards for some 80s-era writers

The current era in graffiti is characterized by a majority of graffiti artists moving from subway or train cars to "street galleries."


The Process of the project

I spent much time on experimenting the different features. At the beginning I drew a sketch of the interface of the application would look like, then started to program it. I did not spent too much time on learning syntax and structure, because most of the time I tried to re-think what I have learned this semester, and tried to implement them into my project.

I spent some time searching on how to use Google map API and make the drawing effects, the brush effects, more diverse. For my actual programming, I tried to write some codes and push them to Github every two or three days, but the time I spent each day depended on my process that day, sometime it would be two or three hours, sometime it would just be really long time.

In the last week I spent much more time on building it and even though some problems I still could not overcome, like using the Google map street view as the canvas, I am still glad how I’ve accomplished at this stage. 

The thing I found out was that Processing might have more resource to get than P5.js, like more examples, either online tutorials or portfolios, but I still chose P5.js for my final project. One thing was we spent more time on P5.js in class, another was I think P5.js is pretty new, so I am interesting in how I could do with it.

The frustration and challenges I had during the crafting were I did not have enough knowledge to combine those functions and also not knowing what other features P5.js have. For instance, I know how to draw a line on canvas, but I did not know how to make that line have different effects, or how to draw on different backgrounds. 

The Programming Concepts

I think the programming concepts I had in my project are quite simple—-trying to draw something on the images and make different effects. At the beginning this seemed simple and might not be too difficult for me to carry out, but I did realize some challenges like how the effects should go, and what can I play with this simple drawing functions, like changing the thickness, colors, or different styles. I learned how to make buttons to switch different styles, and also used one library for the brush.

Another one is the background. I felt thankful for getting lots of useful and cool feedbacks in the midterm proposal and the crowdsource feedbacks in class. I really like the idea of putting Google map street view and curated the places. I spent so much time on them, I learned things about Google map API and how can people play with it. I found out we could draw something on the Google map but not on the “street view” when we put the little human-figure on the map. So that’s why I put those curated buttons on the map instead letting people to choose wherever they like.

Through the time I was building my project, I learned how to find the answer for programming, like I would spend time on reading some forums or go to website like “Stack Overflow”, or watching some tutorial videos. I think the one of the break through for myself is that I am not that afraid of writing codes, and also feel it’s kind of interesting to build something through programming. 

Debugging Issue

I think I did debugging. I like to do several experiments and try to play with different functions. I created several different files for testing. When my codes did not run the right way, I would like to check what error it showed, sometime it just some typo. Sometime it would be the structure I use was wrong. What I would like to do was go check if there’s anyone doing similar things before, like I mentioned above, I

could find some examples and resources online. Sometime it would take me a lot of time for finding the one similar to my problems.

Also, I think asking to someone else would be helpful. I have some friends in Taiwan they work as programmers, so I would just describe what challenges I met or just screen shot my issues to my friends. They would either give me some suggestions or send some links might be useful for solving the problems, like one of my friend did send me the Google map API document page. However, most of the time I still would like to figure it out by myself first, because I think it was interesting and fun to overcome a problem, so when the program worked well after several try and error, the feeling of achievement was just really good. 

My Reflection of the Project

My major in college was Management of Information Systems and we did have some programming classes. However, at that time, I did not cultivate the interests for programming and also the way our instructors taught make me have little confidence on writing codes. I just thought I was not good at doing it and I even told myself I might not working on programming anymore in the future. So when I got into IDM here in NYU, I realized there is a required for that, “creative coding”, I then saw it a challenge for myself, I told myself I needed to learn some codes now, and hoped after a semester I could know more about programming.

And now after a semester, I think I overcame it! During the semester, there were some moments I still doubted myself doing it— I just struggled, spending lots of time but nothing worked. I was glad I still keep trying and pushing forward. I am not sure how I will move forward with programming, but what I know now is I am not as afraid as before for programming, and if there’s other opportunity, I would love to do programming too.

I really appreciate what we’ve taught during the semester. “Everything’s possible through programming” and “Finished with not perfect.” I kept those in my mind every time when I was struggling. Also, I think that every time we were encouraged to play with different functions and methods and encouraged to do some experiments was really helpful too. Those mindsets for carrying out a project are another things I learned through the semester, besides the programming skills, I think they are really important too. 

Course: Creative Coding, Fall 2016, NYU

Instructor: Katherine Bennett