Golan Levin: Cassie Tarakajian is an educator, technologist, musician, and artist based in Brooklyn, New York. After receiving a bachelor’s degree in electrical engineering from Johns Hopkins University, they focused their work on creative tools, working on the software Max/MSP at Cycling 74, and joining the Processing Foundation in 2016 as the lead creator of the p5.js web editor. They also serve as an adjunct professor at NYU ITP, teaching creative coding workshops and classes. Their past artistic projects range from generating sonnets from Wikipedia articles to teaching computers how to love as a member of the band Lullabies for AI. Cassie Tarakajian.
Cassie Tarakajian: Hi everyone. Let’s get this started. Thank you for the introduction, Golan. Hi. I’m Cassie. I use they/them pronouns. And as Golan said I am a technologist, educator, and artist and musician. And for this residency at the STUDIO for Creative Inquiry, I have been continuing to work on the p5.js web editor.
Which I’m sure many of you are familiar with, but it’s an in-browser code editor for creative coding in p5.js, and I’ve been working on this project for five years. And we’ll talk a lot more about it. First I want to talk about some of the other stuff that I do.
So I am an educator. I’m an adjuct professor at ITP and I also teach lots of workshops. So here’s a picture of me teaching a Max/MSP workshop, another creative coding tool that I like.
I also like jokes. So here’s an app that I’ve worked on that tells you whether or not you’re holding your phone.
I also am interested in my own creative projects at the intersection of computing and art. So this is a project I worked on called Wikisonnet, which scans Wikipedia for sentences that were written in iambic pentameter and reassembles them into rhyming couplets to form Elizabethan sonnets. And what I think is fascinating about this project is that if you’ve ever tried to sit down and write a sentence or phrase in iambic pentameter, which is a sequence of stresssed/unstressed syllables and words, it’s like quite difficult. But we’re accidentally doing it all of the time. So on Wikipedia there’s tons of these phrases. And the site, the intention is that it’s purely informational, and I think taking the context from informational to poetic is interesting. I like that there are phrases in here— I won’t read the whole thing but like, “Proposal for HyperText Project.” Like a sentence that is maybe not usually poetry can be poetry.
I also play music, and I’m interested in caring for the AI children that we’ll create in the future. So here’s a sweet musical project I had about teaching our AI babies how to love.
I’m also really recently interested in memes and this concept of like, cursed content. And I’m teaching this class this semester called “blessed/blursed/cursed” that’s about like are memes important? Is cursed content important? I don’t really have any answers, but all I know is that I really enjoy saving these images and letting it expand my mind. And it makes me feel things, and that’s all I really know. Yeah. And I accept any…if you want to just email me memes, just @ me on Twitter, please. I love memes.
And I wanted to talk about how I got into coding and art. And like how I started working on the p5 editor, you know, since now I’ve been working on it for five years and maybe it seems sort of like if you want to do something like that like…how do you do it? And why is it important to me?
So I want to give a shout out to this web site called Neopets, which I think has been around over twenty years. But I started using the site when I was around 12 years old. And on the site, you can have pets, you can make a shop or like a home for them. You can have money, you can engage in like the stock market. There were likes Flash games on it that you could play. You could do quests to get items. There’s all kinds of stuff you could do.
But one thing you could do is make a web site for your pet. And the way that you would edit it is that they would give you this text box with just completely non-syntax-highlighted HTML and CSS. It was like you couldn’t even have a separate CSS page. And you would use this and you would make pages for your pet. I really enjoyed doing this. I unfortunately don’t have any evidence of it because when I eventually logged back into my Neopets account many many years later it was hacked and all my pets were gone. And the web pages are attached to your pet. So I don’t have that, but this was my first experience coding and I never really…you know, especially when I was like 12, 13, 14 I didn’t think of myself as a coder.
And then I went to undergrad and I studied engineering and had this experience of being more of what a like, professional software experience looks like. And I found that experience confusing because what I was doing was I was writing Java and C++ applications on the command line. And I would write these tools and it would spit out numbers and phrases and whatever. I had to learn about all these complicated data structures. But I didn’t really feel like I learned any more about how to make a web site for my Neopet? So for me there was this disconnect between like, the technology I was working on and its purpose. And you know, maybe now many many years later I can feel like that disconnect is perhaps on purpose? But yeah, I just felt like I just kept waiting for the moment when I would be like, “Oh, I see how these tools empower me.” But I didn’t feel that and instead felt like I had to keep learning stuff in order to be empowered.
And so I carried this with me when I moved forward in software development. And just ultimately felt dissatisfied until I learned about creative coding and the possibilities there. I learned about Processing and p5, and was inspired that the goal was like, learning as little as possible to make something? Whereas I felt like my engineering experience was learn so much and only then will you be able to make something.
And I was inspired that— So here here’s a screenshot from Lauren Lee McCarthy, the creator of p5, showing one of the first versions of p5. Like how you could create a demo in the middle of a talk whereas you know, when I was writing C++ applications it would be like okay let me compile my code in the command line and then I’ll have an app that just spits out numbers. This to me was super exciting. And also, a lot of my experience of open source and tech tools was not that there were women and women of color leading these projects? So that was super inspiring to me.
Also, I loved that p5 had this community statement. And that the goal of this tool wasn’t just “let’s make this awesome flashy thing” but like “let’s make something that aims to include and empower people.” I really love things like you know, “#noCodeSnobs (because we value community over efficiency).” Like in engineering school it’s just like, let’s optimize data structures and stuff. So this was just so inspiring to me, and I ended up applying for a Processing Foundation fellowship. And the Processing Foundation is the foundation that manages all these different projects like p5.js, Processing, and so on.
And I didn’t get it, but I sort of stayed in touch and was like “I really want to be involved in p5 somehow.” And a few years back there was this desktop editor for p5, which was supposed to be similar to the Processing desktop editor, where it was an application you could download to write p5. But the issue is that often you know…for example, if you’re using it in an educational complex…like, schools have a hard time downloading software onto their computers, and it has to run on different operating systems and— This project was started by a person named Sam Levine. And so I was approached by Lauren Lee McCarthy and Dan Shiffman and they were like “We have some funding from NYU ITP to start an online version of this.” The goal of the online version being it will increased access to p5. It’s like you don’t have to download or configure anything to start coding, you can just start working on it.
And so that was at this point five years ago. My first commit was apparently May 2nd, 2016, “initial commit.” Which means that my anniversary for this project is like…wow, three days away? That’s fun. And you know, when I started this I had just started doing web development like…maybe like a year and a half before. I wasn’t super familiar, had never led a project like this, had really wanted some independence. And yeah, I was excited about this opportunity but felt very very scared. I was like how do these people know I’ll do a good job? Like I could just do a terrible job. Like what’s gonna happen? And my goal at the beginning was like “let’s just make something work.”
And I actually started teaching workshops with it within a couple months of it starting. Here’s an initial version that just would take code and render it. You could save versions. I think on this version you couldn’t even log in or anything? Maybe it’s just cut off. I don’t know. Yeah, you couldn’t even create an account, but I got it to this point where it just kinda…worked. And then it was quickly used in some teaching settings at NYU and at UCLA and other places.
And then it kind of—like as I kept working on it more and more folks started using it. And then sort of in fall of 2018 I did a public release. And that was when I got it to a point that I felt like— You know, for a while I had it under the URL like alpha.editor.p5js.org. And I took off the “alpha,” so it could be like an official date of release.
And for me this denoted a time that I felt like the project was stable enough. I felt like for a while I had to hide it and I didn’t want to be unstable and have people rely on it and then like, have the frustrating experience of it being down. Like sometimes the site would be down and I would get emails or texts from people, and I would just be like oh no, I’m doing a terrible job. But that’s software, I guess. It happens. It’s hard when you’re running a site on your own. But at this time, fall 2018, I feel like I got all of the hosting to a more stable place. I had to teach myself a lot about…yeah, like devops and stuff. I had to learn like Docker and Kubernetes, and that was hard. But I did it, you know. I did it.
And now you know it’s in this place where like, I use it in teaching. Here’s a screenshot from me teaching a creative coding lesson at GitHub Universe about a year ago. And Dan Shiffman also uses it on his YouTube channel, which has like 1.25 million viewers? So it’s…terrifying. (Or, subscribers.) It’s terrifying that this project has so much reach. It’s kind of unbelievable to me. But you know it’s in a good place, where lots of people can use it, and that’s really cool.
And then after that, in 2019 there was a contributor’s conference. And this gave me an opportunity I think to connect with a lot of folks in the p5 community and just like get a sense of where I wanted to take this project and what my next goal was.
And I was really inspired first of all by this open concept of what it means to be a contributor in p5. For a long time I thought that what it meant to contribute to an open source project was just code. And like you had to be this like technically elite person in order to work on it. And you know, in being the lead maintainer for the p5 editor I’ve done so many other things besides coding. I’ve done probably everything on this list, right. I’ve done teaching, documentation, making art; writing, design, activism, curating, bug reporting, organizing, outreach, and more. I’ve done the “and more,” whatever that means. Yeah. So I am continually inspired by this, and it was really great to meet at this conference lots of folks who do contribute in all of these different ways.
And I was also inspired by this idea that came out from the conference. And the idea here was that p5 was reaching a point where we wanted to have like a 1.0 release that was like, “This is officially out into the world. This is the stable version,” similar to like the public release of the p5 editor. And this idea that “p5 will not add any new features except those that increase access,” defined as inclusion and accessibility. I love this and I love that a goal of a technical project could be just including more people. You know, I think again my technical background…like, the goal had been very shifted. And this to me was really inspiring that now that I’ve got it stable how do I prioritize what I want to work on next. I’m sure you’ll hear more about this from evelyn, who worked a lot on this idea of access defined as inclusion and accessibility.
So some of the ways that played out was there’s a Spanish translation by a person named Omar Verduga. And they laid the groundwork to do translations, so now there’s a Hindi one, there’s a Japanese translation of the editor. And I hope it keeps growing. There’s also a push to have a mobile version of the web editor, which unfortunately is not finished and isn’t public-facing yet. But I hope to get this done soon; we’ll see. But that was by a person named Thales Grilo.
And now I’m thinking a lot about sustainability and like… I’m just going to read this old-ish tweet from Lauren McCarthy where she asks, “how do you make a volunteer-based open source project sustainable? is it even possible? i really need some help figuring this out.”
Like, I… You know, open source has this history of being built on the expectation of free labor, right? And that leads to the only people having the free time to work on open source be like cishet white men. And for p5, I want for the goal of the project to be including more people, making sure that many people feel supported. Sustainability to me looks like including…being able to have more people—being able to pay people that aren’t just cishet white men to work and build these communities.
So I’ve been thinking a lot about what sustainability looks like. Also, that this project has huge reach. So this is just some data I pulled from like the last week? And so in the last week just on editor.p5js.org—not even on p5js.org, just the editor—there were 232,000 users. Which is like a huge number that I can’t really wrap my head around. And many of them in India. And you know India, Brazil…I guess we’ve got Canada here, Japan, Germany, so…around the world.
And you know, there’s also 4.5 million sketches that’ve been uploaded, and right now there’s around 672,000 registered users. Like honestly I made this slide like a week ago and it’s probably bigger now, so I don’t know where it’s at. And the whole time it’s been supported by volunteers and grants and donations. And it’s been free of cost, but it’s not free to maintain. Not only does it cost money to host it because cloud computing or whatever is not free. I costs money to host it all on all these different services. But also there’s the cost of contribution labor, whether that’s software development, or designing, or building community.
For me, sustainability means not just preserving the sanity of the people in charge, but also extending the opportunity to work on it to people who would love to be part of the project if we could provide a means of access.
Lauren Lee McCarthy, What Does “Open Source” Even Mean? p5.js edition [slide]
And so I’m gonna read a quote from Lauren as well, if I can figure out how to move this Zoom window so I can read the whole thing— You know, I can’t move it so I’m just gonna try to guess what it says…the words that’re cut off. It says
For me, sustainability means not just preserving the people in charge, but also extending the opportunity to work on it people who would love to be part of the project if we could provide a means of access.
So, Lauren is saying here is like not only is it about paying the people who are currently in charge of maintaining these tools, but also that sustainability is directly linked to access.
So yeah, I’m thinking a lot about that. And the other thing I’m thinking about is like, how do we get institutions who use p5.js who can support us monetarily, to support us monetarily, while still making sure that p5.js is accessible and inclusive? And yeah, there are many institutions who use p5, like universities and many other tech companies that can support us but like, there’s not currently a way…you know, we kind of just have like a “donate!” and that doesn’t really communicate the value or…it’s not really like a direct ask of like “We need money because building software takes labor and labor is money.”
So there are different avenues to approach this, which could be bigger grants, or more donations, or other. And this is what I’m trying to figure out right now. Like at the current rate of expansion of p5 and the number of people who keep using it, how do we support that? Yeah.
And eventually I would like to replace myself. Because I’ve gotten so much out of this project, and I think many others deserve to be empowered in the same way that I’ve been.
So recently, through the fellowship at the STUDIO I had a mentee, Connie Ye. And she worked on an automated testing guide, which was really awesome because I know nothing about automated testing. You may think that the p5 editor is like a professional site by a person who really knows what they’re doing but you know, I don’t know everything about web development. I don’t know everything about making an online code editor. And one of the things I don’t know about is automated testing. So, Connie has been helping me figure that out and has done an amazing job supporting me. And I’ve learned so much from her and I really appreciate it.
And the last thing I wanna say is really like, open my heart to you, whoever you are, to contribute. Just wanna emphasize that you don’t need to have any special skills. If you’re interested in contributing and being part of this community, you are welcome and I hope that you feel supported and heard. You know, I didn’t— There are many things I felt scared of when I started contributing and felt like I didn’t know and felt like I should’ve known. And I’ve only been met with support. And I’m so grateful for that, and I hope that others can feel empowered in the same way to join and I hope that this community can make many others feel empowered.
So I just want to thank all of you, especially to the STUDIO and my peers in this fellowship for your endless support. I really appreciate it. You can reach me in many different ways if you would like to get in contact with me. And that’s all I got. So, thank you.
Golan Levin: And thank you, Cassie. Thank you so much. Stick around for a second. We’ve got just a couple comments and questions, perhaps.
First I mean, I’m reminded in seeing your presentation about the kind of double conundrum of working both in the arts and open source. Like, there’s no money in the arts, there’s no money in open source, and we’re choosing to kinda work at the intersection of both.
And yet you know, there’s something that’s really special that needs to be communicated to I think donors and funders. And I think you make this clear. Software that you’re developing, and you’re the lead developer and you—what, you’ve written like 90% of it, perhaps, for the p5 editor for example. That more than half a million artists around the world, demonstrably, are using your software. Every dollar in to supporting the work that you’re doing through the Processing Foundation, for example, goes back out to the commons not a thousandfold but nearly a millionfold. This is astounding. And supporting the arts, right, by supporting you to make sure that you can work and produce these tools.
And she was like “What? Me? I’ve never directed an open source project before.”
And that story had a kind of rhyme in your own experience, where they said to you you know “Well why don’t you just go ahead and make the editor,” you know. And you’re like…what?
Cassie Tarakajian: Yeah.
Levin:And even your experience with our student Connie at Carnegie Mellon, where you’re like, “Okay let’s do some testing and validation,” Connie’s like “Uh, what?” [both laugh] You know. I think it’s really important that people’s experience doesn’t always mean that… Qualifications are not entirely always based on what you’ve done before. You have to start somewhere, and it’s great to give people a kind of opportunity to start somewhere with a really meaningful task if you know that you’ve got someone who’s responsible and committed.
There’s a couple quick questions in here. Maybe I’m just kinda… What might support look like for students and others who may want to support in terms of a few hours per week?
Tarakajian: I mean, there’s a lot of different things. Like one place to start is on GitHub and looking at issues and seeing if you can pick one up. But it can also just be like…using these tools is supporting. Finding bugs is supporting. Like making bug reports is a great way to support. Doing translations, documentation, tutorials. Yeah, those are some good ways to start.