Golan Levin: I am pleased to intro­duce our next pre­sen­ter, Kate Compton. Kate Compton, also known as GalaxyKate on social media like Twitter, is a long-time gen­er­a­tive artist, inven­tor, pro­gram­mer, and Assistant Professor of Instruction at Northwestern University. She wrote the first paper on pro­ce­dur­al plat­form game lev­els, gen­er­at­ed the plan­ets for the video game Spore, cre­at­ed the lan­guage Tracery, which runs over ten thou­sand community-made bots on Twitter, and invent­ed an ear­ly phone-based aug­ment­ed real­i­ty sys­tem. Her mis­sion is to design arti­fi­cial intel­li­gence to aug­ment human cre­ativ­i­ty and to cre­ate tools that bring AI into the hands of poets, artists, kids, and weirdos. Kate Compton. 

Kate Compton: Hi. So yeah. As I went out on a walk today I had an idea for a talk, so I decid­ed to throw out the talk that I also had­n’t writ­ten yet and write a new talk. So I’ll be pre­sent­ing on Tracery today, but also some ideas that I had about Tracery. This is okay. I’m a chaos agent. It just kind of happens. 

So, this is a tool I’ve work­ing on. This is called art​bot​.club. I’ll talk a lit­tle bit about this lat­er but I just kind of want­ed to show y’all an exam­ple of Tracery for peo­ple who had­n’t expe­ri­enced it yet. Tracery is real­ly great if you would like to gen­er­ate some inter­est­ing text. So this is a gram­mar that I wrote that is basically—like, you can think about it as run­ning Mad Libs for com­put­ers. So this is a thing that gen­er­ates patrons for a hip­ster restau­rant sim­u­la­tor I’m mak­ing. And you can see that I’ve got a whole bunch of dif­fer­ent types of peo­ple. And then things that peo­ple might have, like an over­stuffed back­pack or an accor­dion, or car­ry­ing a brief­case, car­ry­ing a boom box, etc. And you can see that kind of gen­er­at­ing a num­ber of dif­fer­ent people. 

I like that Tracery often sur­pris­es me with what it gen­er­ates. So, here I’ve gen­er­at­ed a num­ber of things. But I got a cheer­ful tourist cov­ered in mud and a fem­i­nine lum­ber­jack dressed entire­ly in laven­der.” And then also kind of inter­est­ing ones like dozens of gold-eyed super­mod­els” that cause you to cre­ate sto­ries. The best one that this par­tic­u­lar gram­mar ever gen­er­at­ed was an angry nun in a wed­ding dress” who came into my lit­tle hip­ster sim­u­lat­ed restau­rant and ordered a glass of wine and left. And I still think about her some­times. So yeah, that’s kind of like, Tracery is you have a gram­mar and you’re gen­er­at­ing stuff. And this is art​bot​.club which I’ve been work­ing on. 

So yeah, I want to show you my talk. So, I don’t have notes because…chaos talk. But yeah, so I thought a lot of folks tonight, espe­cial­ly would be…you know, between Everest and Electric Zine Maker and the oth­er work like Zonelets, it’s a lot about bring­ing new peo­ple into not only open source but being able to make their own work and host their own work in kind of inde­pen­dence. So it’s about bring­ing peo­ple in to some of the nice things that open source art tools can do for you. 

And then I want­ed to kind of foot­note that by say­ing also, some­times we should let peo­ple go. And what does it mean to let a user go? And this is not— Like, I’m not speak­ing about like oh, I have a prob­lem­at­ic user or I have a bad mem­ber of my com­mu­ni­ty; I’m gonna push them out the door. But what does it mean to kind of have open doors that peo­ple can wan­der in and out of your project on. And you can see where my slides are if you want to copy them.

And yes, it is very much under con­struc­tion. And let me see if I can also bring up chat so I can have chat open. Nope, I can’t have chat open while I’m screen shar­ing with Google, so that’s…that’s fine. So some­body’ll have to pipe up if there’s any­thing impor­tant that I need to hear in chat. 

So yeah, this is Tracery. As I showed you before, it’s real­ly great for gen­er­at­ing text. And peo­ple have also used it to gen­er­ate basi­cal­ly things that are rep­re­sentable by text. So like, SVG art­work. There is some­body who used it to gen­er­ate pro­grams for a music visu­al­iz­er so they could DJ a club in London. 

A lit­tle bit about the his­to­ry of Tracery. It was devel­oped orig­i­nal­ly for a class assign­ment and then I open sourced it and pret­ty much just like, did­n’t do any­thing more with it. And then some­body named v buck­en­ham in London, who I’d met only once at a park, cre­at­ed this won­der­ful site called Cheap Bots, Done Quick! where you could upload your gram­mar— So a gram­mar is just a JSON object, which I’ll talk a lot about lat­er. You can log in with Twitter, open up Cheap Bots Done Quick, paste in your JSON object, and have a bot run­ning. And it used to be that was all you need­ed to do and now like, Twitter will actu­al­ly ban you pret­ty fre­quent­ly, which is kind of obnoxious. 

But one of the real­ly amaz­ing things about Tracery is that I made it when I had just learned Javascript. It man­aged to be like, most­ly bug-free. But because it’s a very small library and it does­n’t do any­thing ter­ri­bly com­plex, it end­ed up being able to run large­ly with­out me. And so it spawned this mas­sive com­mu­ni­ty that is com­plete­ly dis­trib­uted. So there’s all these won­der­ful Tracery ports to dif­fer­ent lan­guages, and there’s mul­ti­ple ports to sev­er­al lan­guages. This is not like a centrally-organized thing, it’s just peo­ple encounter Tracery, start using it, make their bots, and often make things that attach to Tracery or that Tracery attach­es to. 

And then I just want­ed to shout out the real­ly won­der­ful fund­ing and sup­port from the STUDIO for Creative Inquiry, but also the Center for Research in Open Source Software at UC Santa Cruz, which has been fund­ing me. And what I’m actu­al­ly doing in exchange for that mon­ey— I am still work­ing on Tracery. I won’t be talk­ing about that dur­ing the talk, but I will be talk­ing about like, why Tracery works for the past six years. But I have been like, build­ing a social net­work and work­ing on Tracery2 and Chancery, and it turns out that in doing that most­ly I wrote a lot of code that told me what code I should­n’t be writing. 

I’m also wrote this zine if you want to learn more of my thoughts on open source soft­ware, which is basi­cal­ly infor­ma­tion that I got from actu­al­ly the con­ven­ing for open source tools for the arts which Golan held a cou­ple of years back. 

But yeah, Tracery as men­tioned before, it’s these lit­tle kind of JSON objects, or they could also be Javascript objects. And you feed those into a gram­mar and then you gen­er­ate syn­tax with it. So that’s the way that Tracery runs. And as men­tioned before you can also edit stuff in art​bot​.club and see it gen­er­ate not only in plain text but you can also see it gen­er­ate in this kind of recur­sive view which I think peo­ple find help­ful for under­stand­ing what Tracery is doing. 

So Tracery, the way peo­ple use it, here’s two real­ly great exam­ples. Here’s Tanya Short, who’s a pro­fes­sion­al game design­er talk­ing about how she uses it with the con­cept of gram­mars in teach­ing and for com­mer­cial games. And here’s some­body who says I made the ter­ri­ble bot of my dreams and I hope to make it even more hor­ri­ble soon.” So I think that there’s a real­ly nice range of peo­ple build­ing things kind of inten­tion­al­ly and pro­fes­sion­al­ly, and also shit­post­ing a lit­tle bit, and also just kind of…like, because Tracery is often so wild and uncon­trol­lable it’s real­ly fun to let it be a cre­ative part­ner in your process. 

One of my top users, Nora Reed, has talked a lot about how Tracery changed what they were able to make. So they’re are non-coder; they iden­ti­fy as a non-coder. And they’ve like— Yeah, I’ll talk lat­er about that. And they made over a hun­dred bots, includ­ing one that’s fair­ly Internet famous called Endless Screaming. And Endless Screaming, all it does is it screams. So this is a gram­mar that makes lit­tle screams. And then it can also have con­ver­sa­tions with you. So you can @ @infinite_scream. This is made using Cheap Bots Done Quick with Tracery. So Endless Screaming is host­ed on Cheap Bots; Cheap Bots has a fea­ture where you can tog­gle on that you want peo­ple to be able to @ it and you can say what you want it to say in response. So you can in fact go on Twitter right now and have a long con­ver­sa­tion with Endless Screaming where you just scream back and forth. 

So yeah, if you want to learn more about Tracery, if you take noth­ing else from tonight, go to art​bot​.club and…I don’t know, try it out. It’s still under con­struc­tion. But if you want to learn more about things that peo­ple have made with Tracery, botwi​ki​.org is actu­al­ly real­ly great. You could search for Tracery” and find lots of stuff that peo­ple have made there. 

So things that peo­ple have made with Tracery. You can make Twitter bots. But you could also, because of the way it’s been port­ed to so many lan­guages because it’s also in…like you can use it in Javascript real­ly eas­i­ly, you can port it to Roblox and Lua. You can use it as a prompt for AI Dungeon. So peo­ple are mak­ing their own bots. 

These are a cou­ple of real­ly inter­est­ing phys­i­cal ones. People use it in print­ers and art instal­la­tions. So it’ll print out new prompts, it’ll print out poems. This is Anastasia Salter. They made this quilt gen­er­a­tor. Well, they ini­tial­ly made a Twitter bot, and then they used the Twitter bot to make sort of quilt-like shapes and print those out and put those in a gallery. So yeah, I think it’s real­ly inter­est­ing that Tracery tends to be…not only does it make good stuff, it con­nects well with oth­er things. Like, why does it play well with oth­ers? And in fact my first kind of big win with Tracery was v buck­en­ham’s Cheap Bots Done Quick, which is like, not actu­al­ly Tracery it’s just run­ning with Tracery. And so this was like, the first thing that Tracery did that was good was con­nect to a larg­er piece of software. 

And it’s real­ly inter­est­ing that Tracery plays well with oth­ers, but also because I’m build­ing a plat­form, because I’m build­ing new lan­guages on top of Tracery and build­ing inter­est­ing expan­sions of the lan­guage, I want to know how do I keep that prop­er­ty going? 

So Tracery, very unin­ten­tion­al­ly was very dis­trib­uted. And this is large­ly because it was like…somewhat aban­don­ware, or maybe just because it was what it need­ed to be when I first made it. And I did­n’t have to update it much. Or I was too busy to be tempt­ed to update it. It does­n’t have real­ly cen­tral orga­ni­za­tion or an up-to-date site. There’s no like, Tracery Foundation. There’s not even a site that I kind of main­tain peri­od­i­cal­ly. I shipped it and did­n’t update it. So ports are entire­ly self-directed, not staff-directed. 

And tuto­ri­als are large­ly made by com­mu­ni­ty mem­bers for com­mu­ni­ty mem­bers. So this is one that a bunch of his­to­ri­ans who run the Programming Historian site— A his­to­ri­an is basi­cal­ly talk­ing to oth­er his­to­ri­ans say­ing Hey, here’s this tool. Why would you make a Twitter bot with Tracery? And what does that mean for our his­to­ri­an prac­tice?” So I thought that was real­ly inter­est­ing, like, com­mu­ni­ty mem­bers talk­ing to themselves. 

There’s also very— Because I built it when I had just learned Javascript and I had­n’t learned the right way to do Javascript yet, there’s no build process. There’s no depen­den­cies. It’s just a single…or like a cou­ple of Javascript files that you include. 

So what made that work, and how do you make a sort of head­less slime mold-style open source project? I’ll cov­er some things I felt were important. 

So some­times we talk about reten­tion in open source projects. Less so in the sort of scrap­py, inde­pen­dent world, but espe­cial­ly when you’re talk­ing about open source projects in the Silicon Valley-style sense of open source soft­ware projects, where projects like Vue and React are open source. They’ll often talk about reten­tion, and how do we get peo­ple, how do we bring con­sumers and users into our product. 

Because of course we want to keep users, right? We want to get new users, and we want to keep the old ones from leav­ing. And there’s some great ways to keep peo­ple from leav­ing. They can’t leave us if their project will fail with­out us. Or if they can’t build a com­peti­tor. Or if we have their data hostage. And so when I looked for user reten­tion images, I found all these real­ly great stock pho­tos of like— Okay, there were a lot with mag­nets. So mag­nets are an impor­tant part of process here. But there’s this sort of hor­ri­fy­ing lit­tle pup­peteer of a dis­em­bod­ied hand reach­ing through a door that says OK.” And then I love this one. It’s like, do you want to keep your users? Why not put them in a bell jar so they’ll be safe forever. 

So I’d like to pitch anti-retention as a pat­tern that we should be look­ing into. And anti-retention, I like to think of it as like kind of down here the sum­ma­ry is you can take your ball and go home.” If you are not suit­ed by the way that I run Tracery, you can build your own Tracery, you can build alter­na­tives to Tracery. A lot of peo­ple do this. So I get a lot of— When I see Tracery being used places it’s like Well Tracery did­n’t quite work out for me so I built a Tracery-like thing that had these fea­tures that I need­ed.” And I think that’s amazing. 

So a cou­ple of pat­terns that make this work are you can remove it from a project with­out rearchi­tect­ing the project. So it’s not like a load-bearing pil­lar, or it’s a pil­lar that you could swap out with some­thing else and have it still work. 

The data is human-readable, and I’ll talk about that too. Things like you can edit it any­where. So, if I have a trac­ery edi­tor like I have at art​bot​.club, that’s great. That’s a real­ly nice edi­tor. It’s very posh, it can do lots of cool things. You can still edit in like…Microsoft Word might not work but like, you could still edit it in a text editor. 

Importantly, you can also send it to friends in an email or post it in a forum. There’s no like, data struc­ture that I have to main­tain on a cloud. If I want to send you this thing, it’s not an NFT that I have to put up on a blockchain and some­how trans­fer to you to give you my code. I can just like, email it to you. I could prob­a­bly print it out on a sheet of paper and have you just like, type it back in like if we were a 1980s-style pro­gram­ming mag­a­zine. We could just like, put our gram­mar in BYTE mag­a­zine and have you paste in oth­er peo­ple’s grammars. 

You can build a com­peti­tor in your pre­ferred lan­guage with your cus­tom features. 

And impor­tant­ly, you can keep your own data. So you can down­load your data… Like, if we have a host­ing site, you can down­load your data. Or if Tracery stops work­ing for you, you can look at your gram­mar and say like, how else would I inter­pret this gram­mar, and you could build your own inter­preters for your data struc­ture. So you don’t even need Tracery the library. You can rebuild new things that deal with the Tracery data. 

So why would you do this? Like, why would you say like Oh users, please leave my project?” 

Flexibility. So, flex­i­bil­i­ty is nice. I think this is what makes a lot of the sort of weird places that Tracery ends up get­ting to viable. So projects grow and change, espe­cial­ly art projects. And they devel­op dif­fer­ent needs. And when a user out­grows your tool it’s actu­al­ly a real­ly beau­ti­ful thing. 

They may also need to use your work in a way that you did­n’t antic­i­pate. So I often break open source projects. Because a lot of them rely on the fact that you might have an Internet con­nec­tion. So I was using ml5 in a project that I was show­ing at a Burning Man-like event in a for­est. And because it was a Burning Man-like event in the for­est, it did not have Internet. And so one of the things that ml5 was doing was actu­al­ly like okay, I include the ml5 library and then it calls out and down­loads a giant mod­el of the human body so that you can do body track­ing on it. But I was­n’t going to have that so I end up down­load­ing that mod­el and then some­how rerout­ing that call in the ml5 library itself. So I actu­al­ly edit­ed the ml5 library so that it was call­ing a dif­fer­ent mod­el so that I could use it offline. So that’s often the thing that peo­ple have to do if they’re using your library in dif­fer­ent ways that weren’t expected. 

Resilience and preser­va­tion are also a big one. Because you might not be around for­ev­er, or want to host things for­ev­er. Or your project gets tak­en over by hos­tile forces or bought out by some­body. Or fifty years pass, and all we have is that print­ed out BYTE mag­a­zine of your gram­mar. So even if all we have is a print­ed out BYTE mag­a­zine of your gram­mar, or you know maybe you made a zine with your gram­mar in it and his­to­ri­ans have that, all the sil­i­con in the world has long since rot­ted away, they can still say Oh, look at this gram­mar. It’s human-readable. I can kind of under­stand what they were going for with this art piece. And maybe I can build an inter­preter to recre­ate this lost lan­guage of Tracery. I can type this stuff in and I can kind of bring it back.” And that’s not some­thing you can do with a Flash file. There’s no Flash file you can print in a zine and then have peo­ple re-understand what was going on in that Flash file. 

So isn’t this just open source? There are in fact plen­ty of open source projects that use non-human-readable data for­mats, that are too big to port mean­ing­ful­ly, that lock projects into frame­works. Like if you’ve ever tried to break up with React, you know that it’s very dif­fi­cult to break up with React. But can we move it clos­er to anti-lockin patterns? 

And I’ll just talk about three pat­terns real quick. So one of them is portable data. This is actu­al­ly not some­thing I learned from open source, this is some­thing I learned when I worked on Spore. So in Spore, you can see over on the right I have this like…it was called a spof­fit. This is a crea­ture I made in Spore. And this is actu­al­ly a PNG file. And even today, you can drag this thing into an old run­ning copy of Spore, if Spore still runs any­where, and actu­al­ly in the PNG they are invis­i­ble pic­tures up in the upper left-hand cor­ner that stegano­graph­i­cal­ly encode your Spore crea­ture data. So even if Spore does­n’t run, it’s not human-readable but you can still get the Spore data out of this creature. 

It was also real­ly great, because that meant that peo­ple could drag their PNGs into any place that would host a PNG. So even in the very ear­ly ages of like 2007, the Something Awful forum…for its many flaws and inter­est­ing prop­er­ties, actu­al­ly end­ed up hav­ing one of the best Spore com­mu­ni­ties, because peo­ple could drag their crea­tures into it and then basically…they were like drag­ging and drop­ping save files in a forum envi­ron­ment. So I thought that was real­ly inter­est­ing as they like…oh, how easy is it for your user to drag and drop a Bitsy file, or can I trade Electric Zine Maker files with my friends over IM

So JSON is real­ly great. I haven’t yet fig­ured out how to embed JSON in a PNG but it can’t be too hard. JSON is real­ly nice because it can also turn into a Javascript object. And so if your user like me has CORS-con­strained sit­u­a­tions like you don’t wan­na have a serv­er, because servers are hard, if you just want to have an HTML file you can edit and then drag into Chrome, you can actu­al­ly use Tracery with a Javascript object as your gram­mar and it’s not a big deal. And I can’t do that if I say want to upload a JSON file or any oth­er sort of more com­plex data struc­ture. So yeah. Nonhumans can also make con­vert­ers between for­mats if they want to. So that’s neat. 

Frameworks no, libraries yes. So frame­works are a style of pro­gram that wraps your pro­gram in addi­tion­al log­ic. I put up the Wikipedia def­i­n­i­tions here so you can see like okay, in a frame­work the frame­work is the main code and you are mak­ing a lit­tle mod­i­fi­ca­tion on the inside of it some­where. And in a library you are writ­ing your own code and then these are just like a col­lec­tion of resources. So you can kind of see who’s get­ting cen­tered here if I’m using a frame­work ver­sus a library. Like am I sort of host­ed in some­body else’s giant machine, or am I kind of my own autonomous unit and bring­ing in infor­ma­tion from outside. 

This is real­ly inter­est­ing because like, p5 I love to absolute bits. But it’s often taught as a frame­work. So if you have p5 and you’re teach­ing your stu­dents how to use p5 and they’re using it in frame­work mode, it’s real­ly hard for them to then say like oh, I real­ly love my pro­gram. I want to take this and put it in reg­u­lar Javascript, or I want to switch it to use any­thing else like three.js or jQuery UI. But I use it as like basi­cal­ly a vanil­la Javascript library, which it allows, which is won­der­ful. And it’s hard­er to set up. I think acci­den­tal­ly. This was not inten­tion­al. It is hard­er to set it up but I can also then use it to switch out with any oth­er technology. 

I was talk­ing with some web art prac­ti­tion­er friends, and we were talk­ing about like, what cap­tures the feel­ing of you are an artist and you’re able to pick up and put down dif­fer­ent art tools. Like I pick up char­coal and I use the char­coal. I pick up a pen­cil, I use the pen­cil. I col­lage some mag­a­zine images into it. And I think the clos­est thing that it comes to you is like using vanil­la Javascript with libraries that I am treat­ing very intense­ly as libraries and not as frame­works. Because I can put them down. Like I put p5 down all the time. I don’t have to use it for everything—I use it for almost every­thing but I don’t have to. And so the times when it’s not use­ful for me I can just set it down. So nev­er trust a library, even p5, you can’t break up with.

This is one—again, half-baked ideas here. I was try­ing to think of like, why does Tracery feel fun­da­men­tal­ly dif­fer­ent than some­thing like three.js which just had its ten-year anniver­sary and was talk­ing about how many tens of thou­sands of lines of code and how many—I think there’s like a thousand—like, it was some ridicu­lous num­ber of con­trib­u­tors for three.js. It’s like a mas­sive project. 

So why does Tracery feel dif­fer­ent from that and what does that mean for us? So I’m kind of com­ing up with a word—like, songs ver­sus sagas is two ways to evolve your open source project. So a saga is like you just keep adding stuff to it. It does some­thing, and you add more things and you add more things. It’s got more libraries, the libraries get big­ger, it can do every­thing. And it gets just like so many lines of code. 

And a song is some­thing that um…like a song is always small. Like no mat­ter how long you work on a song for, it nev­er gets more than three min­utes. It’s not like you work on Smooth Criminal and sud­den­ly it’s like twenty-five min­utes long. No, you can work on Smooth Criminal for­ev­er and it’ll just become a more per­fect form of three minutes. 

And also because sounds are very small. So if your project stays small, like Tracery— So Tracery has stayed very small. Even if I’d kept work­ing on Tracery— And I’ve kept work­ing on Tracery2 and it’s actu­al­ly just get­ting small­er. It got slight­ly larg­er than Tracery and now it’s almost about the same size as Tracery, even though it’s got a ton more functionality. 

But one of the things that Tracery does real­ly well is peo­ple cov­er Tracery. Because it’s a small library, you can make a Tracery…like you can basi­cal­ly do basic Tracery in about three lines of Javascript. We’d assign stu­dents to make a Tracery clone in C as an intro expe­ri­ence. So you can just make your own Tracery. Because it’s a very very tiny, short song it’s real­ly easy to basi­cal­ly karaoke Tracery. 

So yeah, that’s why we end up get­ting a lot of Tracery ports. These are basi­cal­ly just like…this is the cov­er mix of Tracery. And some of the cov­ers are actu­al­ly bet­ter than the orig­i­nal. I would con­sid­er that Allison Parrish’s Python Tracery is actu­al­ly a nicer library than the orig­i­nal Tracery. 

So yeah, I had a post that Golan liked about there’s dif­fer­ent kinds of free soft­ware, in these were things that I have heard peo­ple men­tion, and free as in piano” as well. So now there’s kind of two more dimen­sions of how to struc­ture open source soft­ware. Are you a saga open source project, or are you a song open source project. And if you are a song and you notice your­self get­ting to like the six-minute mark, you notice that you are in fact not Alice’s Restaurant and try to scope that back. But if you’re a saga, just know that like, nobody’s going to cov­er you. If there’s a trans­la­tion project it will be a mas­sive aca­d­e­m­ic undertaking. 

And also that’s why it feels real­ly great to me that I’ve rewrit­ten Tracery2—this is not an exaggeration—probably twen­ty or more times. Because each time I prac­tice it— I actu­al­ly like, wrote the entire­ty of Tracery2 this week­end again. Actually Tracery2 plus Chancery. So I wrote two lan­guages this week­end, it prob­a­bly took about six hours. Because again these are very small songs that I’m just kind of like, work­ing through for the twen­ti­eth time, remov­ing very small notes and just kind of mak­ing them more pure and per­fect. So even­tu­al­ly I kind of hope that peo­ple will be able to cov­er Tracery2 and Chancery as well in the same way that peo­ple were able to karaoke Tracery1

So yeah, just some final thoughts before I fin­ish up. We can also think about anto-retention not just as soft­ware but also as part of our com­mu­ni­ty. So maybe we should­n’t trust a field you can’t break up with. I like to think of this as like cats, if the door is closed they real­ly need to go out. If you have a field like I can’t break up with or a tool that I can’t break up with, I real­ly need to leave. But if you let me leave, then I’m actu­al­ly hap­py to stay in there. 

So yeah, maybe we should start think­ing about open source devel­op­ment instead of being like a lifestyle call­ing. And Golan’s OSSTA group has has been real­ly great for this. Like, we all do open source soft­ware but we don’t feel like open source peo­ple. And this is maybe to stereo­type open source peo­ple. But like, there’s an open source com­mu­ni­ty and they have a very par­tic­u­lar fla­vor to them. And to be a per­son who makes open source soft­ware or open sources your soft­ware, you don’t have to be a lif­er. And also there’s no here” here. You don’t have to think about do I belong here” because there’s no here. It’s just a set of design pat­terns that you can pick up or drop off. You don’t have to like, buy the beard and the hoodie. 

So yeah. I’d like us to think, just kind of as a final take­away, of the dif­fer­ence between club­hous­es and take­out win­dows. So I’m drop­pin’ more metaphors on y’all. But there’s a book in I think cir­ca 2000, ear­ly 2000s, called Unlocking the Clubhouse. And this book was about women who entered the CMU com­put­er sci­ence depart­ment and whether or not they stayed in or whether or not they dropped out, with the premise that women drop­ping out of com­put­er sci­ence was a bad thing and bad for gen­der par­i­ty and bad for the field in general. 

And that’s…like, that’s good and impor­tant work to do, and the book is in fact real­ly inter­est­ing and I think prob­a­bly still rel­e­vant today. But also I think we need to change the fram­ing a lit­tle bit, like shift the fram­ing. Do we need to get every­body in STEM? So STEM is high-paying. Like, cap­i­tal­ist hellscape and all that, if you want to sup­port your fam­i­ly and friends and stuff, then get­ting a well-paying STEM job is a good way to do that and there’s rea­sons to do that. 

But our idea that like okay we’re gonna fix America by get­ting every­body into STEM class­es that you often see in grants and fund­ing oppor­tu­ni­ties, maybe we should con­sid­er like not doing that. Like maybe not every­body has to leave where they are and migrate to STEM. So maybe they don’t have to come into the club­house. Maybe they don’t have to become mem­bers and change where they are. 

So think instead about take­out win­dows. So you have some tools like Tracery. Tracery’s a real­ly great take­out win­dow. A lot of peo­ple come in, use Tracery for a tiny lit­tle bit of code or maybe just make a sin­gle Twitter bot, and then they wan­der back off to doing their nor­mal life. There’s an artist named Johnny Sun who writes books, like beau­ti­ful thought-provoking books about being sad and hav­ing anx­i­ety and they’re like…it’s like Shel Silverstein for grad school anx­i­ety. And he also made a lit­tle Twitter but, and he just made that lit­tle Twitter bot, and I don’t think he’s made any oth­er Twitter bots and that’s fine. He came in, and made a real­ly won­der­ful Twitter bot, and like…he got his take­out and left. So I think that’s a real­ly inter­est­ing thing to con­sid­er. Like how eas­i­ly can peo­ple come, take what they need, and go back to their com­mu­ni­ties like The Programming Historian. 

So yeah, this is my per­son­al mot­to that I’ve been work­ing on for like a num­ber of years and I think it’s pret­ty good: Bringing AI to the peo­ple that AI does­n’t deserve. Which kind of frames it as like okay, how do I bring tools to peo­ple or how do I pro­vide a table­ful of tools for peo­ple to take with­out my per­mis­sion, that AI does­n’t deserve, that they don’t have to come to AI. The AI’s just a gift. 

So yeah, I’ll min­i­mize this and then— Okay cool, now I can see chat win­dows and I can stop shar­ing. So any questions? 


Golan Levin: Thank you so much, Kate. I’ll man­age some ques­tions from the YouTube chat which I have here, and also from the Zoom chat. But first let me just say a few just…just wow” kind of thoughts com­ing out of your pre­sen­ta­tion. First of all the small detail men­tioned in pass­ing of stegano­graph­i­cal­ly encod­ing meta­da­ta into PNG files for the pur­pos­es of data porta­bil­i­ty. Wow. 

But more gen­er­al­ly than that, and this is some­thing that’s occurred to me through the process of sort of shep­herd­ing the Open Source Software Tools for the Arts res­i­den­cy group, is how much of what the work involves again as not cod­ing but actu­al­ly metaphor-building. I see this in the chat as well. You know, like Marina’s fried egg metaphor, right. Songs ver­sus sagas, as you point­ed out. The club­house ver­sus the take­out win­dow. As we talked about soft­ware that’s free as in speech or free as in beer, of course—these are well-known—but free as in pup­py, free as in mat­tress, free as in piano, and I think we even talked about free as in Halloween can­dy, as dif­fer­ent kinds of approach­es to freeness.

I also loved about your talk the way in which sort of the free­ness of the soft­ware is always sort of about how it’s giv­en. But in talk­ing about anti-retention and mak­ing a val­ue out of that, you make a val­ue out of tak­ing. Which is very inter­est­ing. There’s a kind of ego­less­ness in encour­ag­ing anti-retention, right. Take it, go fork it. Go cov­er it. 

Kate Compton: They may for­get where they got it. And that’s also a real­ly real­ly [indis­tinct] thing.

Levin: I think it’s a real­ly laud­able kind ego­less­ness on your part, or on the devel­op­er’s part, as some­one who’s sort of say­ing Yeah take it, go do some­thing with it. I don’t need a cred­it or something.” 

So, I’m just gonna see if I can pull some ques­tions out of here. Love the anti-retention mod­el as an ori­en­ta­tion away from growth for the sake of growth. Also opens up more options for modes of consent.”

Compton: Mm hm.

Levin: Yeah.

Compton: Yeah, we often— One thing that I kind of want­ed to bring out in my talk was we often don’t notice how eas­i­ly poi­soned we’ve got­ten from the Silicon Valley lan­guage just because it’s so per­va­sive. That well of course we’ve for­got­ten why we want the num­bers to go up and to the right. We just remem­ber that that’s a good thing. So yeah. Like it’s hard to shake the mind­set that we come in with.

Levin: Rules encode philoso­phies. And we can have oth­er philoso­phies than the one that’s com­mon in Silicon Valley. And I think that’s real­ly evi­dent in your presentation.