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.

