WEBVTT 00:00.000 --> 00:11.400 Hello, everybody. Welcome. My name is Rafael de Corville. I'm the processing community lead 00:11.400 --> 00:17.280 at the processing foundation. And with me is Mundave, who's the project lead for the processing 00:17.280 --> 00:25.320 project. We are here to talk to you a bit about creative coding, as well as education, 00:25.320 --> 00:31.160 just by a quick show of hands, who has heard of the concept of creative coding before 00:31.160 --> 00:38.520 here in the room. Okay. Nice. Okay, but it's still worth explaining. So creative coding is a method 00:38.520 --> 00:43.560 that uses programming for artistic expression. That's kind of the simplest definition. 00:43.560 --> 00:48.160 It focuses on discovery and iteration rather than following strict rules or predefined 00:48.160 --> 00:53.440 specifications. It's not to say that other kinds of programming are not creative. They are 00:53.440 --> 01:01.720 in their own way, but it is it's a label for certain practice of coding. The term originated 01:01.720 --> 01:07.360 as far as I could trace it back to 2004 in the book Creative Code by John Mata. This is a book 01:07.360 --> 01:11.760 that features projects and writings from made as students from the aesthetics plus 01:11.760 --> 01:19.680 confrontation group at MIT. John Mata's work and teaching played a critical role in building 01:19.760 --> 01:26.200 bridges between design and computational practices. And one particularly important piece of 01:26.200 --> 01:34.760 software that came out of the ACG was designed by numbers. It's from 1999 and it was developed 01:34.760 --> 01:41.000 by students under the direction of John Mata. And it became this influential experiment 01:41.080 --> 01:51.960 in trying to teach programming to designers and to artists. So DBN was kind of this first attempt 01:51.960 --> 01:57.960 at giving people outside of traditional computer science environments, especially designers, 01:57.960 --> 02:02.200 an experience of computation that was kind of more visual and intuitive to them at least. 02:02.200 --> 02:12.040 And later, two of Mata students who had worked on DBN expanded on the concepts and created 02:12.040 --> 02:18.680 something called processing. It was going for the same idea of building this bridge for designers 02:18.680 --> 02:25.320 to get into computation, but it also wanted to be more than just an experiment and be a 02:25.400 --> 02:34.760 bona fide tool that you could actually use in a design practice. It also emphasized the idea 02:34.760 --> 02:40.200 of community and the idea that you could share your processing sketches online was a huge 02:40.200 --> 02:45.720 part of it. And a lot of that was built into the tool and a lot of people made and hosted 02:45.720 --> 02:50.520 self-hosted their own two, their own websites to showcase the work that they were making in processing. 02:50.920 --> 02:58.920 Let's not just the story of the past, processing is still out there today actively developed. It 02:58.920 --> 03:05.240 is presented as this flexible software sketchbook and programming language for learning how to code 03:05.240 --> 03:13.320 and you can find it at this repository. We'll talk more about that in second. One of the concepts 03:13.320 --> 03:20.360 that the creators of processing Ben Fry and Casey Reece really wanted to convey is the 03:20.360 --> 03:28.280 idea of sketching with code. This means that you are, it's a practice of coding that's more 03:28.280 --> 03:34.440 free-flowing and open-ended that most software development at the time. And it is more or less synonymous 03:34.440 --> 03:40.440 with creative coding. Some people might argue. But yeah, so that was this. And this is the reason 03:40.440 --> 03:49.000 why programs inside of processing are called sketches. And this is a completely valid sketch in 03:49.000 --> 03:55.880 processing. So it's drawing a line from one set of coordinates to another and this compiles in 03:55.880 --> 04:01.880 processing it runs. As Andreas said in the previous talk, when you want beginners to understand 04:01.880 --> 04:08.120 basic coding concepts, every little detail matters. And this is why processing is designed the way that 04:08.120 --> 04:14.200 it is. This is the equivalent of a hell of a world program. But for designers, this is kind of 04:14.200 --> 04:20.840 more exciting already. It says a very low floor for getting started. And with only a little bit more 04:20.840 --> 04:28.280 code, you can make it interactive. So this is a little drawing program. This is like even 04:29.320 --> 04:35.880 drawing app. So as a designer, you can very quickly get a sense of empowerment that you can build 04:35.960 --> 04:40.600 your own software tools. You can build your own design tools. You don't need to rely on the 04:40.600 --> 04:48.040 software from Adobe, for example. And another concept of processing and important concept is that 04:48.040 --> 04:52.600 with a single page of code, you can already build some really fun and interesting things. And for 04:52.600 --> 04:59.240 educators in the context that we're in today, what is very interesting is that this is an exciting 04:59.240 --> 05:07.720 way to introduce basic coding concepts such as for loops. Or nested for loops if you want to 05:07.720 --> 05:12.120 make a grid. And personally, if I was to give a workshop about creative coding or a class 05:12.120 --> 05:16.440 about creative coding, I would spend six months on grids because there's so much you can explain 05:16.440 --> 05:21.400 through this. But yeah, there's a lot of flexibility and for artists and designers. It's also 05:21.400 --> 05:28.280 really interesting because it's expressive. It gives you the ability to explore, experiment and build 05:28.360 --> 05:34.120 variety of things without having to build a whole machine around it to make it work or just display 05:34.120 --> 05:42.920 window. And finally, what's very important in processing is the editor itself. So you can write 05:42.920 --> 05:51.320 processing in IntelliJ, Eclipse, but processing has its own editor and it is very minimal by design. 05:51.320 --> 05:58.120 So only the essentials doesn't have any distractions, no unnecessary features, no AI and 05:58.200 --> 06:10.280 you can just use it as this nice sketchbook. That's the metaphor. If a full IDE is a printing press 06:11.400 --> 06:20.440 processing editor would be a sketchbook. This year, processing will celebrate its 25th anniversary. 06:21.400 --> 06:24.760 We'll be in Lines for Australia. Can I say this? 06:24.760 --> 06:33.080 To celebrate. But you didn't hear it from me. And yeah, this kind of longevity is kind of rare 06:33.080 --> 06:39.320 in open source. And it's a testament to the thoughtful design that Ben and Casey put in the original 06:39.320 --> 06:44.040 software, but also to the many contributors who have contributed to the project over the years. 06:44.920 --> 06:48.520 I don't have time to get too much into details in the history, but if you're interested, 06:48.520 --> 06:52.520 these two articles are what I would recommend to get a bit of background on the project. 06:54.120 --> 07:01.240 All right, and I'll pass it on to you. Thanks, Rafael. Hi, everyone. I'm Moon. 07:01.960 --> 07:08.840 You see her pronouns. I'm the processing project lead. I'm going to go to the next slide. Let's see. 07:09.560 --> 07:17.000 Okay, so a concept I want to introduce is the one of low floors, high ceoings, wide walls, 07:17.080 --> 07:25.400 and another concept that we're a big fan of is the open door. A low floor is just kind of 07:25.400 --> 07:33.720 where do you start? And it's a term that was coined by C. Moore Pappert, who invented logo, 07:33.720 --> 07:42.760 if you're familiar with turtle graphics, which is the greatest graphics programming environment 07:42.760 --> 07:49.720 ever, I think. Yeah, and it's just about being able to get people started as beginners in your 07:49.720 --> 07:57.160 environment. The high ceiling shows what's possible, and Michael Resnick wrote an article 07:58.360 --> 08:05.720 designing for wide walls, and that refers to opening multiple pathways from the low floor to the 08:05.800 --> 08:11.960 high ceiling. So this is just, you know, there are so many paths to get all roads lead to Rome, 08:11.960 --> 08:19.320 right, or whatever. What else? Oh, yeah, so the open door. We're processing foundation. We're all 08:19.320 --> 08:25.880 about access, and educational access, and making sure everybody from many different backgrounds 08:25.880 --> 08:31.160 are able to participate in computation, and like thinking about programming, making art, 08:31.240 --> 08:38.200 and new media, and all of that. And so we just want to keep that door. There are two doors. 08:38.200 --> 08:47.640 Both of the doors need to be kept as open as possible. Anyways, here's a picture of what I mean 08:47.640 --> 08:54.360 by wide walls. There are so many different things that you can do with processing, whether it's 08:54.360 --> 09:03.560 physical computing, projection mapping, data visualization, making like a little synthesizer, 09:03.560 --> 09:11.400 or something, that's what I would want to do. Oh, okay, and so this is an example of like high 09:11.400 --> 09:18.920 feelings. This is one of some of KC Reses' work. One of the creators, if you're paying attention, 09:19.000 --> 09:26.520 one of the creators of processing in Lakma and LA, that's just a bit form gallery. Is that 09:26.520 --> 09:38.840 this Lakma in LA? Yeah, LA for LA. And then this is the Mome, the museum of moving image in New York City, 09:40.280 --> 09:48.520 and then another high ceiling is Times Square, and that's literally so wild to me. 09:49.880 --> 10:00.520 Sorry, let's continue. Okay, so another thing, we're now around a new topic here. So, 10:01.560 --> 10:10.520 AI is a challenging subject matter, and I think there's a lot of like evidence and research being 10:10.520 --> 10:18.440 done that has that's showing that it really does like a road like a student's autonomy and their 10:18.440 --> 10:26.040 agency. Definitely check out the QR code for this. It's a really good paper. Really, really good read. 10:27.240 --> 10:31.800 But basically, you know, when you're a learner, when you're getting started with something, 10:31.800 --> 10:38.520 like you don't need anything to help you. You shouldn't have anything to help you like 10:38.600 --> 10:45.000 automatically program for you. Sometimes you do need to grapple with the concepts and like build the 10:45.000 --> 10:51.080 models in your head, you know, and at the end of the day, like, you know, when you're shipping code 10:51.080 --> 10:57.960 with AI or anything, you're still accountable for it. So, whatever, however, the code was produced, 10:57.960 --> 11:04.280 like in two years, if there's like a security, like vulnerability that gets reported, 11:04.360 --> 11:10.040 are you going to be able to get involved and address that? Probably not if you're like overly 11:10.040 --> 11:18.360 reliant. Okay. Also, yeah, this is our, this is our fun slide. Creative coding is 11:18.360 --> 11:24.840 viby enough. Like, we already have vibes, like, the vibes come from the community. The vibes come 11:24.840 --> 11:31.800 from the fact that writing line and two coordinates is not hard. So, like, there's, there's, 11:31.800 --> 11:38.120 that we have, like, we've solved this problem with creative coding in that, like, the point isn't 11:38.120 --> 11:44.120 like having, we have, like, a really simple API that is really accessible that you can use to build 11:44.120 --> 11:51.880 super sophisticated projects. And, and, you know, I personally, I think, like, there's also something 11:51.880 --> 11:58.360 about gesture too and, like, being able to express yourself and, like, coding as part of the gesture 11:58.440 --> 12:07.480 and, like, you don't need AI to do that, um, any who. Um, right. So, speaking of our simple API, 12:07.480 --> 12:18.040 it's also totally stable. Um, it's been the same API for, from the, from the beginning, mostly, 12:19.240 --> 12:24.760 and this is really great for educators since their materials don't become outdated, like, every 12:24.840 --> 12:31.800 time we release something. Um, and, but this is also, like, a challenge in that, like, 12:32.680 --> 12:37.800 it can be harder to keep up with, like, all of the changes in the Java ecosystem, which is, you 12:37.800 --> 12:43.080 know, not that much. Java is, like, pretty stable now, especially after Java 7. But, you know, 12:43.080 --> 12:49.240 there's also a lot of different shifts in, like, best practices in engineering and, like, rendering 12:49.320 --> 12:55.800 has changed quite a bit. If you have heard of the GPU, um, there's just, like, APIs have totally 12:55.800 --> 13:00.520 changed and, like, that, that can also be a challenge. That said, you know, we do want to preserve 13:00.520 --> 13:05.800 the things that we love, that people love about processing. We also want to explore new directions. 13:07.800 --> 13:17.000 So, we are actively developing processing the one in Java, not just P5, and we have spent the 13:17.080 --> 13:22.920 last two years improving its dev infrastructure and reducing friction for new contributors. 13:22.920 --> 13:27.080 And a lot of that work was done before I even joined, actually, Steph Tervelda is, like, 13:28.440 --> 13:33.160 a major contributor to, like, getting us to this point and we're so grateful for it. 13:34.600 --> 13:42.440 And the latest release, we released 4.5. It's, like, built, that happened because of that two years 13:42.440 --> 13:48.760 of effort that went in. And this is also, I think, we're, you know, just shout out to Steph, 13:48.760 --> 13:54.360 who really crushed it. I'm sorry. I'm speaking, like, I'm from California, which I am, but 13:56.280 --> 14:00.040 anyways, these are, these are, these are, like, some accessibility improvements that we, we made, 14:00.040 --> 14:06.200 that's like a screen reader. It's, um, it's, it's, it's really exciting for us, um, and we just 14:06.280 --> 14:14.920 were updating the UI, we want to make it more welcoming for newcomers. Um, anyways, what's next? 14:14.920 --> 14:21.240 I'll tell you what's next. I love drinking water all the time, but in Europe, like, it always feels 14:21.240 --> 14:29.400 fancy, I'm like, like, wow, that's, I felt, I've always felt fancy with water without that, but 14:29.480 --> 14:37.400 no, I know what I've been missing. So, um, sorry. Okay, so we are open, 14:37.400 --> 14:43.080 exploring open technologies like WebGPU and WebAssembly. I'm so excited about these things. Like, 14:44.840 --> 14:50.040 things have changed, things have, like, come along so far with these technologies. It's, like, 14:50.040 --> 14:57.240 this is, this is, like, game changing stuff for me. I, I, I, I love it. And this is, um, processing, 14:57.320 --> 15:04.280 running in a web browser, just like, wow, it's happening. So we're really exploring this stuff. 15:05.000 --> 15:12.120 I'm super excited about it. Um, looking into the next 25 years for the project, we see a lot of 15:12.120 --> 15:18.440 promise and the rust ecosystem, and we are really excited by it, and the projects, like, the 15:18.440 --> 15:23.560 bevy game engine. Um, I don't know if anyone has heard of that, but that's a 3D game engine, 15:23.640 --> 15:28.680 written in Rust, and it offers a lot of building blocks that we can use to build on top of it. 15:29.960 --> 15:37.080 And it works in the browser, it works on the desktop, and, um, well, I'm excited for it, 15:37.080 --> 15:42.520 because I want to contribute to processing, but I also want to contribute back to Bevy, and I think 15:42.520 --> 15:50.120 that's, like, the best way to be an open source. Um, wait, let me say one more thing, too. 15:50.200 --> 15:55.000 I don't know if anyone was here for the GNU Octave Talk, but if you were paying attention, 15:55.800 --> 16:02.600 he mentioned something about, um, foretran, being, like, how people did computation, and, like, 16:02.600 --> 16:07.800 the point of, of Octave is actually similar to processing, and that, you know, they didn't, 16:07.800 --> 16:14.520 they wanted people to focus on learning statistics and not dealing with foretran. So as this slide, 16:15.160 --> 16:20.520 is here with the word Rust. I want to say we're still committed to people, like, being able to 16:20.520 --> 16:26.920 program in a way that is focused on creativity and, like, thinking, like, computational thinking, 16:26.920 --> 16:31.960 not learning Rust. So Rust is going to be something a little bit different, but I'm not talking 16:31.960 --> 16:39.720 about that right now. I'm really excited about it though. Um, okay, we are, I'm reading the slide 16:39.800 --> 16:45.080 right now. I'm sorry, but we are committed to making processing stand the test of time, 16:45.960 --> 16:53.480 not just by preserving its legacy, but also by inspiring newcomers and experts alike. And we 16:53.480 --> 17:02.200 really want to expand what anyone can do with processing. Um, I'm going to pass it back to Rafael. 17:03.480 --> 17:09.480 Thanks, Moon. That was great. Um, so yeah, we're here together with a small delegation of the 17:09.480 --> 17:13.880 processing foundation. You'll see their faces in a second. Um, the processing foundation's 17:13.880 --> 17:19.880 mission is to promote software learning within the arts and artistic learning within technology 17:19.880 --> 17:24.840 related field. I'll support people of all backgrounds learning how to program and make creative 17:24.840 --> 17:31.480 work with code, as you've seen. Uh, especially those who may otherwise not have had access to these 17:31.480 --> 17:38.760 tools or resources. Um, we do run some fellowship programs and, uh, dev grants. Uh, you can find 17:38.760 --> 17:44.280 a lot of that on our website, which is at the QR code there or processing foundation.org. It's also 17:44.280 --> 17:52.280 easy to remember. Uh, we do need donations. Uh, we are supported by the community. So if you like 17:52.280 --> 17:59.160 what you see and you want to support it, um, uh, feel free to do that. We will appreciate it a lot. Um, 17:59.160 --> 18:05.080 talking about this, uh, part of the work that we showed today, uh, but also more of it and, uh, 18:05.240 --> 18:10.120 moving forward, uh, is carried out through a service agreement with the sovereign tech fund. I 18:10.120 --> 18:16.600 don't know if, uh, the sovereign, the STA team is in the room. Are they? Anyone? I can't see. Uh, 18:16.600 --> 18:23.080 but, uh, yeah, would like to express our deepest gratitude to them. Um, and, uh, yeah, they really 18:23.080 --> 18:29.080 do understand the value of supporting this often invisible work that goes into open source software 18:29.080 --> 18:35.880 and we want to thank them for investing in the future of processing. Um, so, uh, no, there's 18:35.880 --> 18:40.440 no, yeah, just no, uh, they didn't make it on all. I thought there would be there and they would 18:40.440 --> 18:47.880 would clap and it would be great. But, um, yeah, uh, any claps that come later are, uh, just a half, 18:47.880 --> 18:54.200 50% of those claps that you're going to do at the end, um, go to them. So, uh, yeah, thank you for 18:54.280 --> 18:59.880 having us. Uh, you can come talk to us after the talk, uh, see the faces there. Well, you've seen 18:59.880 --> 19:06.360 us, but, uh, Shin is over there and Roxanna is somewhere here. It's here. Uh, she's here. Uh, 19:06.360 --> 19:13.320 and, uh, yeah, um, you can find us on all the, all the things up there. Uh, this is a 19:13.320 --> 19:20.040 cure code that goes to processing.org, but we're on Macedon and Blue Sky and Instagram. Um, yeah, 19:20.120 --> 19:21.720 that's, that's it. Thank you very much. 19:29.720 --> 19:32.600 We have a question already. Okay. Questions. 19:34.600 --> 19:40.360 Yes. Good. I'm going to stress things in seeing a new waste of programs. 19:43.400 --> 19:49.320 I'm always interested in seeing new ways and experiments on both programs. And 19:49.400 --> 19:56.360 from what to understand processing is one way that's very traditional. And that is extremely different 19:56.360 --> 20:02.840 with the entity component system. Uh, which I think is extremely interesting. Uh, you are already 20:02.840 --> 20:09.720 on this program of being used within EECS, uh, to develop anything. Do you think that you will 20:09.720 --> 20:16.200 probably make EECS? Yeah. This is a really great question because it definitely addresses 20:16.280 --> 20:21.080 something that like I just want to be super clear about. So I guess I'm also a fan of the EECS 20:21.080 --> 20:28.760 system. Um, what we want to do is actually, um, haven't interface that feels very, you know, 20:29.400 --> 20:34.760 declarative like processing. It like it's still going to be processing, but we're going to 20:34.760 --> 20:39.720 we're going to call into rust and we'll leverage the EECS that way, but we're not directly 20:39.800 --> 20:51.480 exposing the EECS to, um, like a learner. Yes. We're opening up the capabilities that come from 20:51.480 --> 20:58.760 the incredible work that is happening in Bevy. And, um, yeah, yeah, but we're not, we're not saying 20:58.760 --> 21:05.400 now you're going to program in rust. We're not saying that. We're not saying, oh, no, no, that's true. 21:05.400 --> 21:10.760 But so, well, so that's, that's, that's not something we have to say no to though, right? So we're not, 21:10.760 --> 21:17.400 we're not specifically like trying to implement things that way. That said, that's something we can 21:17.400 --> 21:22.600 talk about. And if it's something that's interesting to people, um, because I think that's a great 21:22.600 --> 21:27.480 idea. You know, that's something we can maybe get onto the engineering roadmap, especially if, 21:27.480 --> 21:32.520 you know, that's something you want to propose to the community. Uh, well, no, no, don't, don't 21:32.600 --> 21:37.560 feel overwhelmed. But like, I mean, it's just, you know, yeah, but we do have like a GitHub 21:37.560 --> 21:44.200 repo and everything too. So, um, we're experimenting. Did I answer your question? Okay, great. 21:46.200 --> 21:49.800 One question I forgot to ask you, there was on one of my slides and I didn't read the notes, 21:49.800 --> 21:55.400 but who had heard of processing before the stock, just a quick show of hands? Okay, yeah, 21:55.400 --> 22:01.000 wow, okay, cool. But I still, uh, there's still some people who didn't, so that's great. It's worth 22:01.080 --> 22:07.480 why for us to be here. Uh, yeah, we have other, we have other questions in the room. We still have 22:07.480 --> 22:22.760 a few minutes. So, don't be shy. Wow. Yeah, please. So, on the examples in the beginning, there's 22:23.320 --> 22:33.400 kind of simple program where we just talk to the moms. Yeah. Yes, yes. You can't export to 22:33.400 --> 22:41.240 vector graphics if you want to. So, it supports both. Yeah, yeah, yeah, you can't export to SVG. 22:41.800 --> 22:47.000 A lot of processing users are using processing for plot plotter drawings. So, you know, 22:47.000 --> 22:50.360 drawing robots. So, you can export from processing and do that. 22:52.760 --> 22:58.920 So, I made a stroke, a sample of it. Yes. The work I can correct in coordinates from my final 22:58.920 --> 23:05.240 arc. I need to write all the code, the tracks, the coordinates and saves and it's by design. Yes. Yes, 23:05.240 --> 23:12.280 that is the point. It's the drawing app thing is, it's an example of what you can do. If you want to 23:12.280 --> 23:16.920 make a real drawing app, like fully features with undo, fully featured with undo and whatever, 23:16.920 --> 23:22.600 you will have to learn about data structures and do that yourself. But yeah, that's on purpose. 23:22.920 --> 23:26.840 The thing is, there's a big community of people who have done this before. So, you could also 23:26.840 --> 23:31.320 look at the work that people have done in the community, whether it's processing Java, P5JS, 23:31.320 --> 23:36.520 processing Python, this terms of examples, including in the software itself. We have a lot of examples 23:36.520 --> 23:43.960 that come that ship with the PDE, the processing editor on desktop. So, yeah, that's, uh, I hope that 23:43.960 --> 23:51.720 helps. Any other questions? Otherwise, we'll finish early. We have a lot of stickers here and on the 23:51.720 --> 24:02.600 table over there. So, if you like this logo, you can have it on paper. That's it. Thank you very much.