Hello, everybody. Welcome. My name is Rafael de Corville. I'm the processing community lead
at the processing foundation. And with me is Mundave, who's the project lead for the processing
project. We are here to talk to you a bit about creative coding, as well as education,
just by a quick show of hands, who has heard of the concept of creative coding before
here in the room. Okay. Nice. Okay, but it's still worth explaining. So creative coding is a method
that uses programming for artistic expression. That's kind of the simplest definition.
It focuses on discovery and iteration rather than following strict rules or predefined
specifications. It's not to say that other kinds of programming are not creative. They are
in their own way, but it is it's a label for certain practice of coding. The term originated
as far as I could trace it back to 2004 in the book Creative Code by John Mata. This is a book
that features projects and writings from made as students from the aesthetics plus
confrontation group at MIT. John Mata's work and teaching played a critical role in building
bridges between design and computational practices. And one particularly important piece of
software that came out of the ACG was designed by numbers. It's from 1999 and it was developed
by students under the direction of John Mata. And it became this influential experiment
in trying to teach programming to designers and to artists. So DBN was kind of this first attempt
at giving people outside of traditional computer science environments, especially designers,
an experience of computation that was kind of more visual and intuitive to them at least.
And later, two of Mata students who had worked on DBN expanded on the concepts and created
something called processing. It was going for the same idea of building this bridge for designers
to get into computation, but it also wanted to be more than just an experiment and be a
bona fide tool that you could actually use in a design practice. It also emphasized the idea
of community and the idea that you could share your processing sketches online was a huge
part of it. And a lot of that was built into the tool and a lot of people made and hosted
self-hosted their own two, their own websites to showcase the work that they were making in processing.
Let's not just the story of the past, processing is still out there today actively developed. It
is presented as this flexible software sketchbook and programming language for learning how to code
and you can find it at this repository. We'll talk more about that in second. One of the concepts
that the creators of processing Ben Fry and Casey Reece really wanted to convey is the
idea of sketching with code. This means that you are, it's a practice of coding that's more
free-flowing and open-ended that most software development at the time. And it is more or less synonymous
with creative coding. Some people might argue. But yeah, so that was this. And this is the reason
why programs inside of processing are called sketches. And this is a completely valid sketch in
processing. So it's drawing a line from one set of coordinates to another and this compiles in
processing it runs. As Andreas said in the previous talk, when you want beginners to understand
basic coding concepts, every little detail matters. And this is why processing is designed the way that
it is. This is the equivalent of a hell of a world program. But for designers, this is kind of
more exciting already. It says a very low floor for getting started. And with only a little bit more
code, you can make it interactive. So this is a little drawing program. This is like even
drawing app. So as a designer, you can very quickly get a sense of empowerment that you can build
your own software tools. You can build your own design tools. You don't need to rely on the
software from Adobe, for example. And another concept of processing and important concept is that
with a single page of code, you can already build some really fun and interesting things. And for
educators in the context that we're in today, what is very interesting is that this is an exciting
way to introduce basic coding concepts such as for loops. Or nested for loops if you want to
make a grid. And personally, if I was to give a workshop about creative coding or a class
about creative coding, I would spend six months on grids because there's so much you can explain
through this. But yeah, there's a lot of flexibility and for artists and designers. It's also
really interesting because it's expressive. It gives you the ability to explore, experiment and build
variety of things without having to build a whole machine around it to make it work or just display
window. And finally, what's very important in processing is the editor itself. So you can write
processing in IntelliJ, Eclipse, but processing has its own editor and it is very minimal by design.
So only the essentials doesn't have any distractions, no unnecessary features, no AI and
you can just use it as this nice sketchbook. That's the metaphor. If a full IDE is a printing press
processing editor would be a sketchbook. This year, processing will celebrate its 25th anniversary.
We'll be in Lines for Australia. Can I say this?
To celebrate. But you didn't hear it from me. And yeah, this kind of longevity is kind of rare
in open source. And it's a testament to the thoughtful design that Ben and Casey put in the original
software, but also to the many contributors who have contributed to the project over the years.
I don't have time to get too much into details in the history, but if you're interested,
these two articles are what I would recommend to get a bit of background on the project.
All right, and I'll pass it on to you. Thanks, Rafael. Hi, everyone. I'm Moon.
You see her pronouns. I'm the processing project lead. I'm going to go to the next slide. Let's see.
Okay, so a concept I want to introduce is the one of low floors, high ceoings, wide walls,
and another concept that we're a big fan of is the open door. A low floor is just kind of
where do you start? And it's a term that was coined by C. Moore Pappert, who invented logo,
if you're familiar with turtle graphics, which is the greatest graphics programming environment
ever, I think. Yeah, and it's just about being able to get people started as beginners in your
environment. The high ceiling shows what's possible, and Michael Resnick wrote an article
designing for wide walls, and that refers to opening multiple pathways from the low floor to the
high ceiling. So this is just, you know, there are so many paths to get all roads lead to Rome,
right, or whatever. What else? Oh, yeah, so the open door. We're processing foundation. We're all
about access, and educational access, and making sure everybody from many different backgrounds
are able to participate in computation, and like thinking about programming, making art,
and new media, and all of that. And so we just want to keep that door. There are two doors.
Both of the doors need to be kept as open as possible. Anyways, here's a picture of what I mean
by wide walls. There are so many different things that you can do with processing, whether it's
physical computing, projection mapping, data visualization, making like a little synthesizer,
or something, that's what I would want to do. Oh, okay, and so this is an example of like high
feelings. This is one of some of KC Reses' work. One of the creators, if you're paying attention,
one of the creators of processing in Lakma and LA, that's just a bit form gallery. Is that
this Lakma in LA? Yeah, LA for LA. And then this is the Mome, the museum of moving image in New York City,
and then another high ceiling is Times Square, and that's literally so wild to me.
Sorry, let's continue. Okay, so another thing, we're now around a new topic here. So,
AI is a challenging subject matter, and I think there's a lot of like evidence and research being
done that has that's showing that it really does like a road like a student's autonomy and their
agency. Definitely check out the QR code for this. It's a really good paper. Really, really good read.
But basically, you know, when you're a learner, when you're getting started with something,
like you don't need anything to help you. You shouldn't have anything to help you like
automatically program for you. Sometimes you do need to grapple with the concepts and like build the
models in your head, you know, and at the end of the day, like, you know, when you're shipping code
with AI or anything, you're still accountable for it. So, whatever, however, the code was produced,
like in two years, if there's like a security, like vulnerability that gets reported,
are you going to be able to get involved and address that? Probably not if you're like overly
reliant. Okay. Also, yeah, this is our, this is our fun slide. Creative coding is
viby enough. Like, we already have vibes, like, the vibes come from the community. The vibes come
from the fact that writing line and two coordinates is not hard. So, like, there's, there's,
that we have, like, we've solved this problem with creative coding in that, like, the point isn't
like having, we have, like, a really simple API that is really accessible that you can use to build
super sophisticated projects. And, and, you know, I personally, I think, like, there's also something
about gesture too and, like, being able to express yourself and, like, coding as part of the gesture
and, like, you don't need AI to do that, um, any who. Um, right. So, speaking of our simple API,
it's also totally stable. Um, it's been the same API for, from the, from the beginning, mostly,
and this is really great for educators since their materials don't become outdated, like, every
time we release something. Um, and, but this is also, like, a challenge in that, like,
it can be harder to keep up with, like, all of the changes in the Java ecosystem, which is, you
know, not that much. Java is, like, pretty stable now, especially after Java 7. But, you know,
there's also a lot of different shifts in, like, best practices in engineering and, like, rendering
has changed quite a bit. If you have heard of the GPU, um, there's just, like, APIs have totally
changed and, like, that, that can also be a challenge. That said, you know, we do want to preserve
the things that we love, that people love about processing. We also want to explore new directions.
So, we are actively developing processing the one in Java, not just P5, and we have spent the
last two years improving its dev infrastructure and reducing friction for new contributors.
And a lot of that work was done before I even joined, actually, Steph Tervelda is, like,
a major contributor to, like, getting us to this point and we're so grateful for it.
And the latest release, we released 4.5. It's, like, built, that happened because of that two years
of effort that went in. And this is also, I think, we're, you know, just shout out to Steph,
who really crushed it. I'm sorry. I'm speaking, like, I'm from California, which I am, but
anyways, these are, these are, these are, like, some accessibility improvements that we, we made,
that's like a screen reader. It's, um, it's, it's, it's really exciting for us, um, and we just
were updating the UI, we want to make it more welcoming for newcomers. Um, anyways, what's next?
I'll tell you what's next. I love drinking water all the time, but in Europe, like, it always feels
fancy, I'm like, like, wow, that's, I felt, I've always felt fancy with water without that, but
no, I know what I've been missing. So, um, sorry. Okay, so we are open,
exploring open technologies like WebGPU and WebAssembly. I'm so excited about these things. Like,
things have changed, things have, like, come along so far with these technologies. It's, like,
this is, this is, like, game changing stuff for me. I, I, I, I love it. And this is, um, processing,
running in a web browser, just like, wow, it's happening. So we're really exploring this stuff.
I'm super excited about it. Um, looking into the next 25 years for the project, we see a lot of
promise and the rust ecosystem, and we are really excited by it, and the projects, like, the
bevy game engine. Um, I don't know if anyone has heard of that, but that's a 3D game engine,
written in Rust, and it offers a lot of building blocks that we can use to build on top of it.
And it works in the browser, it works on the desktop, and, um, well, I'm excited for it,
because I want to contribute to processing, but I also want to contribute back to Bevy, and I think
that's, like, the best way to be an open source. Um, wait, let me say one more thing, too.
I don't know if anyone was here for the GNU Octave Talk, but if you were paying attention,
he mentioned something about, um, foretran, being, like, how people did computation, and, like,
the point of, of Octave is actually similar to processing, and that, you know, they didn't,
they wanted people to focus on learning statistics and not dealing with foretran. So as this slide,
is here with the word Rust. I want to say we're still committed to people, like, being able to
program in a way that is focused on creativity and, like, thinking, like, computational thinking,
not learning Rust. So Rust is going to be something a little bit different, but I'm not talking
about that right now. I'm really excited about it though. Um, okay, we are, I'm reading the slide
right now. I'm sorry, but we are committed to making processing stand the test of time,
not just by preserving its legacy, but also by inspiring newcomers and experts alike. And we
really want to expand what anyone can do with processing. Um, I'm going to pass it back to Rafael.
Thanks, Moon. That was great. Um, so yeah, we're here together with a small delegation of the
processing foundation. You'll see their faces in a second. Um, the processing foundation's
mission is to promote software learning within the arts and artistic learning within technology
related field. I'll support people of all backgrounds learning how to program and make creative
work with code, as you've seen. Uh, especially those who may otherwise not have had access to these
tools or resources. Um, we do run some fellowship programs and, uh, dev grants. Uh, you can find
a lot of that on our website, which is at the QR code there or processing foundation.org. It's also
easy to remember. Uh, we do need donations. Uh, we are supported by the community. So if you like
what you see and you want to support it, um, uh, feel free to do that. We will appreciate it a lot. Um,
talking about this, uh, part of the work that we showed today, uh, but also more of it and, uh,
moving forward, uh, is carried out through a service agreement with the sovereign tech fund. I
don't know if, uh, the sovereign, the STA team is in the room. Are they? Anyone? I can't see. Uh,
but, uh, yeah, would like to express our deepest gratitude to them. Um, and, uh, yeah, they really
do understand the value of supporting this often invisible work that goes into open source software
and we want to thank them for investing in the future of processing. Um, so, uh, no, there's
no, yeah, just no, uh, they didn't make it on all. I thought there would be there and they would
would clap and it would be great. But, um, yeah, uh, any claps that come later are, uh, just a half,
50% of those claps that you're going to do at the end, um, go to them. So, uh, yeah, thank you for
having us. Uh, you can come talk to us after the talk, uh, see the faces there. Well, you've seen
us, but, uh, Shin is over there and Roxanna is somewhere here. It's here. Uh, she's here. Uh,
and, uh, yeah, um, you can find us on all the, all the things up there. Uh, this is a
cure code that goes to processing.org, but we're on Macedon and Blue Sky and Instagram. Um, yeah,
that's, that's it. Thank you very much.
We have a question already. Okay. Questions.
Yes. Good. I'm going to stress things in seeing a new waste of programs.
I'm always interested in seeing new ways and experiments on both programs. And
from what to understand processing is one way that's very traditional. And that is extremely different
with the entity component system. Uh, which I think is extremely interesting. Uh, you are already
on this program of being used within EECS, uh, to develop anything. Do you think that you will
probably make EECS? Yeah. This is a really great question because it definitely addresses
something that like I just want to be super clear about. So I guess I'm also a fan of the EECS
system. Um, what we want to do is actually, um, haven't interface that feels very, you know,
declarative like processing. It like it's still going to be processing, but we're going to
we're going to call into rust and we'll leverage the EECS that way, but we're not directly
exposing the EECS to, um, like a learner. Yes. We're opening up the capabilities that come from
the incredible work that is happening in Bevy. And, um, yeah, yeah, but we're not, we're not saying
now you're going to program in rust. We're not saying that. We're not saying, oh, no, no, that's true.
But so, well, so that's, that's, that's not something we have to say no to though, right? So we're not,
we're not specifically like trying to implement things that way. That said, that's something we can
talk about. And if it's something that's interesting to people, um, because I think that's a great
idea. You know, that's something we can maybe get onto the engineering roadmap, especially if,
you know, that's something you want to propose to the community. Uh, well, no, no, don't, don't
feel overwhelmed. But like, I mean, it's just, you know, yeah, but we do have like a GitHub
repo and everything too. So, um, we're experimenting. Did I answer your question? Okay, great.
One question I forgot to ask you, there was on one of my slides and I didn't read the notes,
but who had heard of processing before the stock, just a quick show of hands? Okay, yeah,
wow, okay, cool. But I still, uh, there's still some people who didn't, so that's great. It's worth
why for us to be here. Uh, yeah, we have other, we have other questions in the room. We still have
a few minutes. So, don't be shy. Wow. Yeah, please. So, on the examples in the beginning, there's
kind of simple program where we just talk to the moms. Yeah. Yes, yes. You can't export to
vector graphics if you want to. So, it supports both. Yeah, yeah, yeah, you can't export to SVG.
A lot of processing users are using processing for plot plotter drawings. So, you know,
drawing robots. So, you can export from processing and do that.
So, I made a stroke, a sample of it. Yes. The work I can correct in coordinates from my final
arc. I need to write all the code, the tracks, the coordinates and saves and it's by design. Yes. Yes,
that is the point. It's the drawing app thing is, it's an example of what you can do. If you want to
make a real drawing app, like fully features with undo, fully featured with undo and whatever,
you will have to learn about data structures and do that yourself. But yeah, that's on purpose.
The thing is, there's a big community of people who have done this before. So, you could also
look at the work that people have done in the community, whether it's processing Java, P5JS,
processing Python, this terms of examples, including in the software itself. We have a lot of examples
that come that ship with the PDE, the processing editor on desktop. So, yeah, that's, uh, I hope that
helps. Any other questions? Otherwise, we'll finish early. We have a lot of stickers here and on the
table over there. So, if you like this logo, you can have it on paper. That's it. Thank you very much.